diff --git a/.github/workflows/deploy-gh-pages.yml b/.github/workflows/deploy-gh-pages.yml new file mode 100644 index 0000000..3d9a4a6 --- /dev/null +++ b/.github/workflows/deploy-gh-pages.yml @@ -0,0 +1,57 @@ +# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json +name: Deploy GitHub Pages for branches + +on: + push: + branches: + - main + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +jobs: + build: + if: github.repository == 'tanzaku/postgresql-cst-parser' + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: "22" + + - name: Install Rust toolchain + run: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y + + - name: Add cargo to PATH + run: echo "$HOME/.cargo/bin" >> $GITHUB_PATH + + - name: Install wasm-pack + run: cargo install wasm-pack + + - name: Build + run: bash ./update-gh-page.sh + + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + with: + path: ./docs + + deploy: + if: github.repository == 'tanzaku/postgresql-cst-parser' + needs: build + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + steps: + - name: Deploy to GitHub Pages + if: ${{ !env.ACT }} + id: deployment + uses: actions/deploy-pages@v4 diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index c652346..3fc4a59 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -2,25 +2,33 @@ name: Rust on: push: - branches: [ "main" ] + branches: ["main"] pull_request: - branches: [ "main" ] env: CARGO_TERM_COLOR: always jobs: build: - runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - name: Build - run: cargo build --verbose - - name: Run tests - run: cargo test --verbose - - name: clippy - uses: actions-rs/clippy-check@v1 - with: - token: ${{ secrets.GITHUB_TOKEN }} + - uses: actions/checkout@v4 + - name: Build + run: cargo build --verbose + - name: Run tests + run: cargo test --verbose + - name: Run tests with features + run: cargo test --verbose --features regex-match + - name: Run benchmarks + run: cargo bench + - name: Run benchmarks with features + run: cargo bench --features regex-match + - name: Clippy (automata) + run: cargo clippy -p automata -- -D warnings + - name: Clippy (lexer-generator) + run: cargo clippy -p lexer-generator -- -D warnings + - name: Clippy (parser-generator) + run: cargo clippy -p parser-generator -- -D warnings + - name: Clippy (postgresql-cst-parser) + run: cargo clippy -p postgresql-cst-parser -- -D warnings diff --git a/CHANGELOG b/CHANGELOG new file mode 100644 index 0000000..bab99b4 --- /dev/null +++ b/CHANGELOG @@ -0,0 +1,14 @@ +# CHANGELOG + +## [0.2.0] - 2025-04-04 + +### Improvements +- Significant performance enhancement + +## [0.1.0] - 2025-03-21 + +### Added +- Initial release +- PostgreSQL 17 syntax support +- CST generation functionality following [gram.y](https://github.com/postgres/postgres/blob/REL_17_0/src/backend/parser/gram.y) structure +- Pure Rust implementation enabling WebAssembly compilation via wasm-bindgen diff --git a/Cargo.toml b/Cargo.toml index cb01ce2..878ebb8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,6 +2,7 @@ resolver = "2" members = [ + "crates/automata", "crates/lexer-generator", "crates/parser-generator", "crates/postgresql-cst-parser", @@ -11,7 +12,7 @@ members = [ default-members = ["crates/postgresql-cst-parser"] [workspace.package] -exclude = ["crates/lexer-generator", "crates/parser-generator", "crates/postgresql-cst-parser-wasm"] +exclude = ["crates/automata", "crates/lexer-generator", "crates/parser-generator", "crates/postgresql-cst-parser-wasm"] [profile.release.package.postgresql-cst-parser-wasm] opt-level = "s" diff --git a/LICENSE b/LICENSE index 8aa2645..dabe548 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) [year] [fullname] +Copyright (c) 2024 tanzaku Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..12b95fa --- /dev/null +++ b/Makefile @@ -0,0 +1,26 @@ +ROOT_DIR := $(dir $(realpath $(lastword $(MAKEFILE_LIST)))) + +.PHONY: clean prepare-source prepare-original-source make-patch + +prepare-source: copy-from-original-source + patch -p1 < $(ROOT_DIR)/patches/patch_scan.patch + +prepare-original-source: clean + mkdir -p ./tmp + cd ./tmp; git clone -b 17-6.0.0 --depth=1 git@github.com:pganalyze/libpg_query.git + sed -i 's/sed -i ""/sed -i/g' ./tmp/libpg_query/Makefile + cd ./tmp/libpg_query; make $(ROOT_DIR)tmp/libpg_query/tmp/postgres + mkdir -p ./crates/lexer-generator/resources + mkdir -p ./crates/parser-generator/resources + +copy-from-original-source: prepare-original-source + cp $(ROOT_DIR)tmp/libpg_query/tmp/postgres/src/backend/parser/scan.l $(ROOT_DIR)crates/lexer-generator/resources + cp $(ROOT_DIR)tmp/libpg_query/tmp/postgres/src/include/parser/kwlist.h $(ROOT_DIR)crates/lexer-generator/resources + cp $(ROOT_DIR)tmp/libpg_query/tmp/postgres/src/backend/parser/parser.c $(ROOT_DIR)crates/lexer-generator/resources + cp $(ROOT_DIR)tmp/libpg_query/tmp/postgres/src/backend/parser/gram.y $(ROOT_DIR)crates/parser-generator/resources + +make-patch: prepare-original-source + diff -u ./tmp/libpg_query/tmp/postgres/src/backend/parser/scan.l ./crates/lexer-generator/resources/scan.l > ./patches/patch_scan.patch || true + +clean: + -@ rm -rf ./tmp diff --git a/README.ja.md b/README.ja.md index 2d0e49a..d622ad6 100644 --- a/README.ja.md +++ b/README.ja.md @@ -1,35 +1,158 @@ # postgresql-cst-parser +[![Crates.io](https://img.shields.io/crates/v/postgresql-cst-parser.svg)](https://crates.io/crates/postgresql-cst-parser) + +**注意:このパーサーはPostgreSQLの公式プロジェクトではなく、独立した非公式ツールです。** + ## 概要 -`postgresql-cst-parser`は、Pure Rust で開発された PostgreSQL 専用の Lossless Syntax Tree(CST)パーサーです。この文書では、パーサーの特徴、動機、使用方法、および実装の詳細について説明します。 +`postgresql-cst-parser`は、Pure Rustで開発されたPostgreSQL専用の具象構文木(CST)パーサーです。このドキュメントでは、パーサーの機能、開発のモチベーション、使用方法、および実装の詳細について説明します。 ## 主な特徴 -- **自動生成された CST パーサー**: PostgreSQL の文法から自動的に生成されるため、幅広い文法に対応。 -- **部分的な制限**: スキャナーの一部の実装が不完全であるため、全ての文法に対応しているわけではありません。 +- **PostgreSQL 17対応**: 最新のPostgreSQL 17の構文をサポートしています。 +- **構造化されたCST出力**: 生成されるCSTは、PostgreSQLの[gram.y](https://github.com/postgres/postgres/blob/REL_17_0/src/backend/parser/gram.y)ファイルで定義された構造に厳密に従います。 +- **`cstree`の利用**: 構文木の構築に`cstree`クレートを使用しています。 +- **wasm-bindgenとの併用**: Pure Rust で書かれているため、wasm-bindgen と併用できます。 +- **PL/pgSQL**: 現在はサポートされていません。 -## 開発の動機 +## 開発のモチベーション -1. Rust から利用でき、広範な文法をサポートする PostgreSQL の CST パーサーが不足している。 -2. [pg_query.rs](https://github.com/pganalyze/pg_query.rs)はとても素晴らしいライブラリだが、CST は構築できず WebAssembly(wasm)でビルドできない。 +Rustから使用可能で、すべての構文をサポートし、(Pure Rust で書かれており) wasm-bindgen が利用可能なライブラリが必要だったため開発しました。 ## 使用方法 -以下のコード例のようにして使用します。 +以下のように使用することができます: ```rust -let resolved_root = postgresql_cst_parser::parse("SELECT 1;"); -dbg!(resolved_root); +use postgresql_cst_parser::{parse, syntax_kind::SyntaxKind}; + +fn main() { + // Parse SQL query and get the syntax tree + let sql = "SELECT tbl.a as a, tbl.b from TBL tbl WHERE tbl.a > 0;"; + let root = parse(sql).unwrap(); + + // Example 1: Extract all column references from the query + let column_refs: Vec = root + .descendants() + .filter(|node| node.kind() == SyntaxKind::columnref) + .map(|node| node.text().to_string()) + .collect(); + + println!("Column references: {:?}", column_refs); // ["tbl.a", "tbl.b", "tbl.a"] + + // Example 2: Find the WHERE condition + if let Some(where_clause) = root + .descendants() + .find(|node| node.kind() == SyntaxKind::where_clause) + { + println!("WHERE condition: {}", where_clause.text()); + } + + // Example 3: Get the selected table name + if let Some(relation_expr) = root + .descendants() + .find(|node| node.kind() == SyntaxKind::relation_expr) + { + if let Some(name_node) = relation_expr + .descendants() + .find(|node| node.kind() == SyntaxKind::ColId) + { + println!("Table name: {}", name_node.text()); + } + } + + // Example 4: Parse complex SQL and extract specific nodes + let complex_sql = "WITH data AS (SELECT id, value FROM source WHERE value > 10) + SELECT d.id, d.value, COUNT(*) OVER (PARTITION BY d.id) + FROM data d JOIN other o ON d.id = o.id + ORDER BY d.value DESC LIMIT 10;"; + + let complex_root = parse(complex_sql).unwrap(); + + // Extract CTEs (Common Table Expressions) + let ctes: Vec<_> = complex_root + .descendants() + .filter(|node| node.kind() == SyntaxKind::common_table_expr) + .collect(); + + // Extract window functions + let window_funcs: Vec<_> = complex_root + .descendants() + .filter(|node| node.kind() == SyntaxKind::over_clause) + .collect(); + + println!("Number of CTEs: {}", ctes.len()); + println!("Number of window functions: {}", window_funcs.len()); +} +``` + +生成される構文木の例: + +```sql +SELECT tbl.a as a from TBL tbl; ``` -さらに、このパーサーを実際に体験してみたい場合は、[こちら](https://tanzaku.github.io/postgresql-cst-parser/)でオンラインで直接試すことができます。実際のコードを入力し、パーサーがどのように動作するかを確認してみましょう。 +``` +Root@0..31 + parse_toplevel@0..31 + stmtmulti@0..31 + stmtmulti@0..30 + toplevel_stmt@0..30 + stmt@0..30 + SelectStmt@0..30 + select_no_parens@0..30 + simple_select@0..30 + SELECT@0..6 "SELECT" + Whitespace@6..7 " " + opt_target_list@7..17 + target_list@7..17 + target_el@7..17 + a_expr@7..12 + c_expr@7..12 + columnref@7..12 + ColId@7..10 + IDENT@7..10 "tbl" + indirection@10..12 + indirection_el@10..12 + Dot@10..11 "." + attr_name@11..12 + ColLabel@11..12 + IDENT@11..12 "a" + Whitespace@12..13 " " + AS@13..15 "as" + Whitespace@15..16 " " + ColLabel@16..17 + IDENT@16..17 "a" + Whitespace@17..18 " " + from_clause@18..30 + FROM@18..22 "from" + Whitespace@22..23 " " + from_list@23..30 + table_ref@23..30 + relation_expr@23..26 + qualified_name@23..26 + ColId@23..26 + IDENT@23..26 "TBL" + Whitespace@26..27 " " + opt_alias_clause@27..30 + alias_clause@27..30 + ColId@27..30 + IDENT@27..30 "tbl" + Semicolon@30..31 ";" +``` + +## オンラインデモ + +[こちら](https://tanzaku.github.io/postgresql-cst-parser/)でパーサーを直接試すことができます。SQLクエリを入力して、生成された構文木をリアルタイムで確認できます。 -## 実装方法 +## 実装 -実装には、PostgreSQL の [scan.l](https://github.com/postgres/postgres/blob/REL_16_STABLE/src/backend/parser/scan.l) と [gram.y](https://github.com/postgres/postgres/blob/REL_16_STABLE/src/backend/parser/gram.y) に対する [libpg_query の patch](https://github.com/pganalyze/libpg_query/tree/16-latest/patches)を適用したものを使用しています。`scan.l` は Rust 用に書き換えられ、`scan.l` と `gram.y` を基にして構文解析表を作成し、パーサーを構築しています。 +この実装は、PostgreSQLの[scan.l](https://github.com/postgres/postgres/blob/REL_17_0/src/backend/parser/scan.l)と[gram.y](https://github.com/postgres/postgres/blob/REL_17_0/src/backend/parser/gram.y)に対して[libpg_query](https://github.com/pganalyze/libpg_query/tree/17-6.0.0/patches)のパッチを適用したファイルを使用しています。`scan.l`はさらに Rust 用に書き直したうえで、`scan.l`と`gram.y`に基づいて構文解析テーブルを作成し、パーサーを構築しています。 ## ライセンス -`kwlist.h`, `scan.l`, `gram.y` は PostgreSQL License です。 -その他のファイルは MIT License の下で公開されています。 +- `kwlist.h`、`parser.c`、`scan.l`、`gram.y`はPostgreSQLライセンスの下にあります。 +- `lexer_ported.rs`と`generated.rs`はPostgreSQLから移植されたコードを含むため、移植部分はPostgreSQLライセンスの下にあります。 +- このプロジェクトでは、`scan.l`、`gram.y`に対して[libpg_query](https://github.com/pganalyze/libpg_query)のパッチを当てていますが、パッチそのものはこのリポジトリには含まれていません。 +- その他のファイルはMITライセンスの下で公開されています。 diff --git a/README.md b/README.md index 4a2d669..750120d 100644 --- a/README.md +++ b/README.md @@ -1,36 +1,158 @@ # postgresql-cst-parser +[![Crates.io](https://img.shields.io/crates/v/postgresql-cst-parser.svg)](https://crates.io/crates/postgresql-cst-parser) + +**Note: This parser is not an official PostgreSQL project but an independent, unofficial tool.** + ## Overview -The `postgresql-cst-parser` is a PostgreSQL-specific Lossless Syntax Tree (CST) parser developed in Pure Rust. This document describes the parser's features, motivation, usage, and details of its implementation. +`postgresql-cst-parser` is a PostgreSQL-specific Concrete Syntax Tree (CST) parser developed in Pure Rust. This document describes the parser's features, development motivation, usage, and implementation details. ## Key Features -- **Automatically Generated CST Parser**: Automatically generated from PostgreSQL grammar, allowing it to support a wide range of syntaxes. -- **Partial Limitations**: Due to some incomplete implementations in the scanner, it does not support all grammatical structures. +- **PostgreSQL 17 Support**: Supports the latest PostgreSQL 17 syntax. +- **Structured CST Output**: The generated CST strictly follows the structure defined in PostgreSQL's [gram.y](https://github.com/postgres/postgres/blob/REL_17_0/src/backend/parser/gram.y) file. +- **Utilizing `cstree`**: Uses the `cstree` crate for building syntax trees. +**Compatible with wasm-bindgen**: Being written in Pure Rust, it can be used with wasm-bindgen for WebAssembly integration. +- **PL/pgSQL**: Currently not supported. -## Motivation for Development +## Development Motivation -1. There is a lack of PostgreSQL CST (Lossless Syntax Tree) parsers that can be utilized from Rust and support a wide range of syntax. -1. [pg_query.rs](https://github.com/pganalyze/pg_query.rs) is an excellent library, however, it does not construct CSTs and cannot be built for WebAssembly (wasm). +This project was developed because we needed a library that can be used from Rust, supports all syntax, and (being written in Pure Rust) can be used with wasm-bindgen. ## Usage -Use it as shown in the following code examples. +You can use it as follows: ```rust -let resolved_root = postgresql_cst_parser::parse("SELECT 1;"); -dbg!(resolved_root); +use postgresql_cst_parser::{parse, syntax_kind::SyntaxKind}; + +fn main() { + // Parse SQL query and get the syntax tree + let sql = "SELECT tbl.a as a, tbl.b from TBL tbl WHERE tbl.a > 0;"; + let root = parse(sql).unwrap(); + + // Example 1: Extract all column references from the query + let column_refs: Vec = root + .descendants() + .filter(|node| node.kind() == SyntaxKind::columnref) + .map(|node| node.text().to_string()) + .collect(); + + println!("Column references: {:?}", column_refs); // ["tbl.a", "tbl.b", "tbl.a"] + + // Example 2: Find the WHERE condition + if let Some(where_clause) = root + .descendants() + .find(|node| node.kind() == SyntaxKind::where_clause) + { + println!("WHERE condition: {}", where_clause.text()); + } + + // Example 3: Get the selected table name + if let Some(relation_expr) = root + .descendants() + .find(|node| node.kind() == SyntaxKind::relation_expr) + { + if let Some(name_node) = relation_expr + .descendants() + .find(|node| node.kind() == SyntaxKind::ColId) + { + println!("Table name: {}", name_node.text()); + } + } + + // Example 4: Parse complex SQL and extract specific nodes + let complex_sql = "WITH data AS (SELECT id, value FROM source WHERE value > 10) + SELECT d.id, d.value, COUNT(*) OVER (PARTITION BY d.id) + FROM data d JOIN other o ON d.id = o.id + ORDER BY d.value DESC LIMIT 10;"; + + let complex_root = parse(complex_sql).unwrap(); + + // Extract CTEs (Common Table Expressions) + let ctes: Vec<_> = complex_root + .descendants() + .filter(|node| node.kind() == SyntaxKind::common_table_expr) + .collect(); + + // Extract window functions + let window_funcs: Vec<_> = complex_root + .descendants() + .filter(|node| node.kind() == SyntaxKind::over_clause) + .collect(); + + println!("Number of CTEs: {}", ctes.len()); + println!("Number of window functions: {}", window_funcs.len()); +} +``` + +Example of the generated syntax tree: + +```sql +SELECT tbl.a as a from TBL tbl; +``` + +``` +Root@0..31 + parse_toplevel@0..31 + stmtmulti@0..31 + stmtmulti@0..30 + toplevel_stmt@0..30 + stmt@0..30 + SelectStmt@0..30 + select_no_parens@0..30 + simple_select@0..30 + SELECT@0..6 "SELECT" + Whitespace@6..7 " " + opt_target_list@7..17 + target_list@7..17 + target_el@7..17 + a_expr@7..12 + c_expr@7..12 + columnref@7..12 + ColId@7..10 + IDENT@7..10 "tbl" + indirection@10..12 + indirection_el@10..12 + Dot@10..11 "." + attr_name@11..12 + ColLabel@11..12 + IDENT@11..12 "a" + Whitespace@12..13 " " + AS@13..15 "as" + Whitespace@15..16 " " + ColLabel@16..17 + IDENT@16..17 "a" + Whitespace@17..18 " " + from_clause@18..30 + FROM@18..22 "from" + Whitespace@22..23 " " + from_list@23..30 + table_ref@23..30 + relation_expr@23..26 + qualified_name@23..26 + ColId@23..26 + IDENT@23..26 "TBL" + Whitespace@26..27 " " + opt_alias_clause@27..30 + alias_clause@27..30 + ColId@27..30 + IDENT@27..30 "tbl" + Semicolon@30..31 ";" ``` -If you would like to experience this parser in action, you can try it out directly online [here](https://tanzaku.github.io/postgresql-cst-parser/). Enter your own code to see how the parser operates in real-time. +## Online Demo +You can try the parser directly [here](https://tanzaku.github.io/postgresql-cst-parser/). Enter your SQL query and see the generated syntax tree in real-time. ## Implementation -The implementation uses a modified version of PostgreSQL's [scan.l](https://github.com/postgres/postgres/blob/REL_16_STABLE/src/backend/parser/scan.l) and [gram.y](https://github.com/postgres/postgres/blob/REL_16_STABLE/src/backend/parser/gram.y) based on patches from [libpg_query](https://github.com/pganalyze/libpg_query/tree/16-latest/patches). `scan.l` has been rewritten for Rust, and a syntax parsing table has been created based on `scan.l` and `gram.y` to construct the parser. +This implementation uses PostgreSQL's [scan.l](https://github.com/postgres/postgres/blob/REL_17_0/src/backend/parser/scan.l) and [gram.y](https://github.com/postgres/postgres/blob/REL_17_0/src/backend/parser/gram.y) with patches from [libpg_query](https://github.com/pganalyze/libpg_query/tree/17-6.0.0/patches) applied. `scan.l` has been further rewritten for Rust, and based on `scan.l` and `gram.y`, a syntax parsing table has been created to build the parser. ## License -`kwlist.h`, `scan.l`, `gram.y` are under the PostgreSQL License. -Other files are published under the MIT License. +- `kwlist.h`, `parser.c`, `scan.l`, `gram.y` are under the PostgreSQL License. +- `lexer_ported.rs` and `generated.rs` contain code ported from PostgreSQL, so the ported parts are under the PostgreSQL License. +- This project applies patches from [libpg_query](https://github.com/pganalyze/libpg_query) to `scan.l` and `gram.y`, but the patches themselves are not included in this repository. +- Other files are published under the MIT License. \ No newline at end of file diff --git a/build.sh b/build.sh index da6cde1..dd631f5 100755 --- a/build.sh +++ b/build.sh @@ -4,4 +4,5 @@ set -eux cargo run -p lexer-generator --release cargo run -p parser-generator --release -cargo test --package postgresql-cst-parser --test test -- test_all --exact --show-output +# cargo test --package postgresql-cst-parser --test test -- test_all --exact --show-output +cargo test --package postgresql-cst-parser diff --git a/build_wasm.sh b/build_wasm.sh deleted file mode 100755 index 0dd51b3..0000000 --- a/build_wasm.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -set -eux - -cd crates/postgresql-cst-parser-wasm -rm -rf ./pkg -wasm-pack build --release --target web -cp pkg/*.js pkg/*.ts pkg/*.wasm ../../docs/js -cd ../../docs -python3 -m http.server 8000 diff --git a/crates/automata/Cargo.toml b/crates/automata/Cargo.toml new file mode 100644 index 0000000..ad41401 --- /dev/null +++ b/crates/automata/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "automata" +version = "0.1.0" +edition = "2024" +exclude.workspace = true + +[dependencies] +typed-arena = "2.0.2" diff --git a/crates/automata/src/dfa.rs b/crates/automata/src/dfa.rs new file mode 100644 index 0000000..5e393fd --- /dev/null +++ b/crates/automata/src/dfa.rs @@ -0,0 +1,212 @@ +#![allow(clippy::mutable_key_type)] +use std::collections::{BTreeMap, BTreeSet}; + +use crate::nfa::{NFAState, Transition, collect_epsilon_closure}; + +pub const INVALID_STATE: usize = !0; + +/// Represents a state in a Deterministic Finite Automaton specialized for lexical analysis. +#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord)] +pub struct DFAState { + /// Transition table mapping byte values (0-255) to destination state indices. + /// Invalid transitions are marked as !0 (usize::MAX). + pub transitions: [usize; 256], + + /// ID of the lexical rule that accepts this state. + /// Lower values indicate higher priority rules (those appearing earlier in the flex definition). + /// When multiple rules can match the same input, the rule with the lowest ID is selected. + pub accept_lexer_rule_id: Option, +} + +pub struct DFA { + pub states: Vec, +} + +impl DFA { + pub fn match_bytes(&self, bs: &[u8]) -> Option { + let mut state = 0; + + // The initial state may be an accepting state, as with patterns like '.*' + let mut accepted = self.states[state].accept_lexer_rule_id; + + for &b in bs { + let next_state = self.states[state].transitions[b as usize]; + if next_state == INVALID_STATE { + break; + } + + if self.states[next_state].accept_lexer_rule_id.is_some() { + accepted = self.states[next_state].accept_lexer_rule_id; + } + state = next_state; + } + + // After processing all input, check for an EOF transition + // EOF is represented as 0 (byte value) for simplicity, similar to null-terminated strings + let next_state = self.states[state].transitions[0]; + if next_state != INVALID_STATE && self.states[next_state].accept_lexer_rule_id.is_some() { + accepted = self.states[next_state].accept_lexer_rule_id; + } + + accepted + } + + pub fn match_string(&self, s: &str) -> Option { + self.match_bytes(s.as_bytes()) + } +} + +impl<'a> From<&'a NFAState<'a>> for DFA { + /// Subset construction algorithm + fn from(start_state: &'a NFAState<'a>) -> Self { + construct_dfa_with_state_mapping(start_state, None) + } +} + +/// Selects the highest priority lexical rule (lowest ID) from all accepting states. +/// This implements Flex-style rule selection semantics, where earlier rules in the +/// definition file have higher priority when multiple rules match the same input. +fn select_highest_priority_rule(set: &BTreeSet<&NFAState>) -> Option { + set.iter() + .fold(None, |acc, s| match *s.accept_lexer_rule_id.borrow() { + Some(v) if v < acc.unwrap_or(u32::MAX) => Some(v), + _ => acc, + }) +} + +/// Subset construction algorithm +pub fn construct_dfa_with_state_mapping<'a>( + start_state: &'a NFAState<'a>, + mut dfa_to_nfa: Option<&mut Vec>>, +) -> DFA { + let mut first_set = BTreeSet::new(); + collect_epsilon_closure(&mut first_set, start_state); + + if let Some(dfa_to_nfa) = dfa_to_nfa.as_mut() { + dfa_to_nfa.push(first_set.iter().map(|s| s.state_id).collect()); + } + + let mut nfa_map = BTreeMap::new(); + nfa_map.insert(first_set.clone(), 0); + + let mut dfa_states = Vec::new(); + dfa_states.push(DFAState { + transitions: [INVALID_STATE; 256], + accept_lexer_rule_id: select_highest_priority_rule(&first_set), + }); + + let mut nfa_states_vec = vec![first_set]; + + while let Some(nfa_states) = nfa_states_vec.pop() { + let src_state_index = *nfa_map.get(&nfa_states).unwrap(); + + for b in 0..=255 { + let mut next_set = BTreeSet::new(); + + let t = Transition::Char(b); + + for nfa_state in &nfa_states { + if let Some(new_states) = nfa_state.transitions.borrow().get(&t) { + for &new_state in new_states { + collect_epsilon_closure(&mut next_set, new_state); + } + } + } + + if next_set.is_empty() { + continue; + } + + let dst_state_index = if let Some(index) = nfa_map.get(&next_set) { + *index + } else { + let index = nfa_map.len(); + + let accept_lexer_rule_id = select_highest_priority_rule(&next_set); + + if let Some(dfa_to_nfa) = dfa_to_nfa.as_mut() { + dfa_to_nfa.push(next_set.iter().map(|s| s.state_id).collect()); + } + + nfa_map.insert(next_set.clone(), index); + nfa_states_vec.push(next_set); + + dfa_states.push(DFAState { + transitions: [!0; 256], + accept_lexer_rule_id, + }); + + index + }; + + dfa_states[src_state_index].transitions[b as usize] = dst_state_index; + } + } + + DFA { states: dfa_states } +} + +#[cfg(test)] +mod tests { + use crate::nfa::NFA; + + use super::*; + + #[test] + fn test_simple1() { + let nfa = NFA::new(); + + // a(b|c)*d + let start = nfa.new_state(); + let s_a1 = nfa.new_state(); + let s_a2 = nfa.new_state(); + let s_bc1 = nfa.new_state(); + let s_bc2 = nfa.new_state(); + let s_b1 = nfa.new_state(); + let s_b2 = nfa.new_state(); + let s_c1 = nfa.new_state(); + let s_c2 = nfa.new_state(); + let s_kleene1 = nfa.new_state(); + let s_kleene2 = nfa.new_state(); + let s_d1 = nfa.new_state(); + let s_d2 = nfa.new_state(); + + // Concatenation + s_a1.add_transition(s_a2, Transition::Char('a' as u8)); + + // Alternation + s_bc1.add_transition(s_b1, Transition::Epsilon); + s_bc1.add_transition(s_c1, Transition::Epsilon); + s_b1.add_transition(s_b2, Transition::Char('b' as u8)); + s_c1.add_transition(s_c2, Transition::Char('c' as u8)); + s_b2.add_transition(s_bc2, Transition::Epsilon); + s_c2.add_transition(s_bc2, Transition::Epsilon); + + // Kleene closure (zero or more repetitions) + s_kleene1.add_transition(s_kleene2, Transition::Epsilon); + s_kleene1.add_transition(s_bc1, Transition::Epsilon); + s_bc2.add_transition(s_kleene2, Transition::Epsilon); + s_bc2.add_transition(s_bc1, Transition::Epsilon); + + // Concatenation + s_d1.add_transition(s_d2, Transition::Char('d' as u8)); + + // Connecting the components + start.add_transition(s_a1, Transition::Epsilon); + s_a2.add_transition(s_bc1, Transition::Epsilon); + s_bc2.add_transition(s_d1, Transition::Epsilon); + + s_d2.set_accept(0); + + assert!(nfa.matches_string(start, "abd")); + assert!(nfa.matches_string(start, "acd")); + assert!(nfa.matches_string(start, "abccbd")); + assert!(!nfa.matches_string(start, "ad")); + + let dfa = DFA::from(start); + assert_eq!(dfa.match_string("abd"), Some(0)); + assert_eq!(dfa.match_string("acd"), Some(0)); + assert_eq!(dfa.match_string("abccbd"), Some(0)); + assert_eq!(dfa.match_string("ad"), None); + } +} diff --git a/crates/automata/src/lib.rs b/crates/automata/src/lib.rs new file mode 100644 index 0000000..4253af6 --- /dev/null +++ b/crates/automata/src/lib.rs @@ -0,0 +1,304 @@ +use std::collections::{HashMap, HashSet}; + +use dfa::{DFA, INVALID_STATE}; +use nfa::{NFA, NFAState, Transition}; +use regexp::{RegexpNode, RegexpParser}; + +pub mod dfa; +pub mod nfa; +pub mod regexp; + +/// A name-to-pattern mapping for use in regex pattern references. +/// Similar to Flex's %{ name definition %} directive. +pub struct NameDefinition { + pub name: String, + pub definition: String, +} + +/// Definition of a pattern in Flex-compatible lexical analyzer. +/// Specifies which lexer states this pattern applies to. +pub struct FlexPatternDef { + pub state_set: Vec, + pub pattern: String, +} + +/// A fragment of NFA with designated start and accept states. +/// Used to build larger NFAs from regex components. +pub struct NFAFragment<'a> { + start_state: &'a NFAState<'a>, + accept_state: &'a NFAState<'a>, +} + +impl<'a> NFAFragment<'a> { + /// Creates a new NFA fragment with fresh start and accept states. + /// This fragment can be used as a building block for larger NFAs. + pub fn new(nfa: &'a NFA<'a>) -> Self { + NFAFragment { + start_state: nfa.new_state(), + accept_state: nfa.new_state(), + } + } +} + +/// Builds an NFA structure from a regular expression AST node +pub fn build_nfa_from_regex_node<'a>( + nfa: &'a NFA<'a>, + regex_nfa: &NFAFragment<'a>, + node: &RegexpNode, + named_pattern_definitions: &HashMap, +) { + let &NFAFragment { + start_state: start, + accept_state: accept, + } = regex_nfa; + + match node { + RegexpNode::Alternative(nodes) => { + for node in nodes { + let node_nfa @ NFAFragment { + start_state: node_start, + accept_state: node_accept, + } = NFAFragment::new(nfa); + + build_nfa_from_regex_node(nfa, &node_nfa, node, named_pattern_definitions); + + start.add_transition(node_start, Transition::Epsilon); + node_accept.add_transition(accept, Transition::Epsilon); + } + } + RegexpNode::AnyOf(bytes) => { + for byte in bytes { + start.add_transition(accept, Transition::Char(*byte)); + } + } + RegexpNode::Char(c) => { + start.add_transition(accept, Transition::Char(*c)); + } + RegexpNode::Concatenation(nodes) => { + let mut state = start; + + for node in nodes { + let node_nfa @ NFAFragment { + start_state: node_start, + accept_state: node_accept, + } = NFAFragment::new(nfa); + + build_nfa_from_regex_node(nfa, &node_nfa, node, named_pattern_definitions); + + state.add_transition(node_start, Transition::Epsilon); + state = node_accept; + } + + state.add_transition(accept, Transition::Epsilon); + } + RegexpNode::ZeroOrMore(node) => { + let node_nfa @ NFAFragment { + start_state: node_start, + accept_state: node_accept, + } = NFAFragment::new(nfa); + + build_nfa_from_regex_node(nfa, &node_nfa, node, named_pattern_definitions); + + start.add_transition(node_start, Transition::Epsilon); + node_accept.add_transition(accept, Transition::Epsilon); + node_accept.add_transition(node_start, Transition::Epsilon); + start.add_transition(accept, Transition::Epsilon); + } + RegexpNode::OneOrMore(node) => { + let node_nfa @ NFAFragment { + start_state: node_start, + accept_state: node_accept, + } = NFAFragment::new(nfa); + + build_nfa_from_regex_node(nfa, &node_nfa, node, named_pattern_definitions); + + start.add_transition(node_start, Transition::Epsilon); + node_accept.add_transition(accept, Transition::Epsilon); + node_accept.add_transition(node_start, Transition::Epsilon); + } + RegexpNode::NoneOf(bytes) => { + // Exclude NULL character (0x00) as it's reserved for the <> marker + for byte in 0x01..=0xFF { + if !bytes.contains(&byte) { + start.add_transition(accept, Transition::Char(byte)); + } + } + } + RegexpNode::Reference(name) => { + let regexp_node = named_pattern_definitions + .get(name) + .unwrap_or_else(|| panic!("Referenced pattern '{name}' not found")); + + let node_nfa @ NFAFragment { + start_state: node_start, + accept_state: node_accept, + } = NFAFragment::new(nfa); + + build_nfa_from_regex_node(nfa, &node_nfa, regexp_node, named_pattern_definitions); + start.add_transition(node_start, Transition::Epsilon); + node_accept.add_transition(accept, Transition::Epsilon); + } + RegexpNode::Repeat(node, min, max) => { + let mut state = start; + for i in 0..*max { + if i >= *min { + state.add_transition(accept, Transition::Epsilon); + } + + let node_nfa @ NFAFragment { + start_state: node_start, + accept_state: node_accept, + } = NFAFragment::new(nfa); + + build_nfa_from_regex_node(nfa, &node_nfa, node, named_pattern_definitions); + + state.add_transition(node_start, Transition::Epsilon); + state = node_accept; + } + state.add_transition(accept, Transition::Epsilon); + } + } +} + +/// Compiles a set of Flex-compatible pattern definitions into DFA. +/// Creates one DFA per lexer state. +pub fn to_flex_pattern_dfa( + pattern_defs: &[FlexPatternDef], + name_definitions: &[NameDefinition], +) -> Vec { + let nfa = NFA::new(); + let mut regex_parser = RegexpParser::new(); + let mut named_pattern_definitions = HashMap::new(); + + for name_definition in name_definitions { + let regex = regex_parser.parse(&name_definition.definition); + named_pattern_definitions.insert(name_definition.name.clone(), regex); + } + + let num_state = pattern_defs + .iter() + .flat_map(|p| p.state_set.iter().cloned()) + .collect::>() + .len(); + + let state_start_node = (0..num_state).map(|_| nfa.new_state()).collect::>(); + + // パターン + for (i, pattern_def) in pattern_defs.iter().enumerate() { + let node = regex_parser.parse(&pattern_def.pattern); + let regex_nfa = NFAFragment::new(&nfa); + + regex_nfa.accept_state.set_accept(i as u32); + build_nfa_from_regex_node(&nfa, ®ex_nfa, &node, &named_pattern_definitions); + + // そのパターンの状態を持つNFAを作成 + for &state_id in &pattern_def.state_set { + state_start_node[state_id].add_transition(regex_nfa.start_state, Transition::Epsilon); + } + } + + state_start_node.into_iter().map(DFA::from).collect() +} + +pub fn match_bytes_in_lexer_state( + dfa: &DFA, + bs: &[u8], + dfa_to_state: &[u32], + state_id: usize, +) -> Option { + let mut state = 0; + let mut accepted = None; + + let state_id_bit = 1 << state_id; + + for &b in bs { + let next_state = dfa.states[state].transitions[b as usize]; + + if next_state == INVALID_STATE || (dfa_to_state[next_state] & state_id_bit) == 0 { + break; + } + + state = next_state; + if dfa.states[state].accept_lexer_rule_id.is_some() { + accepted = dfa.states[state].accept_lexer_rule_id; + } + } + + accepted +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_simple1() { + let pattern_defs = vec![ + FlexPatternDef { + state_set: vec![0], + pattern: "ad".to_string(), + }, + FlexPatternDef { + state_set: vec![1], + pattern: "a(b|c)*d".to_string(), + }, + FlexPatternDef { + state_set: vec![0, 1], + pattern: "w{name1}[0-9]z+".to_string(), + }, + FlexPatternDef { + state_set: vec![0, 1], + pattern: "[^0-9A-Za-z]".to_string(), + }, + ]; + let name_definitions = vec![NameDefinition { + name: "name1".to_string(), + definition: "x?y".to_string(), + }]; + + let dfa = to_flex_pattern_dfa(&pattern_defs, &name_definitions); + + assert_eq!(dfa[0].match_string("ad"), Some(0)); + assert_eq!(dfa[1].match_string("ad"), Some(1)); + assert_eq!(dfa[1].match_string("abd"), Some(1)); + assert_eq!(dfa[1].match_string("abbbbcbcbd"), Some(1)); + assert_eq!(dfa[1].match_string("abbbbcbcbd"), Some(1)); + assert_eq!(dfa[0].match_string("wxy0zzz"), Some(2)); + assert_eq!(dfa[1].match_string("wxy1zz"), Some(2)); + assert_eq!(dfa[0].match_string("wy9zz"), Some(2)); + assert_eq!(dfa[1].match_string("wx9zz"), None); + assert_eq!(dfa[0].match_string("wxyz"), None); + assert_eq!(dfa[0].match_string("0"), None); + assert_eq!(dfa[0].match_string("a"), None); + assert_eq!(dfa[0].match_string("A"), None); + assert_eq!(dfa[0].match_string("@"), Some(3)); + } + + #[test] + fn test_simple2() { + let pattern_defs = vec![FlexPatternDef { + state_set: vec![0], + pattern: "[^']*".to_string(), + }]; + let name_definitions = vec![]; + + let dfa = to_flex_pattern_dfa(&pattern_defs, &name_definitions); + + assert_eq!(dfa[0].match_string("x"), Some(0)); + assert_eq!(dfa[0].match_string(""), Some(0)); + assert_eq!(dfa[0].match_string("'"), Some(0)); + } + + #[test] + fn test_simple3() { + let pattern_defs = vec![FlexPatternDef { + state_set: vec![0], + pattern: r#"[\+\-\*]"#.to_string(), + }]; + let name_definitions = vec![]; + + let dfa = to_flex_pattern_dfa(&pattern_defs, &name_definitions); + + assert_eq!(dfa[0].match_string("*"), Some(0)); + } +} diff --git a/crates/automata/src/nfa.rs b/crates/automata/src/nfa.rs new file mode 100644 index 0000000..3598008 --- /dev/null +++ b/crates/automata/src/nfa.rs @@ -0,0 +1,241 @@ +#![allow(clippy::mutable_key_type)] +use std::{ + cell::{Cell, RefCell}, + collections::{BTreeMap, BTreeSet}, +}; + +use typed_arena::Arena; + +type StateSet<'a> = BTreeSet<&'a NFAState<'a>>; +type ActiveStates<'a> = BTreeSet>; + +/// Represents a transition between NFA states. +/// Can be either an epsilon (empty) transition or a character transition. +#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)] +pub enum Transition { + Epsilon, + Char(u8), +} + +/// Represents a state in a Non-deterministic Finite Automaton. +/// States are connected by transitions and can accept input. +#[allow(clippy::mutable_key_type)] +#[derive(Debug, Clone, Eq)] +pub struct NFAState<'a> { + pub state_id: usize, + pub transitions: RefCell>>>, + + /// ID of the lexical rule that accepts this state. + /// Lower values indicate higher priority rules (those appearing earlier in the flex definition). + /// When multiple rules can match the same input, the rule with the lowest ID is selected. + pub accept_lexer_rule_id: RefCell>, +} + +impl PartialEq for NFAState<'_> { + fn eq(&self, other: &Self) -> bool { + self.state_id == other.state_id + } +} + +impl PartialOrd for NFAState<'_> { + fn partial_cmp(&self, other: &Self) -> Option { + Some(self.state_id.cmp(&other.state_id)) + } +} + +impl Ord for NFAState<'_> { + fn cmp(&self, other: &Self) -> std::cmp::Ordering { + self.state_id.cmp(&other.state_id) + } +} + +impl<'a> NFAState<'a> { + pub fn add_transition(&'a self, state: &'a NFAState<'a>, transition: Transition) { + self.transitions + .borrow_mut() + .entry(transition) + .or_default() + .push(state); + } + + pub fn set_accept(&self, matches_string: u32) { + *self.accept_lexer_rule_id.borrow_mut() = Some(matches_string); + } +} + +/// Non-deterministic Finite Automaton implementation. +/// Used for efficient pattern matching with regular expressions. +pub struct NFA<'a> { + next_state_id: Cell, + arena: Arena>, +} + +/// Computes the epsilon closure of a state. +/// Returns the acceptance token of the highest-priority accepting state +/// in the closure, if any. +pub fn collect_epsilon_closure<'a>( + epsilon_closure: &mut StateSet<'a>, + s: &'a NFAState<'a>, +) -> Option { + if !epsilon_closure.insert(s) { + return None; + } + + let mut candidate = vec![s]; + let mut accepted_lexer_rule_id = None; + + { + let id = *s.accept_lexer_rule_id.borrow(); + if accepted_lexer_rule_id.unwrap_or(!0) > id.unwrap_or(!0) { + accepted_lexer_rule_id = id; + } + } + + while let Some(s) = candidate.pop() { + if let Some(new_states) = s.transitions.borrow().get(&Transition::Epsilon) { + for &new_state in new_states { + if epsilon_closure.insert(new_state) { + candidate.push(new_state); + + let id = *new_state.accept_lexer_rule_id.borrow(); + if accepted_lexer_rule_id.unwrap_or(!0) > id.unwrap_or(!0) { + accepted_lexer_rule_id = id; + } + } + } + } + } + + accepted_lexer_rule_id +} + +impl<'a> NFA<'a> { + pub fn new() -> NFA<'a> { + let arena: Arena> = Arena::new(); + + NFA { + next_state_id: Cell::new(0), + arena, + } + } + + pub fn new_state(&'a self) -> &'a NFAState<'a> { + let state_id = self.next_state_id.get(); + self.next_state_id.set(state_id + 1); + + self.arena.alloc(NFAState { + state_id, + transitions: RefCell::new(BTreeMap::new()), + accept_lexer_rule_id: RefCell::new(None), + }) + } + + /// Determines whether the NFA accepts the given byte sequence. + pub fn matches_bytes(&self, start: &'a NFAState<'a>, bs: &[u8]) -> bool { + let mut active_states = ActiveStates::new(); + + let mut initial_states = StateSet::new(); + + if collect_epsilon_closure(&mut initial_states, start).is_some() { + return true; + } + + active_states.insert(initial_states); + + for &b in bs { + let mut next_active_states = ActiveStates::new(); + + for state_set in &active_states { + let mut next_state_set = StateSet::new(); + + // All states reachable by epsilon transitions from the previous step have already been included + for state in state_set { + if let Some(new_states) = state.transitions.borrow().get(&Transition::Char(b)) { + for &new_state in new_states { + if collect_epsilon_closure(&mut next_state_set, new_state).is_some() { + return true; + } + } + } + } + + if next_state_set.is_empty() { + continue; + } + + next_active_states.insert(next_state_set); + } + + active_states = next_active_states; + } + + false + } + + pub fn matches_string(&self, start: &'a NFAState<'a>, s: &str) -> bool { + self.matches_bytes(start, s.as_bytes()) + } +} + +impl Default for NFA<'_> { + fn default() -> Self { + NFA::new() + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_simple_regexp_nfa_matching() { + let nfa = NFA::new(); + + // a(b|c)*d + let start = nfa.new_state(); + let s_a1 = nfa.new_state(); + let s_a2 = nfa.new_state(); + let s_bc1 = nfa.new_state(); + let s_bc2 = nfa.new_state(); + let s_b1 = nfa.new_state(); + let s_b2 = nfa.new_state(); + let s_c1 = nfa.new_state(); + let s_c2 = nfa.new_state(); + let s_kleene1 = nfa.new_state(); + let s_kleene2 = nfa.new_state(); + let s_d1 = nfa.new_state(); + let s_d2 = nfa.new_state(); + + // Concatenation + s_a1.add_transition(s_a2, Transition::Char('a' as u8)); + + // Alternation + s_bc1.add_transition(s_b1, Transition::Epsilon); + s_bc1.add_transition(s_c1, Transition::Epsilon); + s_b1.add_transition(s_b2, Transition::Char('b' as u8)); + s_c1.add_transition(s_c2, Transition::Char('c' as u8)); + s_b2.add_transition(s_bc2, Transition::Epsilon); + s_c2.add_transition(s_bc2, Transition::Epsilon); + + // Kleene closure + s_kleene1.add_transition(s_kleene2, Transition::Epsilon); + s_kleene1.add_transition(s_bc1, Transition::Epsilon); + s_bc2.add_transition(s_kleene2, Transition::Epsilon); + s_bc2.add_transition(s_bc1, Transition::Epsilon); + + // Concatenation + s_d1.add_transition(s_d2, Transition::Char('d' as u8)); + + // Connecting the components + start.add_transition(s_a1, Transition::Epsilon); + s_a2.add_transition(s_bc1, Transition::Epsilon); + s_bc2.add_transition(s_d1, Transition::Epsilon); + + s_d2.set_accept(0); + + assert!(nfa.matches_string(start, "abd")); + assert!(nfa.matches_string(start, "acd")); + assert!(nfa.matches_string(start, "abccbd")); + assert!(!nfa.matches_string(start, "ad")); + } +} diff --git a/crates/automata/src/regexp.rs b/crates/automata/src/regexp.rs new file mode 100644 index 0000000..5e9c230 --- /dev/null +++ b/crates/automata/src/regexp.rs @@ -0,0 +1,529 @@ +// const EOF: &'static str = "<>"; +const EOF_MARKER: [u8; 7] = [b'<', b'<', b'E', b'O', b'F', b'>', b'>']; + +/// Abstract Syntax Tree node for regular expression patterns. +/// Represents different components that can appear in a regex pattern. +#[derive(Debug, Clone, PartialEq, Eq)] +pub enum RegexpNode { + Char(u8), + AnyOf(Vec), + NoneOf(Vec), + Concatenation(Vec), + Alternative(Vec), + ZeroOrMore(Box), + OneOrMore(Box), + Repeat(Box, usize, usize), + Reference(String), +} + +impl RegexpNode { + fn as_char_value(&self) -> u8 { + match self { + RegexpNode::Char(c) => *c, + _ => panic!("Called as_char_value on non-Char node"), + } + } + + fn concat(nodes: Vec) -> RegexpNode { + if nodes.len() == 1 { + nodes.into_iter().next().unwrap() + } else { + let flatten = nodes + .into_iter() + .flat_map(|node| { + if let RegexpNode::Concatenation(nodes) = node { + nodes + } else { + vec![node] + } + }) + .collect(); + + RegexpNode::Concatenation(flatten) + } + } + + fn alternate(nodes: Vec) -> RegexpNode { + if nodes.len() == 1 { + nodes.into_iter().next().unwrap() + } else { + RegexpNode::Alternative(nodes) + } + } +} + +#[derive(Debug)] +pub struct RegexpParser { + index: usize, + bytes: Vec, + parsing_context_stack: Vec>, +} + +impl RegexpParser { + pub fn new() -> Self { + RegexpParser { + index: 0, + bytes: Vec::new(), + parsing_context_stack: vec![], + } + } + + fn pop_node(&mut self) -> RegexpNode { + self.parsing_context_stack + .last_mut() + .unwrap() + .pop() + .unwrap() + } + + fn parse_escape_sequence_as_byte(&mut self) -> u8 { + self.index += 1; + + let c = self.bytes[self.index]; + self.index += 1; + + match c { + b'b' => b'\x08', + b'f' => b'\x0c', + b't' => b'\t', + b'r' => b'\r', + b'n' => b'\n', + b'v' => b'\x0b', + b'x' => { + let mut v = 0; + + while self.index < self.bytes.len() { + let c = self.bytes[self.index]; + + if !c.is_ascii_hexdigit() { + break; + } + + let d = match c { + b'0'..=b'9' => c - b'0', + b'a'..=b'f' => c - b'a' + 10, + b'A'..=b'F' => c - b'A' + 10, + _ => unreachable!(), + }; + + v = v * 16 + d; + self.index += 1; + } + + v + } + // If no format specified, treat as octal number + b'0'..=b'9' => { + let mut v = c - b'0'; + + while self.index < self.bytes.len() { + let c = self.bytes[self.index]; + + if !c.is_ascii_digit() { + break; + } + + v = v * 8 + (c - b'0'); + self.index += 1; + } + + v + } + _ => c, + } + } + + fn parse_escape_sequence_as_node(&mut self) -> RegexpNode { + RegexpNode::Char(self.parse_escape_sequence_as_byte()) + } + + /// Parses a character class expression like [a-z0-9] + /// Can handle ranges, escapes and negation ([^...]) + fn parse_character_class_to_node(&mut self) -> RegexpNode { + let mut nodes: Vec = Vec::new(); + + self.index += 1; + + let is_not = if self.bytes[self.index] == b'^' { + self.index += 1; + true + } else { + false + }; + + let mut is_minus = false; + while self.index < self.bytes.len() { + let c = self.bytes[self.index]; + + let prev_is_minus = is_minus; + is_minus = false; + + match c { + b']' => { + let bs = nodes + .into_iter() + .map(|node| match node { + RegexpNode::Char(c) => c, + _ => panic!(), + }) + .collect::>(); + + let node: RegexpNode = if is_not { + RegexpNode::NoneOf(bs) + } else { + RegexpNode::AnyOf(bs) + }; + + self.index += 1; + return node; + } + b'\\' => nodes.push(self.parse_escape_sequence_as_node()), + _ => { + self.index += 1; + is_minus = c == b'-'; + nodes.push(RegexpNode::Char(c)) + } + } + + if prev_is_minus && nodes.len() >= 3 { + let last = nodes.pop().unwrap().as_char_value(); + nodes.pop(); + let first = nodes.pop().unwrap().as_char_value(); + + for i in first..=last { + nodes.push(RegexpNode::Char(i)); + } + } + } + + unreachable!() + } + + fn parse_quoted_string(&mut self) -> RegexpNode { + let mut nodes = Vec::new(); + self.index += 1; + loop { + let c = self.bytes[self.index]; + self.index += 1; + + if c == b'"' { + break; + } + + nodes.push(RegexpNode::Char(c)); + } + + RegexpNode::concat(nodes) + } + + fn parse_ref_or_qualifier(&mut self) -> RegexpNode { + self.index += 1; + + let mut content = Vec::new(); + + while self.index < self.bytes.len() { + let c = self.bytes[self.index]; + + if c == b'}' { + self.index += 1; + break; + } + + if c == b'\\' { + content.push(self.parse_escape_sequence_as_byte()); + } else { + self.index += 1; + content.push(c); + } + } + + // If a minimum repetition count is specified + if let Some(i) = content.iter().position(|&b| b == b',') { + let last = self.pop_node(); + + let min_str = std::str::from_utf8(&content[0..i]).unwrap(); + let max_str = std::str::from_utf8(&content[i + 1..]).unwrap(); + + let min = min_str.parse().unwrap(); + let max = max_str.parse().unwrap(); + return RegexpNode::Repeat(last.into(), min, max); + } + + // If this is a repetition count (all digits) + if content.iter().all(|&b| b.is_ascii_digit()) { + let last = self.pop_node(); + let val_str = std::str::from_utf8(&content).unwrap(); + let val = val_str.parse().unwrap(); + return RegexpNode::Repeat(last.into(), val, val); + } + + // Otherwise, treat as a reference to another pattern + let s = std::str::from_utf8(&content).unwrap(); + RegexpNode::Reference(s.to_string()) + } + + fn parse_group(&mut self) -> RegexpNode { + assert_eq!(self.bytes[self.index], b'('); + self.index += 1; + + let node = self.parse_alternative(); + + assert_eq!(self.bytes[self.index], b')'); + self.index += 1; + + node + } + + fn parse_single_node(&mut self) -> RegexpNode { + if self.bytes[self.index..].starts_with(&EOF_MARKER) { + self.index += EOF_MARKER.len(); + return RegexpNode::Char(0); + } + + let c = self.bytes[self.index]; + + match c { + b'[' => self.parse_character_class_to_node(), + b'(' => self.parse_group(), + b'{' => self.parse_ref_or_qualifier(), + b'\\' => self.parse_escape_sequence_as_node(), + b'"' => self.parse_quoted_string(), + b'*' => { + self.index += 1; + let last = self.pop_node(); + RegexpNode::ZeroOrMore(last.into()) + } + b'+' => { + self.index += 1; + let last = self.pop_node(); + RegexpNode::OneOrMore(last.into()) + } + b'?' => { + self.index += 1; + let last = self.pop_node(); + RegexpNode::Repeat(Box::new(last), 0, 1) + } + b'.' => { + self.index += 1; + RegexpNode::NoneOf(Vec::new()) + } + b']' | b')' | b'}' => unreachable!(), + _ => { + self.index += 1; + RegexpNode::Char(c) + } + } + } + + fn parse_alternative(&mut self) -> RegexpNode { + let mut alt_nodes: Vec = vec![]; + self.parsing_context_stack.push(vec![]); + + while self.index < self.bytes.len() { + let c = self.bytes[self.index]; + + match c { + b')' | b']' | b'}' => { + break; + } + b'|' => { + self.index += 1; + let nodes = self.parsing_context_stack.pop().unwrap(); + alt_nodes.push(RegexpNode::concat(nodes)); + self.parsing_context_stack.push(vec![]); + } + _ => { + let node = self.parse_single_node(); + self.parsing_context_stack.last_mut().unwrap().push(node); + } + } + } + + let nodes = self.parsing_context_stack.pop().unwrap(); + if !nodes.is_empty() { + alt_nodes.push(RegexpNode::concat(nodes)); + } + + RegexpNode::alternate(alt_nodes) + } + + pub fn parse(&mut self, p: &str) -> RegexpNode { + self.index = 0; + self.bytes = p.as_bytes().to_vec(); + self.parse_alternative() + } +} + +impl Default for RegexpParser { + fn default() -> Self { + RegexpParser::new() + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_whitespace_character_class_parsing() { + let mut parser = RegexpParser::new(); + assert_eq!( + parser.parse(r#"[ \t\n\r\f\v]"#), + RegexpNode::AnyOf(vec![b' ', b'\t', b'\n', b'\r', 12, 11]) + ); + } + + #[test] + fn test_negated_newline_character_class() { + let mut parser = RegexpParser::new(); + assert_eq!( + parser.parse(r#"[^\n\r]"#), + RegexpNode::NoneOf(vec![b'\n', b'\r']) + ); + } + + #[test] + fn test_comment_pattern() { + let mut parser = RegexpParser::new(); + assert_eq!( + parser.parse(r#"("--"{non_newline}*)"#), + RegexpNode::Concatenation(vec![ + RegexpNode::Char(b'-'), + RegexpNode::Char(b'-'), + RegexpNode::ZeroOrMore(Box::new(RegexpNode::Reference(String::from( + "non_newline" + )))), + ]) + ); + } + + #[test] + fn test_hexadecimal_character_class() { + let mut parser = RegexpParser::new(); + assert_eq!( + parser.parse(r#"[0-9A-Fa-f]"#), + RegexpNode::AnyOf(vec![ + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70, 97, 98, 99, 100, + 101, 102 + ]) + ); + } + + #[test] + fn test_hex_literal_pattern() { + let mut parser = RegexpParser::new(); + + assert_eq!( + parser.parse(r#"0[xX](_?{hexdigit})+"#), + RegexpNode::Concatenation(vec![ + RegexpNode::Char(48), + RegexpNode::AnyOf(vec![120, 88]), + RegexpNode::OneOrMore( + RegexpNode::Concatenation(vec![ + RegexpNode::Repeat(RegexpNode::Char(b'_').into(), 0, 1), + RegexpNode::Reference(String::from("hexdigit")), + ]) + .into() + ) + ]) + ); + } + + #[test] + fn test_exponential_notation_pattern() { + let mut parser = RegexpParser::new(); + + assert_eq!( + parser.parse(r#"({decinteger}|{numeric})[Ee][-+]?{decinteger}"#), + RegexpNode::Concatenation(vec![ + RegexpNode::alternate(vec![ + RegexpNode::Reference(String::from("decinteger")), + RegexpNode::Reference(String::from("numeric")), + ]), + RegexpNode::AnyOf(vec![69, 101]), + RegexpNode::Repeat(Box::new(RegexpNode::AnyOf(vec![b'-', b'+'])), 0, 1), + RegexpNode::Reference(String::from("decinteger")), + ]) + ); + } + + #[test] + fn test_quoted_string_escape_pattern() { + let mut parser = RegexpParser::new(); + + assert_eq!( + parser.parse(r#"[^\\']+"#), + RegexpNode::OneOrMore(RegexpNode::NoneOf(vec![b'\\', b'\'']).into()) + ); + } + + #[test] + fn test_hex_escape_sequence_pattern() { + let mut parser = RegexpParser::new(); + + assert_eq!( + parser.parse(r#"[\\]x[0-9A-Fa-f]{1,2}"#), + RegexpNode::Concatenation(vec![ + RegexpNode::AnyOf(vec![b'\\']), + RegexpNode::Char(b'x'), + RegexpNode::Repeat( + Box::new(RegexpNode::AnyOf(vec![ + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70, 97, 98, 99, + 100, 101, 102 + ])), + 1, + 2 + ) + ]) + ); + } + + #[test] + fn test_identifier_character_class() { + let mut parser = RegexpParser::new(); + + assert_eq!( + parser.parse(r#"[A-Za-z\x80-\xFF_]"#), + RegexpNode::AnyOf(vec![ + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 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, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, 95 + ]) + ); + } + + #[test] + fn test_escaped_double_quote() { + let mut parser = RegexpParser::new(); + + assert_eq!(parser.parse(r#"\""#), RegexpNode::Char(34)); + } + + #[test] + fn test_non_quote_repetition() { + let mut parser = RegexpParser::new(); + + assert_eq!( + parser.parse(r#"[^']*"#), + RegexpNode::ZeroOrMore(RegexpNode::NoneOf(vec![39]).into()) + ); + } + + #[test] + fn test_escaped_operator_character_class() { + let mut parser = RegexpParser::new(); + + assert_eq!( + parser.parse(r#"[\+\-\*]"#), + RegexpNode::AnyOf(vec![b'+', b'-', b'*']) + ); + } +} diff --git a/crates/lexer-generator/Cargo.toml b/crates/lexer-generator/Cargo.toml index 86e2b0b..431a3d9 100644 --- a/crates/lexer-generator/Cargo.toml +++ b/crates/lexer-generator/Cargo.toml @@ -1,7 +1,8 @@ [package] name = "lexer-generator" version = "0.1.0" -edition = "2021" +edition = "2024" +exclude.workspace = true [package.metadata.release] release = false @@ -13,3 +14,4 @@ regex = "1.10.2" bincode = "1.3.3" cstree = { version = "0.12.0", features = ["derive"] } serde = { version = "1.0.195", features = ["derive"] } +automata = { path = "../automata" } diff --git a/crates/lexer-generator/resources/kwlist.h b/crates/lexer-generator/resources/kwlist.h index 5984dcf..658d7ff 100644 --- a/crates/lexer-generator/resources/kwlist.h +++ b/crates/lexer-generator/resources/kwlist.h @@ -7,7 +7,7 @@ * by the PG_KEYWORD macro, which is not defined in this file; it can * be defined by the caller for special purposes. * - * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group + * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION @@ -93,6 +93,7 @@ PG_KEYWORD("commit", COMMIT, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("committed", COMMITTED, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("compression", COMPRESSION, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("concurrently", CONCURRENTLY, TYPE_FUNC_NAME_KEYWORD, BARE_LABEL) +PG_KEYWORD("conditional", CONDITIONAL, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("configuration", CONFIGURATION, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("conflict", CONFLICT, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("connection", CONNECTION, UNRESERVED_KEYWORD, BARE_LABEL) @@ -147,11 +148,13 @@ PG_KEYWORD("double", DOUBLE_P, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("drop", DROP, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("each", EACH, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("else", ELSE, RESERVED_KEYWORD, BARE_LABEL) +PG_KEYWORD("empty", EMPTY_P, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("enable", ENABLE_P, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("encoding", ENCODING, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("encrypted", ENCRYPTED, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("end", END_P, RESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("enum", ENUM_P, UNRESERVED_KEYWORD, BARE_LABEL) +PG_KEYWORD("error", ERROR_P, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("escape", ESCAPE, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("event", EVENT, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("except", EXCEPT, RESERVED_KEYWORD, AS_LABEL) @@ -233,10 +236,15 @@ PG_KEYWORD("join", JOIN, TYPE_FUNC_NAME_KEYWORD, BARE_LABEL) PG_KEYWORD("json", JSON, COL_NAME_KEYWORD, BARE_LABEL) PG_KEYWORD("json_array", JSON_ARRAY, COL_NAME_KEYWORD, BARE_LABEL) PG_KEYWORD("json_arrayagg", JSON_ARRAYAGG, COL_NAME_KEYWORD, BARE_LABEL) +PG_KEYWORD("json_exists", JSON_EXISTS, COL_NAME_KEYWORD, BARE_LABEL) PG_KEYWORD("json_object", JSON_OBJECT, COL_NAME_KEYWORD, BARE_LABEL) PG_KEYWORD("json_objectagg", JSON_OBJECTAGG, COL_NAME_KEYWORD, BARE_LABEL) +PG_KEYWORD("json_query", JSON_QUERY, COL_NAME_KEYWORD, BARE_LABEL) PG_KEYWORD("json_scalar", JSON_SCALAR, COL_NAME_KEYWORD, BARE_LABEL) PG_KEYWORD("json_serialize", JSON_SERIALIZE, COL_NAME_KEYWORD, BARE_LABEL) +PG_KEYWORD("json_table", JSON_TABLE, COL_NAME_KEYWORD, BARE_LABEL) +PG_KEYWORD("json_value", JSON_VALUE, COL_NAME_KEYWORD, BARE_LABEL) +PG_KEYWORD("keep", KEEP, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("key", KEY, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("keys", KEYS, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("label", LABEL, UNRESERVED_KEYWORD, BARE_LABEL) @@ -266,6 +274,7 @@ PG_KEYWORD("matched", MATCHED, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("materialized", MATERIALIZED, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("maxvalue", MAXVALUE, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("merge", MERGE, UNRESERVED_KEYWORD, BARE_LABEL) +PG_KEYWORD("merge_action", MERGE_ACTION, COL_NAME_KEYWORD, BARE_LABEL) PG_KEYWORD("method", METHOD, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("minute", MINUTE_P, UNRESERVED_KEYWORD, AS_LABEL) PG_KEYWORD("minvalue", MINVALUE, UNRESERVED_KEYWORD, BARE_LABEL) @@ -277,6 +286,7 @@ PG_KEYWORD("names", NAMES, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("national", NATIONAL, COL_NAME_KEYWORD, BARE_LABEL) PG_KEYWORD("natural", NATURAL, TYPE_FUNC_NAME_KEYWORD, BARE_LABEL) PG_KEYWORD("nchar", NCHAR, COL_NAME_KEYWORD, BARE_LABEL) +PG_KEYWORD("nested", NESTED, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("new", NEW, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("next", NEXT, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("nfc", NFC, UNRESERVED_KEYWORD, BARE_LABEL) @@ -302,6 +312,7 @@ PG_KEYWORD("off", OFF, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("offset", OFFSET, RESERVED_KEYWORD, AS_LABEL) PG_KEYWORD("oids", OIDS, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("old", OLD, UNRESERVED_KEYWORD, BARE_LABEL) +PG_KEYWORD("omit", OMIT, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("on", ON, RESERVED_KEYWORD, AS_LABEL) PG_KEYWORD("only", ONLY, RESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("operator", OPERATOR, UNRESERVED_KEYWORD, BARE_LABEL) @@ -326,7 +337,9 @@ PG_KEYWORD("partial", PARTIAL, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("partition", PARTITION, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("passing", PASSING, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("password", PASSWORD, UNRESERVED_KEYWORD, BARE_LABEL) +PG_KEYWORD("path", PATH, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("placing", PLACING, RESERVED_KEYWORD, BARE_LABEL) +PG_KEYWORD("plan", PLAN, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("plans", PLANS, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("policy", POLICY, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("position", POSITION, COL_NAME_KEYWORD, BARE_LABEL) @@ -344,6 +357,7 @@ PG_KEYWORD("procedures", PROCEDURES, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("program", PROGRAM, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("publication", PUBLICATION, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("quote", QUOTE, UNRESERVED_KEYWORD, BARE_LABEL) +PG_KEYWORD("quotes", QUOTES, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("range", RANGE, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("read", READ, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("real", REAL, COL_NAME_KEYWORD, BARE_LABEL) @@ -403,6 +417,7 @@ PG_KEYWORD("skip", SKIP, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("smallint", SMALLINT, COL_NAME_KEYWORD, BARE_LABEL) PG_KEYWORD("snapshot", SNAPSHOT, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("some", SOME, RESERVED_KEYWORD, BARE_LABEL) +PG_KEYWORD("source", SOURCE, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("sql", SQL_P, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("stable", STABLE, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("standalone", STANDALONE_P, UNRESERVED_KEYWORD, BARE_LABEL) @@ -414,6 +429,7 @@ PG_KEYWORD("stdout", STDOUT, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("storage", STORAGE, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("stored", STORED, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("strict", STRICT_P, UNRESERVED_KEYWORD, BARE_LABEL) +PG_KEYWORD("string", STRING_P, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("strip", STRIP_P, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("subscription", SUBSCRIPTION, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("substring", SUBSTRING, COL_NAME_KEYWORD, BARE_LABEL) @@ -426,6 +442,7 @@ PG_KEYWORD("table", TABLE, RESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("tables", TABLES, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("tablesample", TABLESAMPLE, TYPE_FUNC_NAME_KEYWORD, BARE_LABEL) PG_KEYWORD("tablespace", TABLESPACE, UNRESERVED_KEYWORD, BARE_LABEL) +PG_KEYWORD("target", TARGET, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("temp", TEMP, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("template", TEMPLATE, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("temporary", TEMPORARY, UNRESERVED_KEYWORD, BARE_LABEL) @@ -449,6 +466,7 @@ PG_KEYWORD("types", TYPES_P, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("uescape", UESCAPE, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("unbounded", UNBOUNDED, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("uncommitted", UNCOMMITTED, UNRESERVED_KEYWORD, BARE_LABEL) +PG_KEYWORD("unconditional", UNCONDITIONAL, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("unencrypted", UNENCRYPTED, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("union", UNION, RESERVED_KEYWORD, AS_LABEL) PG_KEYWORD("unique", UNIQUE, RESERVED_KEYWORD, BARE_LABEL) diff --git a/crates/lexer-generator/resources/lex_template.rs b/crates/lexer-generator/resources/lex_template.rs deleted file mode 100644 index 0f21cbb..0000000 --- a/crates/lexer-generator/resources/lex_template.rs +++ /dev/null @@ -1,50 +0,0 @@ -#![allow(clippy::all)] -#![allow(unreachable_code)] - -use std::collections::HashMap; - -// use regex::{Match, Regex}; -use regex::bytes::Regex; - -use super::{ - util::{get_char_by_byte_pos, yyerror}, - {Lexer, Rule, TokenKind, Yylval, NAMEDATALEN}, -}; - -macro_rules! yyterminate { - () => { - return None; - }; -} - -#[derive(Debug, PartialEq, Eq, Clone, Copy)] -pub enum RuleKind {{rule_kinds}} - -#[derive(Debug, PartialEq, Eq, Clone, Copy)] -pub enum State {{states}} - -impl Lexer { - pub fn parse_token(&mut self) -> Option { - loop { - let (m, kind) = self.find_match(); - - self.yyleng = m.len(); - let yytext = self.yytext(); - - match kind {{actions}} - self.advance(); - } - } -} - -pub fn get_rules() -> Vec { - vec![{rule_defs}] -} - -pub fn get_keyword_map() -> HashMap<&'static str, &'static str> { - let mut map = HashMap::new(); - for (kw, tok) in [{keyword_map}] { - map.insert(kw, tok); - } - map -} diff --git a/crates/lexer-generator/resources/parser.c b/crates/lexer-generator/resources/parser.c new file mode 100644 index 0000000..551b37a --- /dev/null +++ b/crates/lexer-generator/resources/parser.c @@ -0,0 +1,530 @@ +/*------------------------------------------------------------------------- + * + * parser.c + * Main entry point/driver for PostgreSQL grammar + * + * Note that the grammar is not allowed to perform any table access + * (since we need to be able to do basic parsing even while inside an + * aborted transaction). Therefore, the data structures returned by + * the grammar are "raw" parsetrees that still need to be analyzed by + * analyze.c and related files. + * + * + * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group + * Portions Copyright (c) 1994, Regents of the University of California + * + * IDENTIFICATION + * src/backend/parser/parser.c + * + *------------------------------------------------------------------------- + */ + +#include "postgres.h" + +#include "gramparse.h" +#include "mb/pg_wchar.h" +#include "parser/parser.h" +#include "parser/scansup.h" + +static bool check_uescapechar(unsigned char escape); +static char *str_udeescape(const char *str, char escape, + int position, core_yyscan_t yyscanner); + + +/* + * raw_parser + * Given a query in string form, do lexical and grammatical analysis. + * + * Returns a list of raw (un-analyzed) parse trees. The contents of the + * list have the form required by the specified RawParseMode. + */ +List * +raw_parser(const char *str, RawParseMode mode) +{ + core_yyscan_t yyscanner; + base_yy_extra_type yyextra; + int yyresult; + + /* initialize the flex scanner */ + yyscanner = scanner_init(str, &yyextra.core_yy_extra, + &ScanKeywords, ScanKeywordTokens); + + /* base_yylex() only needs us to initialize the lookahead token, if any */ + if (mode == RAW_PARSE_DEFAULT) + yyextra.have_lookahead = false; + else + { + /* this array is indexed by RawParseMode enum */ + static const int mode_token[] = { + [RAW_PARSE_DEFAULT] = 0, + [RAW_PARSE_TYPE_NAME] = MODE_TYPE_NAME, + [RAW_PARSE_PLPGSQL_EXPR] = MODE_PLPGSQL_EXPR, + [RAW_PARSE_PLPGSQL_ASSIGN1] = MODE_PLPGSQL_ASSIGN1, + [RAW_PARSE_PLPGSQL_ASSIGN2] = MODE_PLPGSQL_ASSIGN2, + [RAW_PARSE_PLPGSQL_ASSIGN3] = MODE_PLPGSQL_ASSIGN3, + }; + + yyextra.have_lookahead = true; + yyextra.lookahead_token = mode_token[mode]; + yyextra.lookahead_yylloc = 0; + yyextra.lookahead_end = NULL; + } + + /* initialize the bison parser */ + parser_init(&yyextra); + + /* Parse! */ + yyresult = base_yyparse(yyscanner); + + /* Clean up (release memory) */ + scanner_finish(yyscanner); + + if (yyresult) /* error */ + return NIL; + + return yyextra.parsetree; +} + + +/* + * Intermediate filter between parser and core lexer (core_yylex in scan.l). + * + * This filter is needed because in some cases the standard SQL grammar + * requires more than one token lookahead. We reduce these cases to one-token + * lookahead by replacing tokens here, in order to keep the grammar LALR(1). + * + * Using a filter is simpler than trying to recognize multiword tokens + * directly in scan.l, because we'd have to allow for comments between the + * words. Furthermore it's not clear how to do that without re-introducing + * scanner backtrack, which would cost more performance than this filter + * layer does. + * + * We also use this filter to convert UIDENT and USCONST sequences into + * plain IDENT and SCONST tokens. While that could be handled by additional + * productions in the main grammar, it's more efficient to do it like this. + * + * The filter also provides a convenient place to translate between + * the core_YYSTYPE and YYSTYPE representations (which are really the + * same thing anyway, but notationally they're different). + */ +int +base_yylex(YYSTYPE *lvalp, YYLTYPE *llocp, core_yyscan_t yyscanner) +{ + base_yy_extra_type *yyextra = pg_yyget_extra(yyscanner); + int cur_token; + int next_token; + int cur_token_length; + YYLTYPE cur_yylloc; + + /* Get next token --- we might already have it */ + if (yyextra->have_lookahead) + { + cur_token = yyextra->lookahead_token; + lvalp->core_yystype = yyextra->lookahead_yylval; + *llocp = yyextra->lookahead_yylloc; + if (yyextra->lookahead_end) + *(yyextra->lookahead_end) = yyextra->lookahead_hold_char; + yyextra->have_lookahead = false; + } + else + cur_token = core_yylex(&(lvalp->core_yystype), llocp, yyscanner); + + /* + * If this token isn't one that requires lookahead, just return it. If it + * does, determine the token length. (We could get that via strlen(), but + * since we have such a small set of possibilities, hardwiring seems + * feasible and more efficient --- at least for the fixed-length cases.) + */ + switch (cur_token) + { + case FORMAT: + cur_token_length = 6; + break; + case NOT: + cur_token_length = 3; + break; + case NULLS_P: + cur_token_length = 5; + break; + case WITH: + cur_token_length = 4; + break; + case UIDENT: + case USCONST: + cur_token_length = strlen(yyextra->core_yy_extra.scanbuf + *llocp); + break; + case WITHOUT: + cur_token_length = 7; + break; + case SQL_COMMENT: + case C_COMMENT: + return base_yylex(lvalp, llocp, yyscanner); + default: + return cur_token; + } + + /* + * Identify end+1 of current token. core_yylex() has temporarily stored a + * '\0' here, and will undo that when we call it again. We need to redo + * it to fully revert the lookahead call for error reporting purposes. + */ + yyextra->lookahead_end = yyextra->core_yy_extra.scanbuf + + *llocp + cur_token_length; + Assert(*(yyextra->lookahead_end) == '\0'); + + /* + * Save and restore *llocp around the call. It might look like we could + * avoid this by just passing &lookahead_yylloc to core_yylex(), but that + * does not work because flex actually holds onto the last-passed pointer + * internally, and will use that for error reporting. We need any error + * reports to point to the current token, not the next one. + */ + cur_yylloc = *llocp; + + /* Get next token, saving outputs into lookahead variables */ + next_token = core_yylex(&(yyextra->lookahead_yylval), llocp, yyscanner); + yyextra->lookahead_token = next_token; + yyextra->lookahead_yylloc = *llocp; + + *llocp = cur_yylloc; + + /* Now revert the un-truncation of the current token */ + yyextra->lookahead_hold_char = *(yyextra->lookahead_end); + *(yyextra->lookahead_end) = '\0'; + + yyextra->have_lookahead = true; + + /* Replace cur_token if needed, based on lookahead */ + switch (cur_token) + { + case FORMAT: + /* Replace FORMAT by FORMAT_LA if it's followed by JSON */ + switch (next_token) + { + case JSON: + cur_token = FORMAT_LA; + break; + } + break; + + case NOT: + /* Replace NOT by NOT_LA if it's followed by BETWEEN, IN, etc */ + switch (next_token) + { + case BETWEEN: + case IN_P: + case LIKE: + case ILIKE: + case SIMILAR: + cur_token = NOT_LA; + break; + } + break; + + case NULLS_P: + /* Replace NULLS_P by NULLS_LA if it's followed by FIRST or LAST */ + switch (next_token) + { + case FIRST_P: + case LAST_P: + cur_token = NULLS_LA; + break; + } + break; + + case WITH: + /* Replace WITH by WITH_LA if it's followed by TIME or ORDINALITY */ + switch (next_token) + { + case TIME: + case ORDINALITY: + cur_token = WITH_LA; + break; + } + break; + + case WITHOUT: + /* Replace WITHOUT by WITHOUT_LA if it's followed by TIME */ + switch (next_token) + { + case TIME: + cur_token = WITHOUT_LA; + break; + } + break; + + case UIDENT: + case USCONST: + /* Look ahead for UESCAPE */ + if (next_token == UESCAPE) + { + /* Yup, so get third token, which had better be SCONST */ + const char *escstr; + + /* Again save and restore *llocp */ + cur_yylloc = *llocp; + + /* Un-truncate current token so errors point to third token */ + *(yyextra->lookahead_end) = yyextra->lookahead_hold_char; + + /* Get third token */ + next_token = core_yylex(&(yyextra->lookahead_yylval), + llocp, yyscanner); + + /* If we throw error here, it will point to third token */ + if (next_token != SCONST) + scanner_yyerror("UESCAPE must be followed by a simple string literal", + yyscanner); + + escstr = yyextra->lookahead_yylval.str; + if (strlen(escstr) != 1 || !check_uescapechar(escstr[0])) + scanner_yyerror("invalid Unicode escape character", + yyscanner); + + /* Now restore *llocp; errors will point to first token */ + *llocp = cur_yylloc; + + /* Apply Unicode conversion */ + lvalp->core_yystype.str = + str_udeescape(lvalp->core_yystype.str, + escstr[0], + *llocp, + yyscanner); + + /* + * We don't need to revert the un-truncation of UESCAPE. What + * we do want to do is clear have_lookahead, thereby consuming + * all three tokens. + */ + yyextra->have_lookahead = false; + } + else + { + /* No UESCAPE, so convert using default escape character */ + lvalp->core_yystype.str = + str_udeescape(lvalp->core_yystype.str, + '\\', + *llocp, + yyscanner); + } + + if (cur_token == UIDENT) + { + /* It's an identifier, so truncate as appropriate */ + truncate_identifier(lvalp->core_yystype.str, + strlen(lvalp->core_yystype.str), + true); + cur_token = IDENT; + } + else if (cur_token == USCONST) + { + cur_token = SCONST; + } + break; + } + + return cur_token; +} + +/* convert hex digit (caller should have verified that) to value */ +static unsigned int +hexval(unsigned char c) +{ + if (c >= '0' && c <= '9') + return c - '0'; + if (c >= 'a' && c <= 'f') + return c - 'a' + 0xA; + if (c >= 'A' && c <= 'F') + return c - 'A' + 0xA; + elog(ERROR, "invalid hexadecimal digit"); + return 0; /* not reached */ +} + +/* is Unicode code point acceptable? */ +static void +check_unicode_value(pg_wchar c) +{ + if (!is_valid_unicode_codepoint(c)) + ereport(ERROR, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("invalid Unicode escape value"))); +} + +/* is 'escape' acceptable as Unicode escape character (UESCAPE syntax) ? */ +static bool +check_uescapechar(unsigned char escape) +{ + if (isxdigit(escape) + || escape == '+' + || escape == '\'' + || escape == '"' + || scanner_isspace(escape)) + return false; + else + return true; +} + +/* + * Process Unicode escapes in "str", producing a palloc'd plain string + * + * escape: the escape character to use + * position: start position of U&'' or U&"" string token + * yyscanner: context information needed for error reports + */ +static char * +str_udeescape(const char *str, char escape, + int position, core_yyscan_t yyscanner) +{ + const char *in; + char *new, + *out; + size_t new_len; + pg_wchar pair_first = 0; + ScannerCallbackState scbstate; + + /* + * Guesstimate that result will be no longer than input, but allow enough + * padding for Unicode conversion. + */ + new_len = strlen(str) + MAX_UNICODE_EQUIVALENT_STRING + 1; + new = palloc(new_len); + + in = str; + out = new; + while (*in) + { + /* Enlarge string if needed */ + size_t out_dist = out - new; + + if (out_dist > new_len - (MAX_UNICODE_EQUIVALENT_STRING + 1)) + { + new_len *= 2; + new = repalloc(new, new_len); + out = new + out_dist; + } + + if (in[0] == escape) + { + /* + * Any errors reported while processing this escape sequence will + * have an error cursor pointing at the escape. + */ + setup_scanner_errposition_callback(&scbstate, yyscanner, + in - str + position + 3); /* 3 for U&" */ + if (in[1] == escape) + { + if (pair_first) + goto invalid_pair; + *out++ = escape; + in += 2; + } + else if (isxdigit((unsigned char) in[1]) && + isxdigit((unsigned char) in[2]) && + isxdigit((unsigned char) in[3]) && + isxdigit((unsigned char) in[4])) + { + pg_wchar unicode; + + unicode = (hexval(in[1]) << 12) + + (hexval(in[2]) << 8) + + (hexval(in[3]) << 4) + + hexval(in[4]); + check_unicode_value(unicode); + if (pair_first) + { + if (is_utf16_surrogate_second(unicode)) + { + unicode = surrogate_pair_to_codepoint(pair_first, unicode); + pair_first = 0; + } + else + goto invalid_pair; + } + else if (is_utf16_surrogate_second(unicode)) + goto invalid_pair; + + if (is_utf16_surrogate_first(unicode)) + pair_first = unicode; + else + { + pg_unicode_to_server(unicode, (unsigned char *) out); + out += strlen(out); + } + in += 5; + } + else if (in[1] == '+' && + isxdigit((unsigned char) in[2]) && + isxdigit((unsigned char) in[3]) && + isxdigit((unsigned char) in[4]) && + isxdigit((unsigned char) in[5]) && + isxdigit((unsigned char) in[6]) && + isxdigit((unsigned char) in[7])) + { + pg_wchar unicode; + + unicode = (hexval(in[2]) << 20) + + (hexval(in[3]) << 16) + + (hexval(in[4]) << 12) + + (hexval(in[5]) << 8) + + (hexval(in[6]) << 4) + + hexval(in[7]); + check_unicode_value(unicode); + if (pair_first) + { + if (is_utf16_surrogate_second(unicode)) + { + unicode = surrogate_pair_to_codepoint(pair_first, unicode); + pair_first = 0; + } + else + goto invalid_pair; + } + else if (is_utf16_surrogate_second(unicode)) + goto invalid_pair; + + if (is_utf16_surrogate_first(unicode)) + pair_first = unicode; + else + { + pg_unicode_to_server(unicode, (unsigned char *) out); + out += strlen(out); + } + in += 8; + } + else + ereport(ERROR, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("invalid Unicode escape"), + errhint("Unicode escapes must be \\XXXX or \\+XXXXXX."))); + + cancel_scanner_errposition_callback(&scbstate); + } + else + { + if (pair_first) + goto invalid_pair; + + *out++ = *in++; + } + } + + /* unfinished surrogate pair? */ + if (pair_first) + goto invalid_pair; + + *out = '\0'; + return new; + + /* + * We might get here with the error callback active, or not. Call + * scanner_errposition to make sure an error cursor appears; if the + * callback is active, this is duplicative but harmless. + */ +invalid_pair: + ereport(ERROR, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("invalid Unicode surrogate pair"), + scanner_errposition(in - str + position + 3, /* 3 for U&" */ + yyscanner))); + return NULL; /* keep compiler quiet */ +} diff --git a/crates/lexer-generator/resources/scan.l b/crates/lexer-generator/resources/scan.l index 7e2fa2e..4663d12 100644 --- a/crates/lexer-generator/resources/scan.l +++ b/crates/lexer-generator/resources/scan.l @@ -1,3 +1,166 @@ +%top{ +/*------------------------------------------------------------------------- + * + * scan.l + * lexical scanner for PostgreSQL + * + * NOTE NOTE NOTE: + * + * The rules in this file must be kept in sync with src/fe_utils/psqlscan.l + * and src/interfaces/ecpg/preproc/pgc.l! + * + * The rules are designed so that the scanner never has to backtrack, + * in the sense that there is always a rule that can match the input + * consumed so far (the rule action may internally throw back some input + * with yyless(), however). As explained in the flex manual, this makes + * for a useful speed increase --- several percent faster when measuring + * raw parsing (Flex + Bison). The extra complexity is mostly in the rules + * for handling float numbers and continued string literals. If you change + * the lexical rules, verify that you haven't broken the no-backtrack + * property by running flex with the "-b" option and checking that the + * resulting "lex.backup" file says that no backing up is needed. (As of + * Postgres 9.2, this check is made automatically by the Makefile.) + * + * + * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group + * Portions Copyright (c) 1994, Regents of the University of California + * + * IDENTIFICATION + * src/backend/parser/scan.l + * + *------------------------------------------------------------------------- + */ +#include "postgres.h" + +#include +#include + +#include "common/string.h" +#include "gramparse.h" +#include "nodes/miscnodes.h" +#include "parser/parser.h" /* only needed for GUC variables */ +#include "parser/scansup.h" +#include "port/pg_bitutils.h" +#include "mb/pg_wchar.h" +#include "utils/builtins.h" +} + +%{ + +/* LCOV_EXCL_START */ + +/* Avoid exit() on fatal scanner errors (a bit ugly -- see yy_fatal_error) */ +#undef fprintf +#define fprintf(file, fmt, msg) fprintf_to_ereport(fmt, msg) + +static void +fprintf_to_ereport(const char *fmt, const char *msg) +{ + ereport(ERROR, (errmsg_internal("%s", msg))); +} + +/* + * GUC variables. This is a DIRECT violation of the warning given at the + * head of gram.y, ie flex/bison code must not depend on any GUC variables; + * as such, changing their values can induce very unintuitive behavior. + * But we shall have to live with it until we can remove these variables. + */ +int backslash_quote = BACKSLASH_QUOTE_SAFE_ENCODING; +bool escape_string_warning = true; +bool standard_conforming_strings = true; + +/* + * Constant data exported from this file. This array maps from the + * zero-based keyword numbers returned by ScanKeywordLookup to the + * Bison token numbers needed by gram.y. This is exported because + * callers need to pass it to scanner_init, if they are using the + * standard keyword list ScanKeywords. + */ +#define PG_KEYWORD(kwname, value, category, collabel) value, + +const uint16 ScanKeywordTokens[] = { +#include "parser/kwlist.h" +}; + +#undef PG_KEYWORD + +/* + * Set the type of YYSTYPE. + */ +#define YYSTYPE core_YYSTYPE + +/* + * Set the type of yyextra. All state variables used by the scanner should + * be in yyextra, *not* statically allocated. + */ +#define YY_EXTRA_TYPE core_yy_extra_type * + +/* + * Each call to yylex must set yylloc to the location of the found token + * (expressed as a byte offset from the start of the input text). + * When we parse a token that requires multiple lexer rules to process, + * this should be done in the first such rule, else yylloc will point + * into the middle of the token. + */ +#define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) + +/* + * Advance yylloc by the given number of bytes. + */ +#define ADVANCE_YYLLOC(delta) ( *(yylloc) += (delta) ) + +/* + * Sometimes, we do want yylloc to point into the middle of a token; this is + * useful for instance to throw an error about an escape sequence within a + * string literal. But if we find no error there, we want to revert yylloc + * to the token start, so that that's the location reported to the parser. + * Use PUSH_YYLLOC/POP_YYLLOC to save/restore yylloc around such code. + * (Currently the implied "stack" is just one location, but someday we might + * need to nest these.) + */ +#define PUSH_YYLLOC() (yyextra->save_yylloc = *(yylloc)) +#define POP_YYLLOC() (*(yylloc) = yyextra->save_yylloc) + +#define startlit() ( yyextra->literallen = 0 ) +static void addlit(char *ytext, int yleng, core_yyscan_t yyscanner); +static void addlitchar(unsigned char ychar, core_yyscan_t yyscanner); +static char *litbufdup(core_yyscan_t yyscanner); +static unsigned char unescape_single_char(unsigned char c, core_yyscan_t yyscanner); +static int process_integer_literal(const char *token, YYSTYPE *lval, int base); +static void addunicode(pg_wchar c, yyscan_t yyscanner); + +#define yyerror(msg) scanner_yyerror(msg, yyscanner) + +#define lexer_errposition() scanner_errposition(*(yylloc), yyscanner) + +static void check_string_escape_warning(unsigned char ychar, core_yyscan_t yyscanner); +static void check_escape_warning(core_yyscan_t yyscanner); + +/* + * Work around a bug in flex 2.5.35: it emits a couple of functions that + * it forgets to emit declarations for. Since we use -Wmissing-prototypes, + * this would cause warnings. Providing our own declarations should be + * harmless even when the bug gets fixed. + */ +extern int core_yyget_column(yyscan_t yyscanner); +extern void core_yyset_column(int column_no, yyscan_t yyscanner); + +%} + +%option reentrant +%option bison-bridge +%option bison-locations +%option 8bit +%option never-interactive +%option nodefault +%option noinput +%option nounput +%option noyywrap +%option noyyalloc +%option noyyrealloc +%option noyyfree +%option warn +%option prefix="core_yy" /* * OK, here is a short description of lex/flex rules behavior. @@ -50,16 +213,16 @@ * versions of Postgres failed to recognize -- as a comment if the input * did not end with a newline. * - * XXX perhaps \f (formfeed) should be treated as a newline as well? + * non_newline_space tracks all the other space characters except newlines. * * XXX if you change the set of whitespace characters, fix scanner_isspace() * to agree. */ -space [ \t\n\r\f] -horiz_space [ \t\f] -newline [\n\r] -non_newline [^\n\r] +space [ \t\n\r\f\v] +non_newline_space [ \t\f\v] +newline [\n\r] +non_newline [^\n\r] comment ("--"{non_newline}*) @@ -73,8 +236,8 @@ whitespace ({space}+) */ special_whitespace ({space}+) -horiz_whitespace ({horiz_space}) -whitespace_with_newline ({horiz_whitespace}*{newline}{special_whitespace}*) +non_newline_whitespace ({non_newline_space}) +whitespace_with_newline ({non_newline_whitespace}*{newline}{special_whitespace}*) quote ' /* If we see {quote} then {quotecontinue}, the quoted string continues */ @@ -244,20 +407,35 @@ octfail 0[oO]_? binfail 0[bB]_? numeric (({decinteger}\.{decinteger}?)|(\.{decinteger})) -numericfail {decdigit}+\.\. +numericfail {decinteger}\.\. real ({decinteger}|{numeric})[Ee][-+]?{decinteger} realfail ({decinteger}|{numeric})[Ee][-+] -decinteger_junk {decinteger}{ident_start} -hexinteger_junk {hexinteger}{ident_start} -octinteger_junk {octinteger}{ident_start} -bininteger_junk {bininteger}{ident_start} -numeric_junk {numeric}{ident_start} -real_junk {real}{ident_start} - +/* Positional parameters don't accept underscores. */ param \${decdigit}+ +/* + * An identifier immediately following an integer literal is disallowed because + * in some cases it's ambiguous what is meant: for example, 0x1234 could be + * either a hexinteger or a decinteger "0" and an identifier "x1234". We can + * detect such problems by seeing if integer_junk matches a longer substring + * than any of the XXXinteger patterns (decinteger, hexinteger, octinteger, + * bininteger). One "junk" pattern is sufficient because + * {decinteger}{identifier} will match all the same strings we'd match with + * {hexinteger}{identifier} etc. + * + * Note that the rule for integer_junk must appear after the ones for + * XXXinteger to make this work correctly: 0x1234 will match both hexinteger + * and integer_junk, and we need hexinteger to be chosen in that case. + * + * Also disallow strings matched by numeric_junk, real_junk and param_junk + * for consistency. + */ +integer_junk {decinteger}{identifier} +numeric_junk {numeric}{identifier} +real_junk {real}{identifier} + other . /* @@ -280,11 +458,21 @@ other . } {comment} { + // SET_YYLLOC(); + // return SQL_COMMENT; + self.set_yylloc(); - return Some(TokenKind::SQL_COMMENT); + return Ok(Some(TokenKind::SQL_COMMENT)); } {xcstart} { + // /* Set location in case of syntax error in comment */ + // SET_YYLLOC(); + // yyextra->xcdepth = 0; + // BEGIN(xc); + // /* Put back any characters past slash-star; see above */ + // yyless(2); + /* Set location in case of syntax error in comment */ self.set_yylloc(); self.xcdepth = 0; @@ -295,17 +483,30 @@ other . { {xcstart} { + // (yyextra->xcdepth)++; + // /* Put back any characters past slash-star; see above */ + // yyless(2); + self.xcdepth += 1; /* Put back any characters past slash-star; see above */ self.yyless(2); } {xcstop} { + // if (yyextra->xcdepth <= 0) + // { + // BEGIN(INITIAL); + // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; + // return C_COMMENT; + // } + // else + // (yyextra->xcdepth)--; + if self.xcdepth <= 0 { self.begin(State::INITIAL); self.set_yyllocend(); - return Some(TokenKind::C_COMMENT); + return Ok(Some(TokenKind::C_COMMENT)); } else { self.xcdepth -= 1; @@ -325,11 +526,22 @@ other . } <> { - yyerror("unterminated /* comment"); + yyerror!("unterminated /* comment"); } } /* */ {xbstart} { + // /* Binary bit type. + // * At some point we should simply pass the string + // * forward to the parser and label it there. + // * In the meantime, place a leading "b" on the string + // * to mark it for the input routine as a binary string. + // */ + // SET_YYLLOC(); + // BEGIN(xb); + // startlit(); + // addlitchar('b', yyscanner); + /* Binary bit type. * At some point we should simply pass the string * forward to the parser and label it there. @@ -339,17 +551,28 @@ other . self.set_yylloc(); self.begin(State::xb); self.literal.clear(); - // self.literal += 'b'; self.addlitchar('b'); } {xhinside} | {xbinside} { // addlit(yytext, yyleng, yyscanner); + self.addlit(self.yyleng); } -<> { yyerror("unterminated bit string literal"); } +<> { yyerror!("unterminated bit string literal"); } {xhstart} { + // /* Hexadecimal bit type. + // * At some point we should simply pass the string + // * forward to the parser and label it there. + // * In the meantime, place a leading "x" on the string + // * to mark it for the input routine as a hex string. + // */ + // SET_YYLLOC(); + // BEGIN(xh); + // startlit(); + // addlitchar('x', yyscanner); + /* Hexadecimal bit type. * At some point we should simply pass the string * forward to the parser and label it there. @@ -359,28 +582,26 @@ other . self.set_yylloc(); self.begin(State::xh); self.literal.clear(); - // self.literal += 'x'; self.addlitchar('x'); } -<> { yyerror("unterminated hexadecimal string literal"); } +<> { yyerror!("unterminated hexadecimal string literal"); } {xnstart} { - /* National character. - * We will pass this along as a normal character string, - * but preceded with an internally-generated "NCHAR". - */ - self.set_yylloc(); - self.yyless(1); /* eat only 'n' this time */ - - // kwnumは文字列のキーワード位置のオフセット + // /* National character. + // * We will pass this along as a normal character string, + // * but preceded with an internally-generated "NCHAR". + // */ + // int kwnum; + // + // SET_YYLLOC(); + // yyless(1); /* eat only 'n' this time */ + // // kwnum = ScanKeywordLookup("nchar", // yyextra->keywordlist); // if (kwnum >= 0) // { - // キーワードの文字列をセット // yylval->keyword = GetScanKeyword(kwnum, // yyextra->keywordlist); - // キーワードのIDを返す。IDはbison grammarのtoken typeの数値で返す // return yyextra->keyword_tokens[kwnum]; // } // else @@ -391,21 +612,34 @@ other . // return IDENT; // } + self.set_yylloc(); + self.yyless(1); /* eat only 'n' this time */ + if let Some((kw, kw_token)) = self.get_keyword("nchar") { self.yylval = Yylval::Keyword(kw); - return Some(TokenKind::KEYWORD(kw_token)); + return Ok(Some(TokenKind::KEYWORD(kw_token))); } else { /* If NCHAR isn't a keyword, just return "n" */ self.yylval = Yylval::Str("n".to_string()); self.set_yyllocend(); - return Some(TokenKind::IDENT); + return Ok(Some(TokenKind::IDENT)); } } {xqstart} { - self.set_yylloc(); + // yyextra->warn_on_first_escape = true; + // yyextra->saw_non_ascii = false; + // SET_YYLLOC(); // if (yyextra->standard_conforming_strings) - if true { + // BEGIN(xq); + // else + // BEGIN(xe); + // startlit(); + + self.warn_on_first_escape = true; + self.saw_non_ascii = false; + self.set_yylloc(); + if STANDARD_CONFORMING_STRINGS { self.begin(State::xq); } else { self.begin(State::xe); @@ -413,25 +647,53 @@ other . self.literal.clear(); } {xestart} { + // yyextra->warn_on_first_escape = false; + // yyextra->saw_non_ascii = false; + // SET_YYLLOC(); + // BEGIN(xe); + // startlit(); + + self.warn_on_first_escape = false; + self.saw_non_ascii = false; self.set_yylloc(); self.begin(State::xe); self.literal.clear(); } {xusstart} { - self.set_yylloc(); + // SET_YYLLOC(); // if (!yyextra->standard_conforming_strings) - if false { - // ereport(ERROR, - // (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - // errmsg("unsafe use of string constant with Unicode escapes"), - // errdetail("String constants with Unicode escapes cannot be used when standard_conforming_strings is off."), - // lexer_errposition())); + // ereport(ERROR, + // (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + // errmsg("unsafe use of string constant with Unicode escapes"), + // errdetail("String constants with Unicode escapes cannot be used when \"standard_conforming_strings\" is off."), + // lexer_errposition())); + // BEGIN(xus); + // startlit(); + + self.set_yylloc(); + if !STANDARD_CONFORMING_STRINGS { + ereport!(self, ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("unsafe use of string constant with Unicode escapes"), + errdetail("String constants with Unicode escapes cannot be used when standard_conforming_strings is off."), + self.lexer_errposition())); } self.begin(State::xus); self.literal.clear(); } {quote} { + // /* + // * When we are scanning a quoted string and see an end + // * quote, we must look ahead for a possible continuation. + // * If we don't see one, we know the end quote was in fact + // * the end of the string. To reduce the lexer table size, + // * we use a single "xqs" state to do the lookahead for all + // * types of strings. + // */ + // yyextra->state_before_str_stop = YYSTATE; + // BEGIN(xqs); + /* * When we are scanning a quoted string and see an end * quote, we must look ahead for a possible continuation. @@ -444,6 +706,13 @@ other . self.begin(State::xqs); } {quotecontinue} { + // /* + // * Found a quote continuation, so return to the in-quote + // * state and continue scanning the literal. Nothing is + // * added to the literal's contents. + // */ + // BEGIN(yyextra->state_before_str_stop); + /* * Found a quote continuation, so return to the in-quote * state and continue scanning the literal. Nothing is @@ -454,14 +723,14 @@ other . {quotecontinuefail} | {other} | <> { - /* - * Failed to see a quote continuation. Throw back - * everything after the end quote, and handle the string - * according to the state we were in previously. - */ - self.yyless(0); - self.begin(State::INITIAL); - + // /* + // * Failed to see a quote continuation. Throw back + // * everything after the end quote, and handle the string + // * according to the state we were in previously. + // */ + // yyless(0); + // BEGIN(INITIAL); + // // switch (yyextra->state_before_str_stop) // { // case xb: @@ -493,216 +762,306 @@ other . // yyerror("unhandled previous state in xqs"); // } + /* + * Failed to see a quote continuation. Throw back + * everything after the end quote, and handle the string + * according to the state we were in previously. + */ + self.yyless(0); + self.begin(State::INITIAL); + match self.state_before_str_stop { State::xb => { self.yylval = Yylval::Str(self.literal.clone()); self.set_yyllocend(); - return Some(TokenKind::BCONST); + return Ok(Some(TokenKind::BCONST)); } State::xh => { self.yylval = Yylval::Str(self.literal.clone()); self.set_yyllocend(); - return Some(TokenKind::XCONST); + return Ok(Some(TokenKind::XCONST)); } State::xq | State::xe => { /* * Check that the data remains valid, if it might * have been made invalid by unescaping any chars. */ + // TODO verify // if (yyextra->saw_non_ascii) // pg_verifymbstr(yyextra->literalbuf, // yyextra->literallen, // false); self.yylval = Yylval::Str(self.literal.clone()); self.set_yyllocend(); - return Some(TokenKind::SCONST); + return Ok(Some(TokenKind::SCONST)); } State::xus => { self.yylval = Yylval::Str(self.literal.clone()); self.set_yyllocend(); - return Some(TokenKind::USCONST); + return Ok(Some(TokenKind::USCONST)); } - _ => yyerror("unhandled previous state in xqs"), + _ => yyerror!("unhandled previous state in xqs"), } } {xqdouble} { // self.literal += '\''; + self.addlitchar('\''); } {xqinside} { // addlit(yytext, yyleng, yyscanner); - // self.literal += self.input[self.index_bytes..self.index_bytes + self.yyleng]; + self.addlit(self.yyleng); } {xeinside} { // addlit(yytext, yyleng, yyscanner); - // self.literal += self.input[self.index_bytes..self.index_bytes + self.yyleng]; + self.addlit(self.yyleng); } {xeunicode} { // pg_wchar c = strtoul(yytext + 2, NULL, 16); - // let c = u32::from_str_radix(&self.input[self.index_bytes+2..self.index_bytes + self.yyleng], 16).unwrap(); - // let c = char::from_u32(c).unwrap(); - - /* - * For consistency with other productions, issue any - * escape warning with cursor pointing to start of string. - * We might want to change that, someday. - */ + // + // /* + // * For consistency with other productions, issue any + // * escape warning with cursor pointing to start of string. + // * We might want to change that, someday. + // */ // check_escape_warning(yyscanner); - - /* Remember start of overall string token ... */ + // + // /* Remember start of overall string token ... */ // PUSH_YYLLOC(); - // self.push_yylloc(); - /* ... and set the error cursor to point at this esc seq */ + // /* ... and set the error cursor to point at this esc seq */ // SET_YYLLOC(); - // self.set_yylloc(); - - // TODO - // if is_utf16_surrogate_first(c) { - // // yyextra->utf16_first_part = c; - // self.utf16_first_part = c; - // self.begin(State::xeu); - // } else if (is_utf16_surrogate_second(c)) { - // yyerror("invalid Unicode surrogate pair"); - // } else { - // // addunicode(c, yyscanner); - // self.addunicode(c); + // + // if (is_utf16_surrogate_first(c)) + // { + // yyextra->utf16_first_part = c; + // BEGIN(xeu); // } - panic!(); - - /* Restore yylloc to be start of string token */ + // else if (is_utf16_surrogate_second(c)) + // yyerror("invalid Unicode surrogate pair"); + // else + // addunicode(c, yyscanner); + // + // /* Restore yylloc to be start of string token */ // POP_YYLLOC(); - // self.pop_yylloc(); + + let c = u32::from_str_radix( + &self.input[self.index_bytes + 2..self.index_bytes + self.yyleng], + 16, + ) + .unwrap(); + + self.push_yylloc(); + self.set_yylloc(); + + if is_utf16_surrogate_first(c) { + self.utf16_first_part = c; + self.begin(State::xeu); + } else if is_utf16_surrogate_second(c) { + yyerror!("invalid Unicode surrogate pair"); + } else { + self.addunicode(char::from_u32(c as u32).unwrap())?; + } + + self.pop_yylloc(); } {xeunicode} { // pg_wchar c = strtoul(yytext + 2, NULL, 16); - // let c = u32::from_str_radix(&self.input[self.index_bytes+2..self.index_bytes + self.yyleng], 16).unwrap(); - // let c = char::from_u32(c).unwrap(); - - /* Remember start of overall string token ... */ + // + // /* Remember start of overall string token ... */ // PUSH_YYLLOC(); - // self.push_yylloc(); - /* ... and set the error cursor to point at this esc seq */ - // self.set_yylloc(); - - // TODO - // if !is_utf16_surrogate_second(c) { + // /* ... and set the error cursor to point at this esc seq */ + // SET_YYLLOC(); + // + // if (!is_utf16_surrogate_second(c)) // yyerror("invalid Unicode surrogate pair"); - // } + // + // c = surrogate_pair_to_codepoint(yyextra->utf16_first_part, c); + // + // addunicode(c, yyscanner); + // + // /* Restore yylloc to be start of string token */ + // POP_YYLLOC(); + // + // BEGIN(xe); - // // c = surrogate_pair_to_codepoint(yyextra->utf16_first_part, c); - // let c = surrogate_pair_to_codepoint(self.utf16_first_part, c); + let c = u32::from_str_radix( + &self.input[self.index_bytes + 2..self.index_bytes + self.yyleng], + 16, + ) + .unwrap(); - // // addunicode(c, yyscanner); - // self.addunicode(c); - panic!(); + self.push_yylloc(); + self.set_yylloc(); - /* Restore yylloc to be start of string token */ - // POP_YYLLOC(); - // self.pop_yylloc(); + if !is_utf16_surrogate_second(c) { + yyerror!("invalid Unicode surrogate pair"); + } - // self.begin(State::xe); + let c = surrogate_pair_to_codepoint(self.utf16_first_part, c); + self.addunicode(c)?; + + self.pop_yylloc(); + self.begin(State::xe); } . | \n | <> { + // /* Set the error cursor to point at missing esc seq */ + // SET_YYLLOC(); + // yyerror("invalid Unicode surrogate pair"); + /* Set the error cursor to point at missing esc seq */ self.set_yylloc(); - yyerror("invalid Unicode surrogate pair"); + yyerror!("invalid Unicode surrogate pair"); } {xeunicodefail} { - /* Set the error cursor to point at malformed esc seq */ - self.set_yylloc(); - + // /* Set the error cursor to point at malformed esc seq */ + // SET_YYLLOC(); // ereport(ERROR, // (errcode(ERRCODE_INVALID_ESCAPE_SEQUENCE), // errmsg("invalid Unicode escape"), // errhint("Unicode escapes must be \\uXXXX or \\UXXXXXXXX."), // lexer_errposition())); - panic!(); + + self.set_yylloc(); + ereport!(self, ERROR, + (errcode(ERRCODE_INVALID_ESCAPE_SEQUENCE), + errmsg("invalid Unicode escape"), + errhint("Unicode escapes must be \\uXXXX or \\UXXXXXXXX."), + self.lexer_errposition())); } {xeescape} { - /* - if (yytext[1] == '\'') - { - if (self.backslash_quote == BACKSLASH_QUOTE_OFF || - (self.backslash_quote == BACKSLASH_QUOTE_SAFE_ENCODING && - PG_ENCODING_IS_CLIENT_ONLY(pg_get_client_encoding()))) - // ereport(ERROR, - // (errcode(ERRCODE_NONSTANDARD_USE_OF_ESCAPE_CHARACTER), - // errmsg("unsafe use of \\' in a string literal"), - // errhint("Use '' to write quotes in strings. \\' is insecure in client-only encodings."), - // lexer_errposition())); - } - check_string_escape_warning(yytext[1], yyscanner); - */ + // if (yytext[1] == '\'') + // { + // if (yyextra->backslash_quote == BACKSLASH_QUOTE_OFF || + // (yyextra->backslash_quote == BACKSLASH_QUOTE_SAFE_ENCODING && + // PG_ENCODING_IS_CLIENT_ONLY(pg_get_client_encoding()))) + // ereport(ERROR, + // (errcode(ERRCODE_NONSTANDARD_USE_OF_ESCAPE_CHARACTER), + // errmsg("unsafe use of \\' in a string literal"), + // errhint("Use '' to write quotes in strings. \\' is insecure in client-only encodings."), + // lexer_errposition())); + // } + // check_string_escape_warning(yytext[1], yyscanner); // addlitchar(unescape_single_char(yytext[1], yyscanner), // yyscanner); - // let c = unescape_single_char(self.input[self.index_bytes + 1]); - // self.addlitchar(unescape_single_char(c)); - // TODO - panic!(); + + let c = self.yytext().chars().nth(1).unwrap(); + // if c == '\'' { + // if self.backslash_quote == BACKSLASH_QUOTE_OFF || + // (self.backslash_quote == BACKSLASH_QUOTE_SAFE_ENCODING && + // PG_ENCODING_IS_CLIENT_ONLY(pg_get_client_encoding())) { + // ereport!(self, ERROR, + // (errcode(ERRCODE_NONSTANDARD_USE_OF_ESCAPE_CHARACTER), + // errmsg("unsafe use of \\' in a string literal"), + // errhint("Use '' to write quotes in strings. \\' is insecure in client-only encodings."), + // self.lexer_errposition())); + // } + // } + + // self.check_string_escape_warning(c); + let c = self.unescape_single_char(c); + self.addlitchar(c); } {xeoctesc} { // unsigned char c = strtoul(yytext + 1, NULL, 8); - let c = u32::from_str_radix(&self.input[self.index_bytes+1..self.index_bytes + self.yyleng], 8).unwrap(); - let c = char::from_u32(c).unwrap(); - + // // check_escape_warning(yyscanner); // addlitchar(c, yyscanner); - self.addlitchar(c); // if (c == '\0' || IS_HIGHBIT_SET(c)) // yyextra->saw_non_ascii = true; + + let c = u32::from_str_radix(&self.input[self.index_bytes+1..self.index_bytes + self.yyleng], 8).unwrap(); + let c = char::from_u32(c).unwrap(); + + // self.check_escape_warning(); + self.addlitchar(c); + if c == '\0' || is_highbit_set(c) != 0 { + self.saw_non_ascii = true; + } } {xehexesc} { // unsigned char c = strtoul(yytext + 2, NULL, 16); - let c = u32::from_str_radix(&self.input[self.index_bytes+1..self.index_bytes + self.yyleng], 16).unwrap(); - let c = char::from_u32(c).unwrap(); - + // // check_escape_warning(yyscanner); // addlitchar(c, yyscanner); - self.addlitchar(c); // if (c == '\0' || IS_HIGHBIT_SET(c)) // yyextra->saw_non_ascii = true; + + let c = u32::from_str_radix(&self.input[self.index_bytes+1..self.index_bytes + self.yyleng], 16).unwrap(); + let c = char::from_u32(c).unwrap(); + + // self.check_escape_warning(); + self.addlitchar(c); + if c == '\0' || is_highbit_set(c) != 0 { + self.saw_non_ascii = true; + } } . { - /* This is only needed for \ just before EOF */ + // /* This is only needed for \ just before EOF */ // addlitchar(yytext[0], yyscanner); + + /* This is only needed for \ just before EOF */ let c = self.input[self.index_bytes..].chars().next().unwrap(); self.addlitchar(c); } -<> { yyerror("unterminated quoted string"); } +<> { yyerror!("unterminated quoted string"); } {dolqdelim} { + // SET_YYLLOC(); + // yyextra->dolqstart = pstrdup(yytext); + // BEGIN(xdolq); + // startlit(); + self.set_yylloc(); self.dolqstart = self.yytext(); - // yyextra->dolqstart = pstrdup(yytext); self.begin(State::xdolq); self.literal.clear(); } {dolqfailed} { + // SET_YYLLOC(); + // /* throw back all but the initial "$" */ + // yyless(1); + // /* and treat it as {other} */ + // return yytext[0]; + self.set_yylloc(); /* throw back all but the initial "$" */ self.yyless(1); /* and treat it as {other} */ - // これ何だろう - return Some(TokenKind::RAW(self.yytext())); + return Ok(Some(TokenKind::RAW(self.yytext()))); } {dolqdelim} { // if (strcmp(yytext, yyextra->dolqstart) == 0) + // { + // pfree(yyextra->dolqstart); + // yyextra->dolqstart = NULL; + // BEGIN(INITIAL); + // yylval->str = litbufdup(yyscanner); + // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; + // return SCONST; + // } + // else + // { + // /* + // * When we fail to match $...$ to dolqstart, transfer + // * the $... part to the output, but put back the final + // * $ for rescanning. Consider $delim$...$junk$delim$ + // */ + // addlit(yytext, yyleng - 1, yyscanner); + // yyless(yyleng - 1); + // } + if self.yytext() == self.dolqstart { - // pfree(yyextra->dolqstart); - // yyextra->dolqstart = NULL; self.dolqstart = "".to_string(); self.begin(State::INITIAL); - // yylval->str = litbufdup(yyscanner); self.yylval = Yylval::Str(self.literal.clone()); - // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; self.set_yyllocend(); - return Some(TokenKind::SCONST); + return Ok(Some(TokenKind::SCONST)); } else { @@ -711,160 +1070,212 @@ other . * the $... part to the output, but put back the final * $ for rescanning. Consider $delim$...$junk$delim$ */ - // addlit(yytext, yyleng - 1, yyscanner); self.addlit(self.yyleng - 1); self.yyless(self.yyleng - 1); } } {dolqinside} { // addlit(yytext, yyleng, yyscanner); + self.addlit(self.yyleng); } {dolqfailed} { // addlit(yytext, yyleng, yyscanner); + self.addlit(self.yyleng); } . { - /* This is only needed for $ inside the quoted text */ + // /* This is only needed for $ inside the quoted text */ // addlitchar(yytext[0], yyscanner); + let c = self.yytext().chars().next().unwrap(); self.addlitchar(c); } -<> { yyerror("unterminated dollar-quoted string"); } +<> { yyerror!("unterminated dollar-quoted string"); } {xdstart} { + // SET_YYLLOC(); + // BEGIN(xd); + // startlit(); + self.set_yylloc(); self.begin(State::xd); self.literal.clear(); } {xuistart} { + // SET_YYLLOC(); + // BEGIN(xui); + // startlit(); + self.set_yylloc(); self.begin(State::xui); self.literal.clear(); } {xdstop} { // char *ident; + // + // BEGIN(INITIAL); + // if (yyextra->literallen == 0) + // yyerror("zero-length delimited identifier"); + // ident = litbufdup(yyscanner); + // if (yyextra->literallen >= NAMEDATALEN) + // truncate_identifier(ident, yyextra->literallen, true); + // yylval->str = ident; + // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; + // return IDENT; self.begin(State::INITIAL); - // if (yyextra->literallen == 0) if self.literal.len() == 0 { - yyerror("zero-length delimited identifier"); + yyerror!("zero-length delimited identifier"); } - // ident = litbufdup(yyscanner); let ident = self.literal.clone(); - // if (yyextra->literallen >= NAMEDATALEN) if self.literal.len() >= NAMEDATALEN { - // truncate_identifier(ident, yyextra->literallen, true); - // truncate_identifier(&mut ident, self.literal.len(), true); - panic!(); + // TODO + // panic!(); } - // yylval->str = ident; self.yylval = Yylval::Str(ident); - // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; self.set_yyllocend(); - return Some(TokenKind::IDENT); + return Ok(Some(TokenKind::IDENT)); } {dquote} { + // BEGIN(INITIAL); + // if (yyextra->literallen == 0) + // yyerror("zero-length delimited identifier"); + // /* can't truncate till after we de-escape the ident */ + // yylval->str = litbufdup(yyscanner); + // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; + // return UIDENT; + self.begin(State::INITIAL); if self.literal.len() == 0 { - yyerror("zero-length delimited identifier"); + yyerror!("zero-length delimited identifier"); } /* can't truncate till after we de-escape the ident */ - // yylval->str = litbufdup(yyscanner); self.yylval = Yylval::Str(self.yytext()); - // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; self.set_yyllocend(); - return Some(TokenKind::UIDENT); + return Ok(Some(TokenKind::UIDENT)); } {xddouble} { // addlitchar('"', yyscanner); + self.addlitchar('"'); } {xdinside} { // addlit(yytext, yyleng, yyscanner); + self.addlit(self.yyleng); } -<> { yyerror("unterminated quoted identifier"); } +<> { yyerror!("unterminated quoted identifier"); } {xufailed} { // char *ident; + // + // SET_YYLLOC(); + // /* throw back all but the initial u/U */ + // yyless(1); + // /* and treat it as {identifier} */ + // ident = downcase_truncate_identifier(yytext, yyleng, true); + // yylval->str = ident; + // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; + // return IDENT; self.set_yylloc(); - /* throw back all but the initial u/U */ self.yyless(1); - /* and treat it as {identifier} */ - // ident = downcase_truncate_identifier(yytext, yyleng, true); - // let ident = self.downcase_truncate_identifier(self.yyleng, true); - // // yylval->str = ident; - // self.yylval = Yylval::Str(ident); - // // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; - // self.set_yyllocend(); - // return Some(TokenKind::IDENT); - panic!(); + // FIXME + // let ident = downcase_truncate_identifier(yytext, yyleng, true); + let ident = self.yytext(); + self.yylval = Yylval::Str(ident); + self.set_yyllocend(); + return Ok(Some(TokenKind::IDENT)); } {typecast} { + // SET_YYLLOC(); + // return TYPECAST; + self.set_yylloc(); - return Some(TokenKind::TYPECAST); + return Ok(Some(TokenKind::TYPECAST)); } {dot_dot} { + // SET_YYLLOC(); + // return DOT_DOT; + self.set_yylloc(); - return Some(TokenKind::DOT_DOT); + return Ok(Some(TokenKind::DOT_DOT)); } {colon_equals} { + // SET_YYLLOC(); + // return COLON_EQUALS; + self.set_yylloc(); - return Some(TokenKind::COLON_EQUALS); + return Ok(Some(TokenKind::COLON_EQUALS)); } {equals_greater} { + // SET_YYLLOC(); + // return EQUALS_GREATER; + self.set_yylloc(); - return Some(TokenKind::EQUALS_GREATER); + return Ok(Some(TokenKind::EQUALS_GREATER)); } {less_equals} { + // SET_YYLLOC(); + // return LESS_EQUALS; + self.set_yylloc(); - return Some(TokenKind::LESS_EQUALS); + return Ok(Some(TokenKind::LESS_EQUALS)); } {greater_equals} { + // SET_YYLLOC(); + // return GREATER_EQUALS; + self.set_yylloc(); - return Some(TokenKind::GREATER_EQUALS); + return Ok(Some(TokenKind::GREATER_EQUALS)); } {less_greater} { + // /* We accept both "<>" and "!=" as meaning NOT_EQUALS */ + // SET_YYLLOC(); + // return NOT_EQUALS; + /* We accept both "<>" and "!=" as meaning NOT_EQUALS */ self.set_yylloc(); - return Some(TokenKind::NOT_EQUALS); + return Ok(Some(TokenKind::NOT_EQUALS)); } {not_equals} { + // /* We accept both "<>" and "!=" as meaning NOT_EQUALS */ + // SET_YYLLOC(); + // return NOT_EQUALS; + /* We accept both "<>" and "!=" as meaning NOT_EQUALS */ self.set_yylloc(); - return Some(TokenKind::NOT_EQUALS); + return Ok(Some(TokenKind::NOT_EQUALS)); } {self} { + // SET_YYLLOC(); + // return yytext[0]; + self.set_yylloc(); - return Some(TokenKind::RAW(self.yytext()[0..1].to_string())); + return Ok(Some(TokenKind::RAW(self.yytext()[0..1].to_string()))); } {operator} { - /* - * Check for embedded slash-star or dash-dash; those - * are comment starts, so operator must stop there. - * Note that slash-star or dash-dash at the first - * character will match a prior rule, not this one. - */ + // /* + // * Check for embedded slash-star or dash-dash; those + // * are comment starts, so operator must stop there. + // * Note that slash-star or dash-dash at the first + // * character will match a prior rule, not this one. + // */ // int nchars = yyleng; - let mut nchars = self.yyleng; // char *slashstar = strstr(yytext, "/*"); // char *dashdash = strstr(yytext, "--"); - let yytext = self.yytext(); - let mut slashstar = yytext.find("/*"); - let dashdash = yytext.find("--"); - + // // if (slashstar && dashdash) // { // /* if both appear, take the first one */ @@ -875,6 +1286,102 @@ other . // slashstar = dashdash; // if (slashstar) // nchars = slashstar - yytext; + // + // /* + // * For SQL compatibility, '+' and '-' cannot be the + // * last char of a multi-char operator unless the operator + // * contains chars that are not in SQL operators. + // * The idea is to lex '=-' as two operators, but not + // * to forbid operator names like '?-' that could not be + // * sequences of SQL operators. + // */ + // if (nchars > 1 && + // (yytext[nchars - 1] == '+' || + // yytext[nchars - 1] == '-')) + // { + // int ic; + // + // for (ic = nchars - 2; ic >= 0; ic--) + // { + // char c = yytext[ic]; + // if (c == '~' || c == '!' || c == '@' || + // c == '#' || c == '^' || c == '&' || + // c == '|' || c == '`' || c == '?' || + // c == '%') + // break; + // } + // if (ic < 0) + // { + // /* + // * didn't find a qualifying character, so remove + // * all trailing [+-] + // */ + // do { + // nchars--; + // } while (nchars > 1 && + // (yytext[nchars - 1] == '+' || + // yytext[nchars - 1] == '-')); + // } + // } + // + // SET_YYLLOC(); + // + // if (nchars < yyleng) + // { + // /* Strip the unwanted chars from the token */ + // yyless(nchars); + // /* + // * If what we have left is only one char, and it's + // * one of the characters matching "self", then + // * return it as a character token the same way + // * that the "self" rule would have. + // */ + // if (nchars == 1 && + // strchr(",()[].;:+-*/%^<>=", yytext[0])) + // return yytext[0]; + // /* + // * Likewise, if what we have left is two chars, and + // * those match the tokens ">=", "<=", "=>", "<>" or + // * "!=", then we must return the appropriate token + // * rather than the generic Op. + // */ + // if (nchars == 2) + // { + // if (yytext[0] == '=' && yytext[1] == '>') + // return EQUALS_GREATER; + // if (yytext[0] == '>' && yytext[1] == '=') + // return GREATER_EQUALS; + // if (yytext[0] == '<' && yytext[1] == '=') + // return LESS_EQUALS; + // if (yytext[0] == '<' && yytext[1] == '>') + // return NOT_EQUALS; + // if (yytext[0] == '!' && yytext[1] == '=') + // return NOT_EQUALS; + // } + // } + // + // /* + // * Complain if operator is too long. Unlike the case + // * for identifiers, we make this an error not a notice- + // * and-truncate, because the odds are we are looking at + // * a syntactic mistake anyway. + // */ + // if (nchars >= NAMEDATALEN) + // yyerror("operator too long"); + // + // yylval->str = pstrdup(yytext); + // return Op; + + /* + * Check for embedded slash-star or dash-dash; those + * are comment starts, so operator must stop there. + * Note that slash-star or dash-dash at the first + * character will match a prior rule, not this one. + */ + let mut nchars = self.yyleng; + let yytext = self.yytext(); + let mut slashstar = yytext.find("/*"); + let dashdash = yytext.find("--"); let dashdash_first = match (&slashstar, &dashdash) { (Some(slashstar_index), Some(dashdash_index)) if slashstar_index > dashdash_index => true, @@ -898,35 +1405,6 @@ other . * to forbid operator names like '?-' that could not be * sequences of SQL operators. */ - // if (nchars > 1 && - // (yytext[nchars - 1] == '+' || - // yytext[nchars - 1] == '-')) - // { - // int ic; - // - // for (ic = nchars - 2; ic >= 0; ic--) - // { - // char c = yytext[ic]; - // if (c == '~' || c == '!' || c == '@' || - // c == '#' || c == '^' || c == '&' || - // c == '|' || c == '`' || c == '?' || - // c == '%') - // break; - // } - // if (ic < 0) - // { - // /* - // * didn't find a qualifying character, so remove - // * all trailing [+-] - // */ - // do { - // nchars--; - // } while (nchars > 1 && - // (yytext[nchars - 1] == '+' || - // yytext[nchars - 1] == '-')); - // } - // } - if nchars > 1 && (get_char_by_byte_pos(&yytext, nchars - 1) == '+' || get_char_by_byte_pos(&yytext, nchars - 1) == '-') @@ -937,10 +1415,9 @@ other . loop { nchars -= 1; - if !(nchars > 1 - && (get_char_by_byte_pos(&yytext, nchars - 1) == '+' - || get_char_by_byte_pos(&yytext, nchars - 1) == '-')) - { + if !(nchars > 1 && + (get_char_by_byte_pos(&yytext, nchars - 1) == '+' || + get_char_by_byte_pos(&yytext, nchars - 1) == '-')) { break; } } @@ -949,40 +1426,6 @@ other . self.set_yylloc(); - // if (nchars < yyleng) - // { - // /* Strip the unwanted chars from the token */ - // yyless(nchars); - // /* - // * If what we have left is only one char, and it's - // * one of the characters matching "self", then - // * return it as a character token the same way - // * that the "self" rule would have. - // */ - // if (nchars == 1 && - // strchr(",()[].;:+-*/%^<>=", yytext[0])) - // return yytext[0]; - // /* - // * Likewise, if what we have left is two chars, and - // * those match the tokens ">=", "<=", "=>", "<>" or - // * "!=", then we must return the appropriate token - // * rather than the generic Op. - // */ - // if (nchars == 2) - // { - // if (yytext[0] == '=' && yytext[1] == '>') - // return EQUALS_GREATER; - // if (yytext[0] == '>' && yytext[1] == '=') - // return GREATER_EQUALS; - // if (yytext[0] == '<' && yytext[1] == '=') - // return LESS_EQUALS; - // if (yytext[0] == '<' && yytext[1] == '>') - // return NOT_EQUALS; - // if (yytext[0] == '!' && yytext[1] == '=') - // return NOT_EQUALS; - // } - // } - if nchars < self.yyleng { /* Strip the unwanted chars from the token */ self.yyless(nchars); @@ -993,7 +1436,7 @@ other . * that the "self" rule would have. */ if nchars == 1 && ",()[].;:+-*/%^<>=".find(get_char_by_byte_pos(&yytext, 0)).is_some() { - return Some(TokenKind::RAW(yytext[0..1].to_string())); + return Ok(Some(TokenKind::RAW(yytext[0..1].to_string()))); } /* * Likewise, if what we have left is two chars, and @@ -1003,19 +1446,19 @@ other . */ if nchars == 2 { if &yytext[0..2] == "=>" { - return Some(TokenKind::EQUALS_GREATER); + return Ok(Some(TokenKind::EQUALS_GREATER)); } if &yytext[0..2] == ">=" { - return Some(TokenKind::GREATER_EQUALS); + return Ok(Some(TokenKind::GREATER_EQUALS)); } if &yytext[0..2] == "<=" { - return Some(TokenKind::LESS_EQUALS); + return Ok(Some(TokenKind::LESS_EQUALS)); } if &yytext[0..2] == "<>" { - return Some(TokenKind::NOT_EQUALS); + return Ok(Some(TokenKind::NOT_EQUALS)); } if &yytext[0..2] == "!=" { - return Some(TokenKind::NOT_EQUALS); + return Ok(Some(TokenKind::NOT_EQUALS)); } } } @@ -1027,150 +1470,393 @@ other . * a syntactic mistake anyway. */ if nchars >= NAMEDATALEN { - yyerror("operator too long"); + yyerror!("operator too long"); } - // yylval->str = pstrdup(yytext); - // return Op; self.yylval = Yylval::Str(yytext); - return Some(TokenKind::Op); + return Ok(Some(TokenKind::Op)); } {param} { + // SET_YYLLOC(); + // yylval->ival = atol(yytext + 1); + // return PARAM; + self.set_yylloc(); self.yylval = Yylval::I(i32::from_str_radix(&self.yytext()[1..], 10).unwrap()); - return Some(TokenKind::PARAM); + return Ok(Some(TokenKind::PARAM)); } {decinteger} { + // SET_YYLLOC(); + // return process_integer_literal(yytext, yylval, 10); + self.set_yylloc(); - // return self.process_integer_literal(yytext, yylval, 10); - return self.process_integer_literal(10); + return Ok(self.process_integer_literal(10)); } {hexinteger} { + // SET_YYLLOC(); + // return process_integer_literal(yytext, yylval, 16); + self.set_yylloc(); - // return self.process_integer_literal(yytext, yylval, 16); - return self.process_integer_literal(16); + return Ok(self.process_integer_literal(16)); } {octinteger} { - self.set_yylloc(); + // SET_YYLLOC(); // return process_integer_literal(yytext, yylval, 8); - return self.process_integer_literal(8); + + self.set_yylloc(); + return Ok(self.process_integer_literal(8)); } {bininteger} { - self.set_yylloc(); + // SET_YYLLOC(); // return process_integer_literal(yytext, yylval, 2); - return self.process_integer_literal(2); + + self.set_yylloc(); + return Ok(self.process_integer_literal(2)); } {hexfail} { + // SET_YYLLOC(); + // yyerror("invalid hexadecimal integer"); + self.set_yylloc(); - yyerror("invalid hexadecimal integer"); + yyerror!("invalid hexadecimal integer"); } {octfail} { + // SET_YYLLOC(); + // yyerror("invalid octal integer"); + self.set_yylloc(); - yyerror("invalid octal integer"); + yyerror!("invalid octal integer"); } {binfail} { + // SET_YYLLOC(); + // yyerror("invalid binary integer"); + self.set_yylloc(); - yyerror("invalid binary integer"); + yyerror!("invalid binary integer"); } {numeric} { - self.set_yylloc(); + // SET_YYLLOC(); // yylval->str = pstrdup(yytext); + // return FCONST; + + self.set_yylloc(); self.yylval = Yylval::Str(self.yytext()); - return Some(TokenKind::FCONST); + return Ok(Some(TokenKind::FCONST)); } {numericfail} { - /* throw back the .., and treat as integer */ + // /* throw back the .., and treat as integer */ // yyless(yyleng - 2); + // SET_YYLLOC(); + // return process_integer_literal(yytext, yylval, 10); + + /* throw back the .., and treat as integer */ self.yyless(self.yyleng - 2); self.set_yylloc(); - // return process_integer_literal(yytext, yylval, 10); - return self.process_integer_literal(10); + return Ok(self.process_integer_literal(10)); } {real} { - self.set_yylloc(); + // SET_YYLLOC(); // yylval->str = pstrdup(yytext); + // return FCONST; + + self.set_yylloc(); self.yylval = Yylval::Str(self.yytext()); - return Some(TokenKind::FCONST); + return Ok(Some(TokenKind::FCONST)); } {realfail} { + // SET_YYLLOC(); + // yyerror("trailing junk after numeric literal"); + self.set_yylloc(); - yyerror("trailing junk after numeric literal"); - } -{decinteger_junk} { - self.set_yylloc(); - yyerror("trailing junk after numeric literal"); - } -{hexinteger_junk} { - self.set_yylloc(); - yyerror("trailing junk after numeric literal"); - } -{octinteger_junk} { - self.set_yylloc(); - yyerror("trailing junk after numeric literal"); + yyerror!("trailing junk after numeric literal"); } -{bininteger_junk} { +{integer_junk} { + // SET_YYLLOC(); + // yyerror("trailing junk after numeric literal"); + self.set_yylloc(); - yyerror("trailing junk after numeric literal"); + yyerror!("trailing junk after numeric literal"); } {numeric_junk} { + // SET_YYLLOC(); + // yyerror("trailing junk after numeric literal"); + self.set_yylloc(); - yyerror("trailing junk after numeric literal"); + yyerror!("trailing junk after numeric literal"); } {real_junk} { + // SET_YYLLOC(); + // yyerror("trailing junk after numeric literal"); + self.set_yylloc(); - yyerror("trailing junk after numeric literal"); + yyerror!("trailing junk after numeric literal"); } {identifier} { // int kwnum; // char *ident; - - self.set_yylloc(); - - /* Is it a keyword? */ + // + // SET_YYLLOC(); + // + // /* Is it a keyword? */ // kwnum = ScanKeywordLookup(yytext, // yyextra->keywordlist); // if (kwnum >= 0) // { - // yylval->keyword = GetScanKeyword(kwnum, - // yyextra->keywordlist); - // return yyextra->keyword_tokens[kwnum]; + // yylval->keyword = GetScanKeyword(kwnum, + // yyextra->keywordlist); + // return yyextra->keyword_tokens[kwnum]; // } + // + // /* + // * No. Convert the identifier to lower case, and truncate + // * if necessary. + // */ + // ident = downcase_truncate_identifier(yytext, yyleng, true); + // yylval->str = ident; + // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; + // return IDENT; + + self.set_yylloc(); + /* Is it a keyword? */ let yytext = self.yytext(); if let Some((kw, kw_token)) = self.get_keyword(&yytext) { self.yylval = Yylval::Keyword(kw); - return Some(TokenKind::KEYWORD(kw_token)); + return Ok(Some(TokenKind::KEYWORD(kw_token))); } /* * No. Convert the identifier to lower case, and truncate * if necessary. */ - // ident = downcase_truncate_identifier(yytext, yyleng, true); - // yylval->str = ident; - // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; let ident = self.downcase_truncate_identifier(self.yyleng, true); self.yylval = Yylval::Str(ident); self.set_yyllocend(); - return Some(TokenKind::IDENT); + return Ok(Some(TokenKind::IDENT)); } {other} { + // SET_YYLLOC(); + // return yytext[0]; + self.set_yylloc(); - return Some(TokenKind::RAW(yytext[0..1].to_string())); + return Ok(Some(TokenKind::RAW(yytext[0..1].to_string()))); } <> { + // SET_YYLLOC(); + // yyterminate(); + self.set_yylloc(); yyterminate!(); } %% +/* LCOV_EXCL_STOP */ + +/* + * Arrange access to yyextra for subroutines of the main yylex() function. + * We expect each subroutine to have a yyscanner parameter. Rather than + * use the yyget_xxx functions, which might or might not get inlined by the + * compiler, we cheat just a bit and cast yyscanner to the right type. + */ +#undef yyextra +#define yyextra (((struct yyguts_t *) yyscanner)->yyextra_r) + +/* Likewise for a couple of other things we need. */ +#undef yylloc +#define yylloc (((struct yyguts_t *) yyscanner)->yylloc_r) +#undef yyleng +#define yyleng (((struct yyguts_t *) yyscanner)->yyleng_r) + + +/* + * scanner_errposition + * Report a lexer or grammar error cursor position, if possible. + * + * This is expected to be used within an ereport() call, or via an error + * callback such as setup_scanner_errposition_callback(). The return value + * is a dummy (always 0, in fact). + * + * Note that this can only be used for messages emitted during raw parsing + * (essentially, scan.l, parser.c, and gram.y), since it requires the + * yyscanner struct to still be available. + */ +int +scanner_errposition(int location, core_yyscan_t yyscanner) +{ + int pos; + + if (location < 0) + return 0; /* no-op if location is unknown */ + + /* Convert byte offset to character number */ + pos = pg_mbstrlen_with_len(yyextra->scanbuf, location) + 1; + /* And pass it to the ereport mechanism */ + return errposition(pos); +} + +/* + * Error context callback for inserting scanner error location. + * + * Note that this will be called for *any* error occurring while the + * callback is installed. We avoid inserting an irrelevant error location + * if the error is a query cancel --- are there any other important cases? + */ +static void +scb_error_callback(void *arg) +{ + ScannerCallbackState *scbstate = (ScannerCallbackState *) arg; + + if (geterrcode() != ERRCODE_QUERY_CANCELED) + (void) scanner_errposition(scbstate->location, scbstate->yyscanner); +} + +/* + * setup_scanner_errposition_callback + * Arrange for non-scanner errors to report an error position + * + * Sometimes the scanner calls functions that aren't part of the scanner + * subsystem and can't reasonably be passed the yyscanner pointer; yet + * we would like any errors thrown in those functions to be tagged with an + * error location. Use this function to set up an error context stack + * entry that will accomplish that. Usage pattern: + * + * declare a local variable "ScannerCallbackState scbstate" + * ... + * setup_scanner_errposition_callback(&scbstate, yyscanner, location); + * call function that might throw error; + * cancel_scanner_errposition_callback(&scbstate); + */ +void +setup_scanner_errposition_callback(ScannerCallbackState *scbstate, + core_yyscan_t yyscanner, + int location) +{ + /* Setup error traceback support for ereport() */ + scbstate->yyscanner = yyscanner; + scbstate->location = location; + scbstate->errcallback.callback = scb_error_callback; + scbstate->errcallback.arg = (void *) scbstate; + scbstate->errcallback.previous = error_context_stack; + error_context_stack = &scbstate->errcallback; +} + +/* + * Cancel a previously-set-up errposition callback. + */ +void +cancel_scanner_errposition_callback(ScannerCallbackState *scbstate) +{ + /* Pop the error context stack */ + error_context_stack = scbstate->errcallback.previous; +} + +/* + * scanner_yyerror + * Report a lexer or grammar error. + * + * The message's cursor position is whatever YYLLOC was last set to, + * ie, the start of the current token if called within yylex(), or the + * most recently lexed token if called from the grammar. + * This is OK for syntax error messages from the Bison parser, because Bison + * parsers report error as soon as the first unparsable token is reached. + * Beware of using yyerror for other purposes, as the cursor position might + * be misleading! + */ +void +scanner_yyerror(const char *message, core_yyscan_t yyscanner) +{ + const char *loc = yyextra->scanbuf + *yylloc; + + if (*loc == YY_END_OF_BUFFER_CHAR) + { + ereport(ERROR, + (errcode(ERRCODE_SYNTAX_ERROR), + /* translator: %s is typically the translation of "syntax error" */ + errmsg("%s at end of input", _(message)), + lexer_errposition())); + } + else + { + ereport(ERROR, + (errcode(ERRCODE_SYNTAX_ERROR), + /* translator: first %s is typically the translation of "syntax error" */ + errmsg("%s at or near \"%s\"", _(message), loc), + lexer_errposition())); + } +} + + +/* + * Called before any actual parsing is done + */ +core_yyscan_t +scanner_init(const char *str, + core_yy_extra_type *yyext, + const ScanKeywordList *keywordlist, + const uint16 *keyword_tokens) +{ + Size slen = strlen(str); + yyscan_t scanner; + + if (yylex_init(&scanner) != 0) + elog(ERROR, "yylex_init() failed: %m"); + + core_yyset_extra(yyext, scanner); + + yyext->keywordlist = keywordlist; + yyext->keyword_tokens = keyword_tokens; + + yyext->backslash_quote = backslash_quote; + yyext->escape_string_warning = escape_string_warning; + yyext->standard_conforming_strings = standard_conforming_strings; + + /* + * Make a scan buffer with special termination needed by flex. + */ + yyext->scanbuf = (char *) palloc(slen + 2); + yyext->scanbuflen = slen; + memcpy(yyext->scanbuf, str, slen); + yyext->scanbuf[slen] = yyext->scanbuf[slen + 1] = YY_END_OF_BUFFER_CHAR; + yy_scan_buffer(yyext->scanbuf, slen + 2, scanner); + + /* initialize literal buffer to a reasonable but expansible size */ + yyext->literalalloc = 1024; + yyext->literalbuf = (char *) palloc(yyext->literalalloc); + yyext->literallen = 0; + + return scanner; +} + + +/* + * Called after parsing is done to clean up after scanner_init() + */ +void +scanner_finish(core_yyscan_t yyscanner) +{ + /* + * We don't bother to call yylex_destroy(), because all it would do is + * pfree a small amount of control storage. It's cheaper to leak the + * storage until the parsing context is destroyed. The amount of space + * involved is usually negligible compared to the output parse tree + * anyway. + * + * We do bother to pfree the scanbuf and literal buffer, but only if they + * represent a nontrivial amount of space. The 8K cutoff is arbitrary. + */ + if (yyextra->scanbuflen >= 8192) + pfree(yyextra->scanbuf); + if (yyextra->literalalloc >= 8192) + pfree(yyextra->literalbuf); +} + static void addlit(char *ytext, int yleng, core_yyscan_t yyscanner) @@ -1203,6 +1889,22 @@ addlitchar(unsigned char ychar, core_yyscan_t yyscanner) yyextra->literallen += 1; } + +/* + * Create a palloc'd copy of literalbuf, adding a trailing null. + */ +static char * +litbufdup(core_yyscan_t yyscanner) +{ + int llen = yyextra->literallen; + char *new; + + new = palloc(llen + 1); + memcpy(new, yyextra->literalbuf, llen); + new[llen] = '\0'; + return new; +} + /* * Process {decinteger}, {hexinteger}, etc. Note this will also do the right * thing with {numeric}, ie digits and a decimal point. @@ -1258,6 +1960,8 @@ unescape_single_char(unsigned char c, core_yyscan_t yyscanner) return '\r'; case 't': return '\t'; + case 'v': + return '\v'; default: /* check for backslash followed by non-7-bit-ASCII */ if (c == '\0' || IS_HIGHBIT_SET(c)) @@ -1266,3 +1970,69 @@ unescape_single_char(unsigned char c, core_yyscan_t yyscanner) return c; } } + +static void +check_string_escape_warning(unsigned char ychar, core_yyscan_t yyscanner) +{ + if (ychar == '\'') + { + if (yyextra->warn_on_first_escape && yyextra->escape_string_warning) + ereport(WARNING, + (errcode(ERRCODE_NONSTANDARD_USE_OF_ESCAPE_CHARACTER), + errmsg("nonstandard use of \\' in a string literal"), + errhint("Use '' to write quotes in strings, or use the escape string syntax (E'...')."), + lexer_errposition())); + yyextra->warn_on_first_escape = false; /* warn only once per string */ + } + else if (ychar == '\\') + { + if (yyextra->warn_on_first_escape && yyextra->escape_string_warning) + ereport(WARNING, + (errcode(ERRCODE_NONSTANDARD_USE_OF_ESCAPE_CHARACTER), + errmsg("nonstandard use of \\\\ in a string literal"), + errhint("Use the escape string syntax for backslashes, e.g., E'\\\\'."), + lexer_errposition())); + yyextra->warn_on_first_escape = false; /* warn only once per string */ + } + else + check_escape_warning(yyscanner); +} + +static void +check_escape_warning(core_yyscan_t yyscanner) +{ + if (yyextra->warn_on_first_escape && yyextra->escape_string_warning) + ereport(WARNING, + (errcode(ERRCODE_NONSTANDARD_USE_OF_ESCAPE_CHARACTER), + errmsg("nonstandard use of escape in a string literal"), + errhint("Use the escape string syntax for escapes, e.g., E'\\r\\n'."), + lexer_errposition())); + yyextra->warn_on_first_escape = false; /* warn only once per string */ +} + +/* + * Interface functions to make flex use palloc() instead of malloc(). + * It'd be better to make these static, but flex insists otherwise. + */ + +void * +core_yyalloc(yy_size_t bytes, core_yyscan_t yyscanner) +{ + return palloc(bytes); +} + +void * +core_yyrealloc(void *ptr, yy_size_t bytes, core_yyscan_t yyscanner) +{ + if (ptr) + return repalloc(ptr, bytes); + else + return palloc(bytes); +} + +void +core_yyfree(void *ptr, core_yyscan_t yyscanner) +{ + if (ptr) + pfree(ptr); +} diff --git a/crates/lexer-generator/src/lexer_generator/flex_file.rs b/crates/lexer-generator/src/flex_file.rs similarity index 89% rename from crates/lexer-generator/src/lexer_generator/flex_file.rs rename to crates/lexer-generator/src/flex_file.rs index 667c244..d8f5a99 100644 --- a/crates/lexer-generator/src/lexer_generator/flex_file.rs +++ b/crates/lexer-generator/src/flex_file.rs @@ -53,8 +53,8 @@ fn parse_pattern_actions( return None; } - if line.starts_with("<>") { - let rest = line["<>".len()..].to_owned(); + if let Some(stripped) = line.strip_prefix("<>") { + let rest = stripped.to_owned(); let actions = parse_actions(rest, it); return Some(("<>".to_owned(), actions)); } @@ -109,6 +109,14 @@ fn parse_rules(states: Vec, it: &mut impl Iterator) -> Ve rules } +fn skip_c_source(it: &mut impl Iterator) { + for line in it { + if line == "%}" { + break; + } + } +} + pub fn parse_flex_file(s: impl AsRef) -> FlexFile { let s = s.as_ref().lines().map(str::to_owned).collect::>(); @@ -117,13 +125,19 @@ pub fn parse_flex_file(s: impl AsRef) -> FlexFile { flex_file.all_states.push("INITIAL".to_owned()); let mut it = s.iter().cloned(); + while let Some(line) = it.next() { if line.starts_with("%%") { break; } - if line.starts_with("%x ") { - flex_file.all_states.push(line[3..].to_owned()); + if line.starts_with("%{") { + skip_c_source(&mut it); + continue; + } + + if let Some(rest) = line.strip_prefix("%x ") { + flex_file.all_states.push(rest.to_owned()); continue; } @@ -142,9 +156,9 @@ pub fn parse_flex_file(s: impl AsRef) -> FlexFile { flex_file.rules = parse_rules(Vec::new(), &mut it); - while let Some(line) = it.next() { + for line in it { flex_file.rest_code += &line; - flex_file.rest_code += &"\n"; + flex_file.rest_code += "\n"; } flex_file diff --git a/crates/lexer-generator/src/lexer_generator.rs b/crates/lexer-generator/src/lexer_generator.rs index fe0ed94..ad0f12a 100644 --- a/crates/lexer-generator/src/lexer_generator.rs +++ b/crates/lexer-generator/src/lexer_generator.rs @@ -1,10 +1,11 @@ use std::{collections::HashMap, process::Command}; -use self::flex_file::{parse_flex_file, FlexFile}; +use automata::{FlexPatternDef, NameDefinition, to_flex_pattern_dfa}; +use regex::Regex; -mod flex_file; +use crate::flex_file::{FlexFile, parse_flex_file}; -/// 各状態の全ルールに一意な名前を付ける +/// Assign unique names to all rules in each state fn construct_rule_kinds(flex_file: &FlexFile) -> String { let mut res = Vec::new(); let mut map: HashMap<&String, usize> = HashMap::new(); @@ -20,7 +21,7 @@ fn construct_rule_kinds(flex_file: &FlexFile) -> String { res.join(",\n") } -/// action部分のコードを生成する +/// Generate code for the action part fn construct_actions(flex_file: &FlexFile) -> String { let mut res = Vec::new(); let mut map: HashMap<&String, usize> = HashMap::new(); @@ -30,18 +31,14 @@ fn construct_actions(flex_file: &FlexFile) -> String { let e = map.entry(s).or_default(); *e += 1; - // actionが | の場合、後続のルールが実行される + // If the action is |, the subsequent rule will be executed if rule.actions.trim() == "|" { - res.push(format!( - r#"RuleKind::{kind}|"#, - kind = format!("{}{}", s, e) - )); + res.push(format!(r#"RuleKind::{s}{e}|"#)); } else { res.push(format!( - r#"RuleKind::{kind} => {{ + r#"RuleKind::{s}{e} => {{ {actions} }}"#, - kind = format!("{}{}", s, e), actions = rule.actions )); } @@ -51,17 +48,46 @@ fn construct_actions(flex_file: &FlexFile) -> String { res.join("\n") } -/// ルールのパターンを正規表現に変換する -fn extract_rule_pattern(flex_file: &FlexFile, pattern: &str) -> String { +fn construct_pattern_actions_by_index(flex_file: &FlexFile) -> String { + let mut res = Vec::new(); + + for (i, rule) in flex_file.rules.iter().enumerate() { + // If the action is |, the subsequent rule will be executed + if rule.actions.trim() == "|" { + res.push(format!(r#"{i}|"#)); + } else { + res.push(format!( + r#"{i} => {{ + {actions} + }}"#, + actions = rule.actions + )); + } + } + + // どのルールにもマッチしなかったときの値 + res.push(r#"255 => {{}}"#.to_string()); + res.push( + r#"_ => {{ + unreachable!() + }}"# + .to_string(), + ); + + res.join("\n") +} + +/// Convert rule patterns to regular expressions +fn extract_rule_pattern(flex_file: &FlexFile, pattern: &str) -> (String, bool) { if pattern == "<>" { - return "^$".to_string(); + return ("^$".to_string(), true); } - // {xxx}のパターンを抽出する正規表現パターン - let p = regex::Regex::new(r#"\{([a-zA-Z0-9_]+)\}"#).unwrap(); + // Regular expression pattern to extract {xxx} patterns + let p = Regex::new(r#"\{([a-zA-Z0-9_]+)\}"#).unwrap(); - // flexではダブルクオートをエスケープする必要があるが、正規表現では不要である - // そのため、正規表現パターンにする前にダブルクオートのエスケープを除外する + // In flex, double quotes need to be escaped, but not in regular expressions + // Therefore, remove the escaping of double quotes before converting to regex pattern fn remove_unnecessary_quote(s: &str) -> String { let chars = s.chars().collect::>(); let mut remove = vec![false; chars.len()]; @@ -98,23 +124,26 @@ fn extract_rule_pattern(flex_file: &FlexFile, pattern: &str) -> String { .collect() } - // {xxx}を実際の正規表現パターンに展開する - p.replace_all(&pattern, |caps: ®ex::Captures| { - let name = caps.get(1).unwrap().as_str(); + // Expand {xxx} to actual regular expression patterns + let replaced = p + .replace_all(pattern, |caps: ®ex::Captures| { + let name = caps.get(1).unwrap().as_str(); - // {xxx}のxxxが定義されているかをチェックする - if let Some(def) = flex_file.definitions.iter().find(|def| def.name == name) { - let pattern = remove_unnecessary_quote(&def.def); - let rep = extract_rule_pattern(flex_file, &pattern); - format!("({})", rep) - } else { - format!("{{{name}}}") - } - }) - .to_string() + // Check if xxx in {xxx} is defined + if let Some(def) = flex_file.definitions.iter().find(|def| def.name == name) { + let pattern = remove_unnecessary_quote(&def.def); + let (rep, _) = extract_rule_pattern(flex_file, &pattern); + format!("({rep})") + } else { + format!("{{{name}}}") + } + }) + .to_string(); + + (replaced, false) } -/// Rule構造体を生成する +/// Generate Rule structures fn construct_rule_defs(flex_file: &FlexFile) -> String { let mut res = Vec::new(); let mut map: HashMap<&String, usize> = HashMap::new(); @@ -124,17 +153,19 @@ fn construct_rule_defs(flex_file: &FlexFile) -> String { let e = map.entry(s).or_default(); *e += 1; + let (pattern, eof) = extract_rule_pattern(flex_file, &rule.pattern); res.push(format!( r###" // {original_pattern} Rule {{ state: State::{s}, - pattern: Regex::new(r#"(?-u)^({pattern})"#).unwrap(), - kind: RuleKind::{rule_kind}, + pattern: regex::bytes::Regex::new(r#"(?-u)^({pattern})"#).unwrap(), + kind: RuleKind::{s}{e}, + eof: {eof}, }}"###, original_pattern = rule.pattern, - pattern = extract_rule_pattern(flex_file, &rule.pattern), - rule_kind = format!("{}{}", s, e), + pattern = pattern, + eof = eof, )); } } @@ -142,22 +173,103 @@ fn construct_rule_defs(flex_file: &FlexFile) -> String { res.join(",\n") } -/// 状態を表すenumを生成する +/// Generate enum representing states fn construct_states(flex_file: &FlexFile) -> String { flex_file.all_states.clone().join(",\n") } -/// scan.lに基づいてLexerを生成する +fn construct_dfa(flex_file: &FlexFile) -> (String, String) { + let state_map = flex_file + .all_states + .iter() + .enumerate() + .map(|(i, s)| (s.clone(), i)) + .collect::>(); + + let rules = flex_file + .rules + .iter() + .map(|rule| FlexPatternDef { + state_set: rule + .states + .iter() + .map(|s| *state_map.get(s).unwrap()) + .collect::>(), + pattern: rule.pattern.clone(), + }) + .collect::>(); + + let name_defs = flex_file + .definitions + .iter() + .map(|def| NameDefinition { + name: def.name.clone(), + definition: def.def.clone(), + }) + .collect::>(); + + let dfa = to_flex_pattern_dfa(&rules, &name_defs); + + let mut table_defs = Vec::new(); + let mut state_id_to_dfa_table_defs = Vec::new(); + + for (i, dfa) in dfa.into_iter().enumerate() { + let mut state_transition = Vec::new(); + let mut state_accept = Vec::new(); + + for i in 0..dfa.states.len() { + let mut row_transition = Vec::new(); + for j in 0..dfa.states[i].transitions.len() { + let v = dfa.states[i].transitions[j] as u8; + row_transition.push(v.to_string()); + } + + state_transition.push(format!("[{}]", row_transition.join(","))); + state_accept.push(format!( + "{}", + dfa.states[i] + .accept_lexer_rule_id + .map(|v| v as u8) + .unwrap_or(!0) + )); + } + + table_defs.push(format!( + r#" + // DFA transition table (state={state_name}) + pub const TRANSITION_TABLE_{i}: [[u8; 256]; {state_len}] = [{transition_table}]; + + // DFA accept table (state={state_name}) + pub const ACCEPT_TABLE_{i}: [u8; {state_len}] = [{accept_table}]; + "#, + state_len = dfa.states.len(), + state_name = flex_file.all_states[i], + transition_table = state_transition.join(","), + accept_table = state_accept.join(",") + )); + + state_id_to_dfa_table_defs.push(format!( + r#"{i} => (TRANSITION_TABLE_{i}.as_slice(), ACCEPT_TABLE_{i}.as_slice()),"# + )); + } + + (table_defs.join("\n"), state_id_to_dfa_table_defs.join("\n")) +} + +/// Generate Lexer based on scan.l pub fn generate() { let flex_file = parse_flex_file(include_str!("../resources/scan.l")); - let template = include_str!("../resources/lex_template.rs"); + + let template = include_str!("../templates/lex_template.rs"); let rule_kinds = construct_rule_kinds(&flex_file); let actions = construct_actions(&flex_file); + let pattern_actions_by_index = construct_pattern_actions_by_index(&flex_file); let rule_defs = construct_rule_defs(&flex_file); let states = construct_states(&flex_file); + let (dfa_table_def, state_id_to_dfa_table_defs) = construct_dfa(&flex_file); - // キーワード一覧を抽出する + // Extract keyword list let mut keywords = Vec::new(); for line in include_str!("../resources/kwlist.h").lines() { if line.starts_with("PG_KEYWORD") { @@ -171,14 +283,18 @@ pub fn generate() { let res = template .replace("{rule_kinds}", &rule_kinds) .replace("{actions}", &actions) + .replace("{pattern_actions_by_index}", &pattern_actions_by_index) .replace("{rule_defs}", &rule_defs) .replace("{states}", &states) - .replace("{keyword_map}", &keywords.join("\n")); + .replace("{keyword_map}", &keywords.join("\n")) + .replace("{{dfa_table}}", &dfa_table_def) + .replace("{{state_id_to_dfa_table}}", &state_id_to_dfa_table_defs); let paths = [ "./crates/postgresql-cst-parser/src/lexer/generated.rs", "./crates/parser-generator/src/parser_generator/lexer/generated.rs", ]; + for path in paths { std::fs::write(path, &res).unwrap(); Command::new("rustfmt").arg(path).output().unwrap(); diff --git a/crates/lexer-generator/src/main.rs b/crates/lexer-generator/src/main.rs index 8d92379..0da2750 100644 --- a/crates/lexer-generator/src/main.rs +++ b/crates/lexer-generator/src/main.rs @@ -1,3 +1,4 @@ +mod flex_file; mod lexer_generator; fn main() { diff --git a/crates/lexer-generator/templates/lex_template.rs b/crates/lexer-generator/templates/lex_template.rs new file mode 100644 index 0000000..994020b --- /dev/null +++ b/crates/lexer-generator/templates/lex_template.rs @@ -0,0 +1,107 @@ +#![allow(clippy::all)] +#![allow(unreachable_code)] + +/// This file contains ported sources from PostgreSQL + +use std::collections::HashMap; + +use super::{ + Lexer, NAMEDATALEN, ParserError, TokenKind, Yylval, + lexer_ported::{ + get_char_by_byte_pos, is_highbit_set, is_utf16_surrogate_first, is_utf16_surrogate_second, + surrogate_pair_to_codepoint, + }, +}; + +macro_rules! ereport { + ($lexer:expr, ERROR, (errcode($err_code:expr), errmsg($err_msg:expr), errdetail($err_detail:expr), $err_position:expr)) => { + return Err(ParserError::new_report($err_msg, $err_detail, $err_position)); + }; + ($lexer:expr, ERROR, (errcode($err_code:expr), errmsg($err_msg:expr), errhint($err_detail:expr), $err_position:expr)) => { + return Err(ParserError::new_report($err_msg, $err_detail, $err_position)); + }; + ($lexer:expr, WARNING, (errcode($err_code:expr), errmsg($err_msg:expr), errdetail($err_detail:expr), $err_position:expr)) => { + $lexer.add_warning(ScanReport::new($err_msg, $err_detail, $err_position)); + }; +} + +macro_rules! yyerror { + ($msg:expr) => { + return Err(ParserError::new_error($msg)) + }; +} + +macro_rules! yyterminate { + () => { + return Ok(None); + }; +} + +#[cfg(not(feature = "regex-match"))] +pub mod dfa { + use super::State; + + {{dfa_table}} + + pub fn get_dfa_table(state: State) -> (&'static [[u8; 256]], &'static [u8]) { + let state_id = state as u8; + + match state_id { + {{state_id_to_dfa_table}} + _ => unreachable!(), + } + } +} + +#[cfg(feature = "regex-match")] +#[derive(Debug, PartialEq, Eq, Clone, Copy)] +pub enum RuleKind {{rule_kinds}} + +#[derive(Debug, PartialEq, Eq, Clone, Copy)] +pub enum State {{states}} + +const STANDARD_CONFORMING_STRINGS: bool = true; + +impl Lexer { + #[cfg(not(feature = "regex-match"))] + pub fn parse_token(&mut self) -> Result, ParserError> { + loop { + let (match_len, pattern_index) = self.find_match_len(); + + self.yyleng = match_len; + let yytext = self.yytext(); + + match pattern_index {{pattern_actions_by_index}} + self.advance(); + } + } + + #[cfg(feature = "regex-match")] + pub fn parse_token(&mut self) -> Result, ParserError> { + loop { + let (match_len, kind) = self.find_match_len(); + + self.yyleng = match_len; + let yytext = self.yytext(); + + match kind {{actions}} + self.advance(); + } + } +} + +# [cfg(feature="regex-match")] +pub fn get_rules() -> Vec { + use crate::lexer::Rule; + use super::generated::RuleKind; + + vec![{rule_defs}] +} + +pub fn get_keyword_map() -> HashMap<&'static str, &'static str> { + let mut map = HashMap::new(); + for (kw, tok) in [{keyword_map}] { + map.insert(kw, tok); + } + map +} diff --git a/crates/parser-generator/Cargo.toml b/crates/parser-generator/Cargo.toml index e5ccf13..8e826f6 100644 --- a/crates/parser-generator/Cargo.toml +++ b/crates/parser-generator/Cargo.toml @@ -1,7 +1,8 @@ [package] name = "parser-generator" version = "0.1.0" -edition = "2021" +edition = "2024" +exclude.workspace = true [package.metadata.release] release = false @@ -10,7 +11,8 @@ release = false [dependencies] regex = "1.10.2" -bincode = "1.3.3" cstree = { version = "0.12.0", features = ["derive"] } -serde = { version = "1.0.195", features = ["derive"] } -miniz_oxide = "0.7.1" +#serde = { version = "1.0.195", features = ["derive"] } + +[features] +regex-match = [] diff --git a/crates/parser-generator/resources/gram.y b/crates/parser-generator/resources/gram.y index 7dd5505..11259a8 100644 --- a/crates/parser-generator/resources/gram.y +++ b/crates/parser-generator/resources/gram.y @@ -6,7 +6,7 @@ * gram.y * POSTGRESQL BISON rules/actions * - * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group + * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * * @@ -170,7 +170,6 @@ static void updateRawStmtEnd(RawStmt *rs, int end_location); static Node *makeColumnRef(char *colname, List *indirection, int location, core_yyscan_t yyscanner); static Node *makeTypeCast(Node *arg, TypeName *typename, int location); -static Node *makeStringConst(char *str, int location); static Node *makeStringConstCast(char *str, int location, TypeName *typename); static Node *makeIntConst(int val, int location); static Node *makeFloatConst(char *str, int location); @@ -277,6 +276,7 @@ static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query); struct SelectLimit *selectlimit; SetQuantifier setquantifier; struct GroupClause *groupclause; + MergeMatchKind mergematch; MergeWhenClause *mergewhen; struct KeyActions *keyactions; struct KeyAction *keyaction; @@ -339,6 +339,8 @@ static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query); %type alter_table_cmds alter_type_cmds %type alter_identity_column_option_list %type alter_identity_column_option +%type set_statistics_value +%type set_access_method_name %type createdb_opt_list createdb_opt_items copy_opt_list transaction_mode_list @@ -516,13 +518,14 @@ static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query); %type opt_on_conflict %type merge_insert merge_update merge_delete +%type merge_when_tgt_matched merge_when_tgt_not_matched %type merge_when_clause opt_merge_when_condition %type merge_when_list %type generic_set set_rest set_rest_more generic_reset reset_rest SetResetClause FunctionSetResetClause -%type TableElement TypedTableElement ConstraintElem TableFuncElement +%type TableElement TypedTableElement ConstraintElem DomainConstraintElem TableFuncElement %type columnDef columnOptions %type def_elem reloption_elem old_aggr_elem operator_def_elem %type def_arg columnElem where_clause where_or_current_clause @@ -568,7 +571,7 @@ static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query); %type copy_options %type Typename SimpleTypename ConstTypename - GenericType Numeric opt_float + GenericType Numeric opt_float JsonType Character ConstCharacter CharacterWithLength CharacterWithoutLength ConstDatetime ConstInterval @@ -593,7 +596,7 @@ static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query); %type col_name_keyword reserved_keyword %type bare_label_keyword -%type TableConstraint TableLikeClause +%type DomainConstraint TableConstraint TableLikeClause %type TableLikeOptionList TableLikeOption %type column_compression opt_column_compression column_storage opt_column_storage %type ColQualList @@ -647,16 +650,30 @@ static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query); %type hash_partbound %type hash_partbound_elem -%type json_format_clause_opt +%type json_format_clause + json_format_clause_opt json_value_expr - json_output_clause_opt + json_returning_clause_opt json_name_and_value json_aggregate_func + json_argument + json_behavior + json_on_error_clause_opt + json_table + json_table_column_definition + json_table_column_path_clause_opt %type json_name_and_value_list json_value_expr_list json_array_aggregate_order_by_clause_opt -%type json_encoding_clause_opt + json_arguments + json_behavior_clause_opt + json_passing_clause_opt + json_table_column_definition_list +%type json_table_path_name_opt +%type json_behavior_type json_predicate_type_constraint + json_quotes_clause_opt + json_wrapper_behavior %type json_key_uniqueness_constraint_opt json_object_constructor_null_clause_opt json_array_constructor_null_clause_opt @@ -698,7 +715,7 @@ static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query); CACHE CALL CALLED CASCADE CASCADED CASE CAST CATALOG_P CHAIN CHAR_P CHARACTER CHARACTERISTICS CHECK CHECKPOINT CLASS CLOSE CLUSTER COALESCE COLLATE COLLATION COLUMN COLUMNS COMMENT COMMENTS COMMIT - COMMITTED COMPRESSION CONCURRENTLY CONFIGURATION CONFLICT + COMMITTED COMPRESSION CONCURRENTLY CONDITIONAL CONFIGURATION CONFLICT CONNECTION CONSTRAINT CONSTRAINTS CONTENT_P CONTINUE_P CONVERSION_P COPY COST CREATE CROSS CSV CUBE CURRENT_P CURRENT_CATALOG CURRENT_DATE CURRENT_ROLE CURRENT_SCHEMA @@ -709,8 +726,8 @@ static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query); DETACH DICTIONARY DISABLE_P DISCARD DISTINCT DO DOCUMENT_P DOMAIN_P DOUBLE_P DROP - EACH ELSE ENABLE_P ENCODING ENCRYPTED END_P ENUM_P ESCAPE EVENT EXCEPT - EXCLUDE EXCLUDING EXCLUSIVE EXECUTE EXISTS EXPLAIN EXPRESSION + EACH ELSE EMPTY_P ENABLE_P ENCODING ENCRYPTED END_P ENUM_P ERROR_P ESCAPE + EVENT EXCEPT EXCLUDE EXCLUDING EXCLUSIVE EXECUTE EXISTS EXPLAIN EXPRESSION EXTENSION EXTERNAL EXTRACT FALSE_P FAMILY FETCH FILTER FINALIZE FIRST_P FLOAT_P FOLLOWING FOR @@ -725,32 +742,33 @@ static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query); INNER_P INOUT INPUT_P INSENSITIVE INSERT INSTEAD INT_P INTEGER INTERSECT INTERVAL INTO INVOKER IS ISNULL ISOLATION - JOIN JSON JSON_ARRAY JSON_ARRAYAGG JSON_OBJECT JSON_OBJECTAGG + JOIN JSON JSON_ARRAY JSON_ARRAYAGG JSON_EXISTS JSON_OBJECT JSON_OBJECTAGG + JSON_QUERY JSON_SCALAR JSON_SERIALIZE JSON_TABLE JSON_VALUE - KEY KEYS + KEEP KEY KEYS LABEL LANGUAGE LARGE_P LAST_P LATERAL_P LEADING LEAKPROOF LEAST LEFT LEVEL LIKE LIMIT LISTEN LOAD LOCAL LOCALTIME LOCALTIMESTAMP LOCATION LOCK_P LOCKED LOGGED - MAPPING MATCH MATCHED MATERIALIZED MAXVALUE MERGE METHOD + MAPPING MATCH MATCHED MATERIALIZED MAXVALUE MERGE MERGE_ACTION METHOD MINUTE_P MINVALUE MODE MONTH_P MOVE - NAME_P NAMES NATIONAL NATURAL NCHAR NEW NEXT NFC NFD NFKC NFKD NO NONE - NORMALIZE NORMALIZED + NAME_P NAMES NATIONAL NATURAL NCHAR NESTED NEW NEXT NFC NFD NFKC NFKD NO + NONE NORMALIZE NORMALIZED NOT NOTHING NOTIFY NOTNULL NOWAIT NULL_P NULLIF NULLS_P NUMERIC - OBJECT_P OF OFF OFFSET OIDS OLD ON ONLY OPERATOR OPTION OPTIONS OR + OBJECT_P OF OFF OFFSET OIDS OLD OMIT ON ONLY OPERATOR OPTION OPTIONS OR ORDER ORDINALITY OTHERS OUT_P OUTER_P OVER OVERLAPS OVERLAY OVERRIDING OWNED OWNER - PARALLEL PARAMETER PARSER PARTIAL PARTITION PASSING PASSWORD - PLACING PLANS POLICY + PARALLEL PARAMETER PARSER PARTIAL PARTITION PASSING PASSWORD PATH + PLACING PLAN PLANS POLICY POSITION PRECEDING PRECISION PRESERVE PREPARE PREPARED PRIMARY PRIOR PRIVILEGES PROCEDURAL PROCEDURE PROCEDURES PROGRAM PUBLICATION - QUOTE + QUOTE QUOTES RANGE READ REAL REASSIGN RECHECK RECURSIVE REF_P REFERENCES REFERENCING REFRESH REINDEX RELATIVE_P RELEASE RENAME REPEATABLE REPLACE REPLICA @@ -760,16 +778,16 @@ static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query); SAVEPOINT SCALAR SCHEMA SCHEMAS SCROLL SEARCH SECOND_P SECURITY SELECT SEQUENCE SEQUENCES SERIALIZABLE SERVER SESSION SESSION_USER SET SETS SETOF SHARE SHOW - SIMILAR SIMPLE SKIP SMALLINT SNAPSHOT SOME SQL_P STABLE STANDALONE_P - START STATEMENT STATISTICS STDIN STDOUT STORAGE STORED STRICT_P STRIP_P + SIMILAR SIMPLE SKIP SMALLINT SNAPSHOT SOME SOURCE SQL_P STABLE STANDALONE_P + START STATEMENT STATISTICS STDIN STDOUT STORAGE STORED STRICT_P STRING_P STRIP_P SUBSCRIPTION SUBSTRING SUPPORT SYMMETRIC SYSID SYSTEM_P SYSTEM_USER - TABLE TABLES TABLESAMPLE TABLESPACE TEMP TEMPLATE TEMPORARY TEXT_P THEN + TABLE TABLES TABLESAMPLE TABLESPACE TARGET TEMP TEMPLATE TEMPORARY TEXT_P THEN TIES TIME TIMESTAMP TO TRAILING TRANSACTION TRANSFORM TREAT TRIGGER TRIM TRUE_P TRUNCATE TRUSTED TYPE_P TYPES_P - UESCAPE UNBOUNDED UNCOMMITTED UNENCRYPTED UNION UNIQUE UNKNOWN + UESCAPE UNBOUNDED UNCONDITIONAL UNCOMMITTED UNENCRYPTED UNION UNIQUE UNKNOWN UNLISTEN UNLOGGED UNTIL UPDATE USER USING VACUUM VALID VALIDATE VALIDATOR VALUE_P VALUES VARCHAR VARIADIC VARYING @@ -812,7 +830,6 @@ static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query); /* Precedence: lowest to highest */ -%nonassoc SET /* see relation_expr_opt_alias */ %left UNION EXCEPT %left INTERSECT %left OR @@ -823,18 +840,23 @@ static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query); %nonassoc BETWEEN IN_P LIKE ILIKE SIMILAR NOT_LA %nonassoc ESCAPE /* ESCAPE must be just above LIKE/ILIKE/SIMILAR */ -/* SQL/JSON related keywords */ -%nonassoc UNIQUE JSON -%nonassoc KEYS OBJECT_P SCALAR VALUE_P -%nonassoc WITH WITHOUT - /* - * To support target_el without AS, it used to be necessary to assign IDENT an - * explicit precedence just less than Op. While that's not really necessary - * since we removed postfix operators, it's still helpful to do so because - * there are some other unreserved keywords that need precedence assignments. - * If those keywords have the same precedence as IDENT then they clearly act - * the same as non-keywords, reducing the risk of unwanted precedence effects. + * Sometimes it is necessary to assign precedence to keywords that are not + * really part of the operator hierarchy, in order to resolve grammar + * ambiguities. It's best to avoid doing so whenever possible, because such + * assignments have global effect and may hide ambiguities besides the one + * you intended to solve. (Attaching a precedence to a single rule with + * %prec is far safer and should be preferred.) If you must give precedence + * to a new keyword, try very hard to give it the same precedence as IDENT. + * If the keyword has IDENT's precedence then it clearly acts the same as + * non-keywords and other similar keywords, thus reducing the risk of + * unexpected precedence effects. + * + * We used to need to assign IDENT an explicit precedence just less than Op, + * to support target_el without AS. While that's not really necessary since + * we removed postfix operators, we continue to do so because it provides a + * reference point for a precedence level that we can assign to other + * keywords that lack a natural precedence level. * * We need to do this for PARTITION, RANGE, ROWS, and GROUPS to support * opt_existing_window_name (see comment there). @@ -852,15 +874,27 @@ static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query); * an explicit priority lower than '(', so that a rule with CUBE '(' will shift * rather than reducing a conflicting rule that takes CUBE as a function name. * Using the same precedence as IDENT seems right for the reasons given above. + * + * SET is likewise assigned the same precedence as IDENT, to support the + * relation_expr_opt_alias production (see comment there). + * + * KEYS, OBJECT_P, SCALAR, VALUE_P, WITH, and WITHOUT are similarly assigned + * the same precedence as IDENT. This allows resolving conflicts in the + * json_predicate_type_constraint and json_key_uniqueness_constraint_opt + * productions (see comments there). + * + * Like the UNBOUNDED PRECEDING/FOLLOWING case, NESTED is assigned a lower + * precedence than PATH to fix ambiguity in the json_table production. */ -%nonassoc UNBOUNDED /* ideally would have same precedence as IDENT */ +%nonassoc UNBOUNDED NESTED /* ideally would have same precedence as IDENT */ %nonassoc IDENT PARTITION RANGE ROWS GROUPS PRECEDING FOLLOWING CUBE ROLLUP + SET KEYS OBJECT_P SCALAR VALUE_P WITH WITHOUT PATH %left Op OPERATOR /* multi-character ops and user-defined operators */ %left '+' '-' %left '*' '/' '%' %left '^' /* Unary Operators */ -%left AT /* sets precedence for AT TIME ZONE */ +%left AT /* sets precedence for AT TIME ZONE, AT LOCAL */ %left COLLATE %right UMINUS %left '[' ']' @@ -2451,6 +2485,16 @@ alter_table_cmd: n->name = $3; $$ = (Node *) n; } + /* ALTER TABLE ALTER [COLUMN] SET EXPRESSION AS */ + | ALTER opt_column ColId SET EXPRESSION AS '(' a_expr ')' + { + AlterTableCmd *n = makeNode(AlterTableCmd); + + n->subtype = AT_SetExpression; + n->name = $3; + n->def = $8; + $$ = (Node *) n; + } /* ALTER TABLE ALTER [COLUMN] DROP EXPRESSION */ | ALTER opt_column ColId DROP EXPRESSION { @@ -2470,18 +2514,18 @@ alter_table_cmd: n->missing_ok = true; $$ = (Node *) n; } - /* ALTER TABLE ALTER [COLUMN] SET STATISTICS */ - | ALTER opt_column ColId SET STATISTICS SignedIconst + /* ALTER TABLE ALTER [COLUMN] SET STATISTICS */ + | ALTER opt_column ColId SET STATISTICS set_statistics_value { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_SetStatistics; n->name = $3; - n->def = (Node *) makeInteger($6); + n->def = $6; $$ = (Node *) n; } - /* ALTER TABLE ALTER [COLUMN] SET STATISTICS */ - | ALTER opt_column Iconst SET STATISTICS SignedIconst + /* ALTER TABLE ALTER [COLUMN] SET STATISTICS */ + | ALTER opt_column Iconst SET STATISTICS set_statistics_value { AlterTableCmd *n = makeNode(AlterTableCmd); @@ -2493,7 +2537,7 @@ alter_table_cmd: n->subtype = AT_SetStatistics; n->num = (int16) $3; - n->def = (Node *) makeInteger($6); + n->def = $6; $$ = (Node *) n; } /* ALTER TABLE ALTER [COLUMN] SET ( column_parameter = value [, ... ] ) */ @@ -2882,8 +2926,8 @@ alter_table_cmd: n->newowner = $3; $$ = (Node *) n; } - /* ALTER TABLE SET ACCESS METHOD */ - | SET ACCESS METHOD name + /* ALTER TABLE SET ACCESS METHOD { | DEFAULT } */ + | SET ACCESS METHOD set_access_method_name { AlterTableCmd *n = makeNode(AlterTableCmd); @@ -3094,6 +3138,16 @@ alter_identity_column_option: } ; +set_statistics_value: + SignedIconst { $$ = (Node *) makeInteger($1); } + | DEFAULT { $$ = NULL; } + ; + +set_access_method_name: + ColId { $$ = $1; } + | DEFAULT { $$ = NULL; } + ; + PartitionBoundSpec: /* a HASH partition */ FOR VALUES WITH '(' hash_partbound ')' @@ -3466,10 +3520,18 @@ copy_opt_item: { $$ = makeDefElem("force_not_null", (Node *) $4, @1); } + | FORCE NOT NULL_P '*' + { + $$ = makeDefElem("force_not_null", (Node *) makeNode(A_Star), @1); + } | FORCE NULL_P columnList { $$ = makeDefElem("force_null", (Node *) $3, @1); } + | FORCE NULL_P '*' + { + $$ = makeDefElem("force_null", (Node *) makeNode(A_Star), @1); + } | ENCODING Sconst { $$ = makeDefElem("encoding", (Node *) makeString($2), @1); @@ -3522,6 +3584,7 @@ copy_generic_opt_arg: opt_boolean_or_string { $$ = (Node *) makeString($1); } | NumericOnly { $$ = (Node *) $1; } | '*' { $$ = (Node *) makeNode(A_Star); } + | DEFAULT { $$ = (Node *) makeString("default"); } | '(' copy_generic_opt_arg_list ')' { $$ = (Node *) $2; } | /* EMPTY */ { $$ = NULL; } ; @@ -4236,6 +4299,60 @@ ConstraintElem: } ; +/* + * DomainConstraint is separate from TableConstraint because the syntax for + * NOT NULL constraints is different. For table constraints, we need to + * accept a column name, but for domain constraints, we don't. (We could + * accept something like NOT NULL VALUE, but that seems weird.) CREATE DOMAIN + * (which uses ColQualList) has for a long time accepted NOT NULL without a + * column name, so it makes sense that ALTER DOMAIN (which uses + * DomainConstraint) does as well. None of these syntaxes are per SQL + * standard; we are just living with the bits of inconsistency that have built + * up over time. + */ +DomainConstraint: + CONSTRAINT name DomainConstraintElem + { + Constraint *n = castNode(Constraint, $3); + + n->conname = $2; + n->location = @1; + $$ = (Node *) n; + } + | DomainConstraintElem { $$ = $1; } + ; + +DomainConstraintElem: + CHECK '(' a_expr ')' ConstraintAttributeSpec + { + Constraint *n = makeNode(Constraint); + + n->contype = CONSTR_CHECK; + n->location = @1; + n->raw_expr = $3; + n->cooked_expr = NULL; + processCASbits($5, @5, "CHECK", + NULL, NULL, &n->skip_validation, + &n->is_no_inherit, yyscanner); + n->initially_valid = !n->skip_validation; + $$ = (Node *) n; + } + | NOT NULL_P ConstraintAttributeSpec + { + Constraint *n = makeNode(Constraint); + + n->contype = CONSTR_NOTNULL; + n->location = @1; + n->keys = list_make1(makeString("value")); + /* no NOT VALID support yet */ + processCASbits($3, @3, "NOT NULL", + NULL, NULL, NULL, + &n->is_no_inherit, yyscanner); + n->initially_valid = true; + $$ = (Node *) n; + } + ; + opt_no_inherit: NO INHERIT { $$ = true; } | /* EMPTY */ { $$ = false; } ; @@ -4590,7 +4707,7 @@ stats_param: ColId *****************************************************************************/ AlterStatsStmt: - ALTER STATISTICS any_name SET STATISTICS SignedIconst + ALTER STATISTICS any_name SET STATISTICS set_statistics_value { AlterStatsStmt *n = makeNode(AlterStatsStmt); @@ -4599,7 +4716,7 @@ AlterStatsStmt: n->stxstattarget = $6; $$ = (Node *) n; } - | ALTER STATISTICS IF_P EXISTS any_name SET STATISTICS SignedIconst + | ALTER STATISTICS IF_P EXISTS any_name SET STATISTICS set_statistics_value { AlterStatsStmt *n = makeNode(AlterStatsStmt); @@ -4839,6 +4956,10 @@ SeqOptElem: AS SimpleTypename { $$ = makeDefElem("increment", (Node *) $3, @1); } + | LOGGED + { + $$ = makeDefElem("logged", NULL, @1); + } | MAXVALUE NumericOnly { $$ = makeDefElem("maxvalue", (Node *) $2, @1); @@ -4861,7 +4982,6 @@ SeqOptElem: AS SimpleTypename } | SEQUENCE NAME_P any_name { - /* not documented, only used by pg_dump */ $$ = makeDefElem("sequence_name", (Node *) $3, @1); } | START opt_with NumericOnly @@ -4876,6 +4996,10 @@ SeqOptElem: AS SimpleTypename { $$ = makeDefElem("restart", (Node *) $3, @1); } + | UNLOGGED + { + $$ = makeDefElem("unlogged", NULL, @1); + } ; opt_by: BY @@ -6434,6 +6558,33 @@ AlterEnumStmt: n->skipIfNewValExists = false; $$ = (Node *) n; } + | ALTER TYPE_P any_name DROP VALUE_P Sconst + { + /* + * The following problems must be solved before this can be + * implemented: + * + * - There must be no instance of the target value in + * any table. + * + * - The value must not appear in any catalog metadata, + * such as stored view expressions or column defaults. + * + * - The value must not appear in any non-leaf page of a + * btree (and similar issues with other index types). + * This is problematic because a value could persist + * there long after it's gone from user-visible data. + * + * - Concurrent sessions must not be able to insert the + * value while the preceding conditions are being checked. + * + * - Possibly more... + */ + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("dropping an enum value is not implemented"), + parser_errposition(@4))); + } ; opt_if_not_exists: IF_P NOT EXISTS { $$ = true; } @@ -10146,6 +10297,8 @@ operator_def_elem: ColLabel '=' NONE { $$ = makeDefElem($1, NULL, @1); } | ColLabel '=' operator_def_arg { $$ = makeDefElem($1, (Node *) $3, @1); } + | ColLabel + { $$ = makeDefElem($1, NULL, @1); } ; /* must be similar enough to def_arg to avoid reduce/reduce conflicts */ @@ -10888,6 +11041,7 @@ TransactionStmt: n->kind = TRANS_STMT_ROLLBACK; n->options = NIL; n->chain = $3; + n->location = -1; $$ = (Node *) n; } | START TRANSACTION transaction_mode_list_or_empty @@ -10896,6 +11050,7 @@ TransactionStmt: n->kind = TRANS_STMT_START; n->options = $3; + n->location = -1; $$ = (Node *) n; } | COMMIT opt_transaction opt_transaction_chain @@ -10905,6 +11060,7 @@ TransactionStmt: n->kind = TRANS_STMT_COMMIT; n->options = NIL; n->chain = $3; + n->location = -1; $$ = (Node *) n; } | ROLLBACK opt_transaction opt_transaction_chain @@ -10914,6 +11070,7 @@ TransactionStmt: n->kind = TRANS_STMT_ROLLBACK; n->options = NIL; n->chain = $3; + n->location = -1; $$ = (Node *) n; } | SAVEPOINT ColId @@ -10922,6 +11079,7 @@ TransactionStmt: n->kind = TRANS_STMT_SAVEPOINT; n->savepoint_name = $2; + n->location = @2; $$ = (Node *) n; } | RELEASE SAVEPOINT ColId @@ -10930,6 +11088,7 @@ TransactionStmt: n->kind = TRANS_STMT_RELEASE; n->savepoint_name = $3; + n->location = @3; $$ = (Node *) n; } | RELEASE ColId @@ -10938,6 +11097,7 @@ TransactionStmt: n->kind = TRANS_STMT_RELEASE; n->savepoint_name = $2; + n->location = @2; $$ = (Node *) n; } | ROLLBACK opt_transaction TO SAVEPOINT ColId @@ -10946,6 +11106,7 @@ TransactionStmt: n->kind = TRANS_STMT_ROLLBACK_TO; n->savepoint_name = $5; + n->location = @5; $$ = (Node *) n; } | ROLLBACK opt_transaction TO ColId @@ -10954,6 +11115,7 @@ TransactionStmt: n->kind = TRANS_STMT_ROLLBACK_TO; n->savepoint_name = $4; + n->location = @4; $$ = (Node *) n; } | PREPARE TRANSACTION Sconst @@ -10962,6 +11124,7 @@ TransactionStmt: n->kind = TRANS_STMT_PREPARE; n->gid = $3; + n->location = @3; $$ = (Node *) n; } | COMMIT PREPARED Sconst @@ -10970,6 +11133,7 @@ TransactionStmt: n->kind = TRANS_STMT_COMMIT_PREPARED; n->gid = $3; + n->location = @3; $$ = (Node *) n; } | ROLLBACK PREPARED Sconst @@ -10978,6 +11142,7 @@ TransactionStmt: n->kind = TRANS_STMT_ROLLBACK_PREPARED; n->gid = $3; + n->location = @3; $$ = (Node *) n; } ; @@ -10989,6 +11154,7 @@ TransactionStmtLegacy: n->kind = TRANS_STMT_BEGIN; n->options = $3; + n->location = -1; $$ = (Node *) n; } | END_P opt_transaction opt_transaction_chain @@ -10998,6 +11164,7 @@ TransactionStmtLegacy: n->kind = TRANS_STMT_COMMIT; n->options = NIL; n->chain = $3; + n->location = -1; $$ = (Node *) n; } ; @@ -11430,7 +11597,7 @@ AlterDomainStmt: $$ = (Node *) n; } /* ALTER DOMAIN ADD CONSTRAINT ... */ - | ALTER DOMAIN_P any_name ADD_P TableConstraint + | ALTER DOMAIN_P any_name ADD_P DomainConstraint { AlterDomainStmt *n = makeNode(AlterDomainStmt); @@ -11601,35 +11768,44 @@ CreateConversionStmt: /***************************************************************************** * * QUERY: - * CLUSTER [VERBOSE] [ USING ] - * CLUSTER [ (options) ] [ USING ] - * CLUSTER [VERBOSE] + * CLUSTER (options) [ [ USING ] ] + * CLUSTER [VERBOSE] [ [ USING ] ] * CLUSTER [VERBOSE] ON (for pre-8.3) * *****************************************************************************/ ClusterStmt: - CLUSTER opt_verbose qualified_name cluster_index_specification + CLUSTER '(' utility_option_list ')' qualified_name cluster_index_specification { ClusterStmt *n = makeNode(ClusterStmt); - n->relation = $3; - n->indexname = $4; - n->params = NIL; - if ($2) - n->params = lappend(n->params, makeDefElem("verbose", NULL, @2)); + n->relation = $5; + n->indexname = $6; + n->params = $3; $$ = (Node *) n; } - - | CLUSTER '(' utility_option_list ')' qualified_name cluster_index_specification + | CLUSTER '(' utility_option_list ')' { ClusterStmt *n = makeNode(ClusterStmt); - n->relation = $5; - n->indexname = $6; + n->relation = NULL; + n->indexname = NULL; n->params = $3; $$ = (Node *) n; } + /* unparenthesized VERBOSE kept for pre-14 compatibility */ + | CLUSTER opt_verbose qualified_name cluster_index_specification + { + ClusterStmt *n = makeNode(ClusterStmt); + + n->relation = $3; + n->indexname = $4; + n->params = NIL; + if ($2) + n->params = lappend(n->params, makeDefElem("verbose", NULL, @2)); + $$ = (Node *) n; + } + /* unparenthesized VERBOSE kept for pre-17 compatibility */ | CLUSTER opt_verbose { ClusterStmt *n = makeNode(ClusterStmt); @@ -11960,6 +12136,8 @@ DeallocateStmt: DEALLOCATE name DeallocateStmt *n = makeNode(DeallocateStmt); n->name = $2; + n->isall = false; + n->location = @2; $$ = (Node *) n; } | DEALLOCATE PREPARE name @@ -11967,6 +12145,8 @@ DeallocateStmt: DEALLOCATE name DeallocateStmt *n = makeNode(DeallocateStmt); n->name = $3; + n->isall = false; + n->location = @3; $$ = (Node *) n; } | DEALLOCATE ALL @@ -11974,6 +12154,8 @@ DeallocateStmt: DEALLOCATE name DeallocateStmt *n = makeNode(DeallocateStmt); n->name = NULL; + n->isall = true; + n->location = -1; $$ = (Node *) n; } | DEALLOCATE PREPARE ALL @@ -11981,6 +12163,8 @@ DeallocateStmt: DEALLOCATE name DeallocateStmt *n = makeNode(DeallocateStmt); n->name = NULL; + n->isall = true; + n->location = -1; $$ = (Node *) n; } ; @@ -12294,6 +12478,7 @@ MergeStmt: USING table_ref ON a_expr merge_when_list + returning_clause { MergeStmt *m = makeNode(MergeStmt); @@ -12302,6 +12487,7 @@ MergeStmt: m->sourceRelation = $6; m->joinCondition = $8; m->mergeWhenClauses = $9; + m->returningList = $10; $$ = (Node *) m; } @@ -12312,50 +12498,66 @@ merge_when_list: | merge_when_list merge_when_clause { $$ = lappend($1,$2); } ; +/* + * A WHEN clause may be WHEN MATCHED, WHEN NOT MATCHED BY SOURCE, or WHEN NOT + * MATCHED [BY TARGET]. The first two cases match target tuples, and support + * UPDATE/DELETE/DO NOTHING actions. The third case does not match target + * tuples, and only supports INSERT/DO NOTHING actions. + */ merge_when_clause: - WHEN MATCHED opt_merge_when_condition THEN merge_update + merge_when_tgt_matched opt_merge_when_condition THEN merge_update { - $5->matched = true; - $5->condition = $3; + $4->matchKind = $1; + $4->condition = $2; - $$ = (Node *) $5; + $$ = (Node *) $4; } - | WHEN MATCHED opt_merge_when_condition THEN merge_delete + | merge_when_tgt_matched opt_merge_when_condition THEN merge_delete { - $5->matched = true; - $5->condition = $3; + $4->matchKind = $1; + $4->condition = $2; - $$ = (Node *) $5; + $$ = (Node *) $4; } - | WHEN NOT MATCHED opt_merge_when_condition THEN merge_insert + | merge_when_tgt_not_matched opt_merge_when_condition THEN merge_insert { - $6->matched = false; - $6->condition = $4; + $4->matchKind = $1; + $4->condition = $2; - $$ = (Node *) $6; + $$ = (Node *) $4; } - | WHEN MATCHED opt_merge_when_condition THEN DO NOTHING + | merge_when_tgt_matched opt_merge_when_condition THEN DO NOTHING { MergeWhenClause *m = makeNode(MergeWhenClause); - m->matched = true; + m->matchKind = $1; m->commandType = CMD_NOTHING; - m->condition = $3; + m->condition = $2; $$ = (Node *) m; } - | WHEN NOT MATCHED opt_merge_when_condition THEN DO NOTHING + | merge_when_tgt_not_matched opt_merge_when_condition THEN DO NOTHING { MergeWhenClause *m = makeNode(MergeWhenClause); - m->matched = false; + m->matchKind = $1; m->commandType = CMD_NOTHING; - m->condition = $4; + m->condition = $2; $$ = (Node *) m; } ; +merge_when_tgt_matched: + WHEN MATCHED { $$ = MERGE_WHEN_MATCHED; } + | WHEN NOT MATCHED BY SOURCE { $$ = MERGE_WHEN_NOT_MATCHED_BY_SOURCE; } + ; + +merge_when_tgt_not_matched: + WHEN NOT MATCHED { $$ = MERGE_WHEN_NOT_MATCHED_BY_TARGET; } + | WHEN NOT MATCHED BY TARGET { $$ = MERGE_WHEN_NOT_MATCHED_BY_TARGET; } + ; + opt_merge_when_condition: AND a_expr { $$ = $2; } | { $$ = NULL; } @@ -13362,6 +13564,21 @@ table_ref: relation_expr opt_alias_clause $2->alias = $4; $$ = (Node *) $2; } + | json_table opt_alias_clause + { + JsonTable *jt = castNode(JsonTable, $1); + + jt->alias = $2; + $$ = (Node *) jt; + } + | LATERAL_P json_table opt_alias_clause + { + JsonTable *jt = castNode(JsonTable, $2); + + jt->alias = $3; + jt->lateral = true; + $$ = (Node *) jt; + } ; @@ -13929,6 +14146,8 @@ xmltable_column_option_el: { $$ = makeDefElem("is_not_null", (Node *) makeBoolean(true), @1); } | NULL_P { $$ = makeDefElem("is_not_null", (Node *) makeBoolean(false), @1); } + | PATH b_expr + { $$ = makeDefElem("path", $2, @1); } ; xml_namespace_list: @@ -13957,6 +14176,152 @@ xml_namespace_el: } ; +json_table: + JSON_TABLE '(' + json_value_expr ',' a_expr json_table_path_name_opt + json_passing_clause_opt + COLUMNS '(' json_table_column_definition_list ')' + json_on_error_clause_opt + ')' + { + JsonTable *n = makeNode(JsonTable); + char *pathstring; + + n->context_item = (JsonValueExpr *) $3; + if (!IsA($5, A_Const) || + castNode(A_Const, $5)->val.node.type != T_String) + ereport(ERROR, + errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("only string constants are supported in JSON_TABLE path specification"), + parser_errposition(@5)); + pathstring = castNode(A_Const, $5)->val.sval.sval; + n->pathspec = makeJsonTablePathSpec(pathstring, $6, @5, @6); + n->passing = $7; + n->columns = $10; + n->on_error = (JsonBehavior *) $12; + n->location = @1; + $$ = (Node *) n; + } + ; + +json_table_path_name_opt: + AS name { $$ = $2; } + | /* empty */ { $$ = NULL; } + ; + +json_table_column_definition_list: + json_table_column_definition + { $$ = list_make1($1); } + | json_table_column_definition_list ',' json_table_column_definition + { $$ = lappend($1, $3); } + ; + +json_table_column_definition: + ColId FOR ORDINALITY + { + JsonTableColumn *n = makeNode(JsonTableColumn); + + n->coltype = JTC_FOR_ORDINALITY; + n->name = $1; + n->location = @1; + $$ = (Node *) n; + } + | ColId Typename + json_table_column_path_clause_opt + json_wrapper_behavior + json_quotes_clause_opt + json_behavior_clause_opt + { + JsonTableColumn *n = makeNode(JsonTableColumn); + + n->coltype = JTC_REGULAR; + n->name = $1; + n->typeName = $2; + n->format = makeJsonFormat(JS_FORMAT_DEFAULT, JS_ENC_DEFAULT, -1); + n->pathspec = (JsonTablePathSpec *) $3; + n->wrapper = $4; + n->quotes = $5; + n->on_empty = (JsonBehavior *) linitial($6); + n->on_error = (JsonBehavior *) lsecond($6); + n->location = @1; + $$ = (Node *) n; + } + | ColId Typename json_format_clause + json_table_column_path_clause_opt + json_wrapper_behavior + json_quotes_clause_opt + json_behavior_clause_opt + { + JsonTableColumn *n = makeNode(JsonTableColumn); + + n->coltype = JTC_FORMATTED; + n->name = $1; + n->typeName = $2; + n->format = (JsonFormat *) $3; + n->pathspec = (JsonTablePathSpec *) $4; + n->wrapper = $5; + n->quotes = $6; + n->on_empty = (JsonBehavior *) linitial($7); + n->on_error = (JsonBehavior *) lsecond($7); + n->location = @1; + $$ = (Node *) n; + } + | ColId Typename + EXISTS json_table_column_path_clause_opt + json_on_error_clause_opt + { + JsonTableColumn *n = makeNode(JsonTableColumn); + + n->coltype = JTC_EXISTS; + n->name = $1; + n->typeName = $2; + n->format = makeJsonFormat(JS_FORMAT_DEFAULT, JS_ENC_DEFAULT, -1); + n->wrapper = JSW_NONE; + n->quotes = JS_QUOTES_UNSPEC; + n->pathspec = (JsonTablePathSpec *) $4; + n->on_empty = NULL; + n->on_error = (JsonBehavior *) $5; + n->location = @1; + $$ = (Node *) n; + } + | NESTED path_opt Sconst + COLUMNS '(' json_table_column_definition_list ')' + { + JsonTableColumn *n = makeNode(JsonTableColumn); + + n->coltype = JTC_NESTED; + n->pathspec = (JsonTablePathSpec *) + makeJsonTablePathSpec($3, NULL, @3, -1); + n->columns = $6; + n->location = @1; + $$ = (Node *) n; + } + | NESTED path_opt Sconst AS name + COLUMNS '(' json_table_column_definition_list ')' + { + JsonTableColumn *n = makeNode(JsonTableColumn); + + n->coltype = JTC_NESTED; + n->pathspec = (JsonTablePathSpec *) + makeJsonTablePathSpec($3, $5, @3, @5); + n->columns = $8; + n->location = @1; + $$ = (Node *) n; + } + ; + +path_opt: + PATH + | /* EMPTY */ + ; + +json_table_column_path_clause_opt: + PATH Sconst + { $$ = (Node *) makeJsonTablePathSpec($2, NULL, @2, -1); } + | /* EMPTY */ + { $$ = NULL; } + ; + /***************************************************************************** * * Type syntax @@ -14029,6 +14394,7 @@ SimpleTypename: $$->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1), makeIntConst($3, @3)); } + | JsonType { $$ = $1; } ; /* We have a separate ConstTypename to allow defaulting fixed-length @@ -14047,6 +14413,7 @@ ConstTypename: | ConstBit { $$ = $1; } | ConstCharacter { $$ = $1; } | ConstDatetime { $$ = $1; } + | JsonType { $$ = $1; } ; /* @@ -14415,6 +14782,13 @@ interval_second: } ; +JsonType: + JSON + { + $$ = SystemTypeName("json"); + $$->location = @1; + } + ; /***************************************************************************** * @@ -14463,6 +14837,13 @@ a_expr: c_expr { $$ = $1; } COERCE_SQL_SYNTAX, @2); } + | a_expr AT LOCAL %prec AT + { + $$ = (Node *) makeFuncCall(SystemFuncName("timezone"), + list_make1($1), + COERCE_SQL_SYNTAX, + -1); + } /* * These operators must be called out explicitly in order to make use * of bison's automatic operator-precedence handling. All other @@ -14895,12 +15276,11 @@ a_expr: c_expr { $$ = $1; } /* * Required by SQL/JSON, but there are conflicts | a_expr - FORMAT_LA JSON json_encoding_clause_opt + json_format_clause IS json_predicate_type_constraint json_key_uniqueness_constraint_opt %prec IS { - $3.location = @2; - $$ = makeJsonIsPredicate($1, $3, $5, $6, @1); + $$ = makeJsonIsPredicate($1, $2, $4, $5, @1); } */ | a_expr IS NOT @@ -14914,13 +15294,12 @@ a_expr: c_expr { $$ = $1; } /* * Required by SQL/JSON, but there are conflicts | a_expr - FORMAT_LA JSON json_encoding_clause_opt + json_format_clause IS NOT json_predicate_type_constraint json_key_uniqueness_constraint_opt %prec IS { - $3.location = @2; - $$ = makeNotExpr(makeJsonIsPredicate($1, $3, $6, $7, @1), @1); + $$ = makeNotExpr(makeJsonIsPredicate($1, $2, $5, $6, @1), @1); } */ | DEFAULT @@ -15291,7 +15670,7 @@ func_expr: func_application within_group_clause filter_clause over_clause ; /* - * As func_expr but does not accept WINDOW functions directly + * Like func_expr but does not accept WINDOW functions directly * (but they can still be contained in arguments for functions etc). * Use this when window expressions are not allowed, where needed to * disambiguate the grammar (e.g. in CREATE INDEX). @@ -15609,7 +15988,7 @@ func_expr_common_subexpr: | JSON_OBJECT '(' json_name_and_value_list json_object_constructor_null_clause_opt json_key_uniqueness_constraint_opt - json_output_clause_opt ')' + json_returning_clause_opt ')' { JsonObjectConstructor *n = makeNode(JsonObjectConstructor); @@ -15620,7 +15999,7 @@ func_expr_common_subexpr: n->location = @1; $$ = (Node *) n; } - | JSON_OBJECT '(' json_output_clause_opt ')' + | JSON_OBJECT '(' json_returning_clause_opt ')' { JsonObjectConstructor *n = makeNode(JsonObjectConstructor); @@ -15634,7 +16013,7 @@ func_expr_common_subexpr: | JSON_ARRAY '(' json_value_expr_list json_array_constructor_null_clause_opt - json_output_clause_opt + json_returning_clause_opt ')' { JsonArrayConstructor *n = makeNode(JsonArrayConstructor); @@ -15649,7 +16028,7 @@ func_expr_common_subexpr: select_no_parens json_format_clause_opt /* json_array_constructor_null_clause_opt */ - json_output_clause_opt + json_returning_clause_opt ')' { JsonArrayQueryConstructor *n = makeNode(JsonArrayQueryConstructor); @@ -15662,7 +16041,7 @@ func_expr_common_subexpr: $$ = (Node *) n; } | JSON_ARRAY '(' - json_output_clause_opt + json_returning_clause_opt ')' { JsonArrayConstructor *n = makeNode(JsonArrayConstructor); @@ -15673,7 +16052,100 @@ func_expr_common_subexpr: n->location = @1; $$ = (Node *) n; } - ; + | JSON '(' json_value_expr json_key_uniqueness_constraint_opt ')' + { + JsonParseExpr *n = makeNode(JsonParseExpr); + + n->expr = (JsonValueExpr *) $3; + n->unique_keys = $4; + n->output = NULL; + n->location = @1; + $$ = (Node *) n; + } + | JSON_SCALAR '(' a_expr ')' + { + JsonScalarExpr *n = makeNode(JsonScalarExpr); + + n->expr = (Expr *) $3; + n->output = NULL; + n->location = @1; + $$ = (Node *) n; + } + | JSON_SERIALIZE '(' json_value_expr json_returning_clause_opt ')' + { + JsonSerializeExpr *n = makeNode(JsonSerializeExpr); + + n->expr = (JsonValueExpr *) $3; + n->output = (JsonOutput *) $4; + n->location = @1; + $$ = (Node *) n; + } + | MERGE_ACTION '(' ')' + { + MergeSupportFunc *m = makeNode(MergeSupportFunc); + + m->msftype = TEXTOID; + m->location = @1; + $$ = (Node *) m; + } + | JSON_QUERY '(' + json_value_expr ',' a_expr json_passing_clause_opt + json_returning_clause_opt + json_wrapper_behavior + json_quotes_clause_opt + json_behavior_clause_opt + ')' + { + JsonFuncExpr *n = makeNode(JsonFuncExpr); + + n->op = JSON_QUERY_OP; + n->context_item = (JsonValueExpr *) $3; + n->pathspec = $5; + n->passing = $6; + n->output = (JsonOutput *) $7; + n->wrapper = $8; + n->quotes = $9; + n->on_empty = (JsonBehavior *) linitial($10); + n->on_error = (JsonBehavior *) lsecond($10); + n->location = @1; + $$ = (Node *) n; + } + | JSON_EXISTS '(' + json_value_expr ',' a_expr json_passing_clause_opt + json_on_error_clause_opt + ')' + { + JsonFuncExpr *n = makeNode(JsonFuncExpr); + + n->op = JSON_EXISTS_OP; + n->context_item = (JsonValueExpr *) $3; + n->pathspec = $5; + n->passing = $6; + n->output = NULL; + n->on_error = (JsonBehavior *) $7; + n->location = @1; + $$ = (Node *) n; + } + | JSON_VALUE '(' + json_value_expr ',' a_expr json_passing_clause_opt + json_returning_clause_opt + json_behavior_clause_opt + ')' + { + JsonFuncExpr *n = makeNode(JsonFuncExpr); + + n->op = JSON_VALUE_OP; + n->context_item = (JsonValueExpr *) $3; + n->pathspec = $5; + n->passing = $6; + n->output = (JsonOutput *) $7; + n->on_empty = (JsonBehavior *) linitial($8); + n->on_error = (JsonBehavior *) lsecond($8); + n->location = @1; + $$ = (Node *) n; + } + ; + /* * SQL/XML support @@ -16402,6 +16874,77 @@ opt_asymmetric: ASYMMETRIC ; /* SQL/JSON support */ +json_passing_clause_opt: + PASSING json_arguments { $$ = $2; } + | /*EMPTY*/ { $$ = NIL; } + ; + +json_arguments: + json_argument { $$ = list_make1($1); } + | json_arguments ',' json_argument { $$ = lappend($1, $3); } + ; + +json_argument: + json_value_expr AS ColLabel + { + JsonArgument *n = makeNode(JsonArgument); + + n->val = (JsonValueExpr *) $1; + n->name = $3; + $$ = (Node *) n; + } + ; + +/* ARRAY is a noise word */ +json_wrapper_behavior: + WITHOUT WRAPPER { $$ = JSW_NONE; } + | WITHOUT ARRAY WRAPPER { $$ = JSW_NONE; } + | WITH WRAPPER { $$ = JSW_UNCONDITIONAL; } + | WITH ARRAY WRAPPER { $$ = JSW_UNCONDITIONAL; } + | WITH CONDITIONAL ARRAY WRAPPER { $$ = JSW_CONDITIONAL; } + | WITH UNCONDITIONAL ARRAY WRAPPER { $$ = JSW_UNCONDITIONAL; } + | WITH CONDITIONAL WRAPPER { $$ = JSW_CONDITIONAL; } + | WITH UNCONDITIONAL WRAPPER { $$ = JSW_UNCONDITIONAL; } + | /* empty */ { $$ = JSW_UNSPEC; } + ; + +json_behavior: + DEFAULT a_expr + { $$ = (Node *) makeJsonBehavior(JSON_BEHAVIOR_DEFAULT, $2, @1); } + | json_behavior_type + { $$ = (Node *) makeJsonBehavior($1, NULL, @1); } + ; + +json_behavior_type: + ERROR_P { $$ = JSON_BEHAVIOR_ERROR; } + | NULL_P { $$ = JSON_BEHAVIOR_NULL; } + | TRUE_P { $$ = JSON_BEHAVIOR_TRUE; } + | FALSE_P { $$ = JSON_BEHAVIOR_FALSE; } + | UNKNOWN { $$ = JSON_BEHAVIOR_UNKNOWN; } + | EMPTY_P ARRAY { $$ = JSON_BEHAVIOR_EMPTY_ARRAY; } + | EMPTY_P OBJECT_P { $$ = JSON_BEHAVIOR_EMPTY_OBJECT; } + /* non-standard, for Oracle compatibility only */ + | EMPTY_P { $$ = JSON_BEHAVIOR_EMPTY_ARRAY; } + ; + +json_behavior_clause_opt: + json_behavior ON EMPTY_P + { $$ = list_make2($1, NULL); } + | json_behavior ON ERROR_P + { $$ = list_make2(NULL, $1); } + | json_behavior ON EMPTY_P json_behavior ON ERROR_P + { $$ = list_make2($1, $4); } + | /* EMPTY */ + { $$ = list_make2(NULL, NULL); } + ; + +json_on_error_clause_opt: + json_behavior ON ERROR_P + { $$ = $1; } + | /* EMPTY */ + { $$ = NULL; } + ; + json_value_expr: a_expr json_format_clause_opt { @@ -16411,10 +16954,34 @@ json_value_expr: } ; +json_format_clause: + FORMAT_LA JSON ENCODING name + { + int encoding; + + if (!pg_strcasecmp($4, "utf8")) + encoding = JS_ENC_UTF8; + else if (!pg_strcasecmp($4, "utf16")) + encoding = JS_ENC_UTF16; + else if (!pg_strcasecmp($4, "utf32")) + encoding = JS_ENC_UTF32; + else + ereport(ERROR, + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("unrecognized JSON encoding: %s", $4)); + + $$ = (Node *) makeJsonFormat(JS_FORMAT_JSON, encoding, @1); + } + | FORMAT_LA JSON + { + $$ = (Node *) makeJsonFormat(JS_FORMAT_JSON, JS_ENC_DEFAULT, @1); + } + ; + json_format_clause_opt: - FORMAT_LA JSON json_encoding_clause_opt + json_format_clause { - $$ = (Node *) makeJsonFormat(JS_FORMAT_JSON, $3, @1); + $$ = $1; } | /* EMPTY */ { @@ -16422,12 +16989,15 @@ json_format_clause_opt: } ; -json_encoding_clause_opt: - ENCODING name { $$ = makeJsonEncoding($2); } - | /* EMPTY */ { $$ = JS_ENC_DEFAULT; } +json_quotes_clause_opt: + KEEP QUOTES ON SCALAR STRING_P { $$ = JS_QUOTES_KEEP; } + | KEEP QUOTES { $$ = JS_QUOTES_KEEP; } + | OMIT QUOTES ON SCALAR STRING_P { $$ = JS_QUOTES_OMIT; } + | OMIT QUOTES { $$ = JS_QUOTES_OMIT; } + | /* EMPTY */ { $$ = JS_QUOTES_UNSPEC; } ; -json_output_clause_opt: +json_returning_clause_opt: RETURNING Typename json_format_clause_opt { JsonOutput *n = makeNode(JsonOutput); @@ -16440,21 +17010,35 @@ json_output_clause_opt: | /* EMPTY */ { $$ = NULL; } ; +/* + * We must assign the only-JSON production a precedence less than IDENT in + * order to favor shifting over reduction when JSON is followed by VALUE_P, + * OBJECT_P, or SCALAR. (ARRAY doesn't need that treatment, because it's a + * fully reserved word.) Because json_predicate_type_constraint is always + * followed by json_key_uniqueness_constraint_opt, we also need the only-JSON + * production to have precedence less than WITH and WITHOUT. UNBOUNDED isn't + * really related to this syntax, but it's a convenient choice because it + * already has a precedence less than IDENT for other reasons. + */ json_predicate_type_constraint: - JSON { $$ = JS_TYPE_ANY; } + JSON %prec UNBOUNDED { $$ = JS_TYPE_ANY; } | JSON VALUE_P { $$ = JS_TYPE_ANY; } | JSON ARRAY { $$ = JS_TYPE_ARRAY; } | JSON OBJECT_P { $$ = JS_TYPE_OBJECT; } | JSON SCALAR { $$ = JS_TYPE_SCALAR; } ; -/* KEYS is a noise word here */ +/* + * KEYS is a noise word here. To avoid shift/reduce conflicts, assign the + * KEYS-less productions a precedence less than IDENT (i.e., less than KEYS). + * This prevents reducing them when the next token is KEYS. + */ json_key_uniqueness_constraint_opt: WITH UNIQUE KEYS { $$ = true; } - | WITH UNIQUE { $$ = true; } + | WITH UNIQUE %prec UNBOUNDED { $$ = true; } | WITHOUT UNIQUE KEYS { $$ = false; } - | WITHOUT UNIQUE { $$ = false; } - | /* EMPTY */ %prec KEYS { $$ = false; } + | WITHOUT UNIQUE %prec UNBOUNDED { $$ = false; } + | /* EMPTY */ %prec UNBOUNDED { $$ = false; } ; json_name_and_value_list: @@ -16500,7 +17084,7 @@ json_aggregate_func: json_name_and_value json_object_constructor_null_clause_opt json_key_uniqueness_constraint_opt - json_output_clause_opt + json_returning_clause_opt ')' { JsonObjectAgg *n = makeNode(JsonObjectAgg); @@ -16518,7 +17102,7 @@ json_aggregate_func: json_value_expr json_array_aggregate_order_by_clause_opt json_array_constructor_null_clause_opt - json_output_clause_opt + json_returning_clause_opt ')' { JsonArrayAgg *n = makeNode(JsonArrayAgg); @@ -17085,6 +17669,7 @@ unreserved_keyword: | COMMIT | COMMITTED | COMPRESSION + | CONDITIONAL | CONFIGURATION | CONFLICT | CONNECTION @@ -17121,10 +17706,12 @@ unreserved_keyword: | DOUBLE_P | DROP | EACH + | EMPTY_P | ENABLE_P | ENCODING | ENCRYPTED | ENUM_P + | ERROR_P | ESCAPE | EVENT | EXCLUDE @@ -17174,7 +17761,7 @@ unreserved_keyword: | INSTEAD | INVOKER | ISOLATION - | JSON + | KEEP | KEY | KEYS | LABEL @@ -17204,6 +17791,7 @@ unreserved_keyword: | MOVE | NAME_P | NAMES + | NESTED | NEW | NEXT | NFC @@ -17221,6 +17809,7 @@ unreserved_keyword: | OFF | OIDS | OLD + | OMIT | OPERATOR | OPTION | OPTIONS @@ -17237,6 +17826,8 @@ unreserved_keyword: | PARTITION | PASSING | PASSWORD + | PATH + | PLAN | PLANS | POLICY | PRECEDING @@ -17251,6 +17842,7 @@ unreserved_keyword: | PROGRAM | PUBLICATION | QUOTE + | QUOTES | RANGE | READ | REASSIGN @@ -17299,6 +17891,7 @@ unreserved_keyword: | SIMPLE | SKIP | SNAPSHOT + | SOURCE | SQL_P | STABLE | STANDALONE_P @@ -17310,6 +17903,7 @@ unreserved_keyword: | STORAGE | STORED | STRICT_P + | STRING_P | STRIP_P | SUBSCRIPTION | SUPPORT @@ -17317,6 +17911,7 @@ unreserved_keyword: | SYSTEM_P | TABLES | TABLESPACE + | TARGET | TEMP | TEMPLATE | TEMPORARY @@ -17332,6 +17927,7 @@ unreserved_keyword: | UESCAPE | UNBOUNDED | UNCOMMITTED + | UNCONDITIONAL | UNENCRYPTED | UNKNOWN | UNLISTEN @@ -17389,11 +17985,19 @@ col_name_keyword: | INT_P | INTEGER | INTERVAL + | JSON | JSON_ARRAY | JSON_ARRAYAGG + | JSON_EXISTS | JSON_OBJECT | JSON_OBJECTAGG + | JSON_QUERY + | JSON_SCALAR + | JSON_SERIALIZE + | JSON_TABLE + | JSON_VALUE | LEAST + | MERGE_ACTION | NATIONAL | NCHAR | NONE @@ -17625,6 +18229,7 @@ bare_label_keyword: | COMMITTED | COMPRESSION | CONCURRENTLY + | CONDITIONAL | CONFIGURATION | CONFLICT | CONNECTION @@ -17677,11 +18282,13 @@ bare_label_keyword: | DROP | EACH | ELSE + | EMPTY_P | ENABLE_P | ENCODING | ENCRYPTED | END_P | ENUM_P + | ERROR_P | ESCAPE | EVENT | EXCLUDE @@ -17751,8 +18358,15 @@ bare_label_keyword: | JSON | JSON_ARRAY | JSON_ARRAYAGG + | JSON_EXISTS | JSON_OBJECT | JSON_OBJECTAGG + | JSON_QUERY + | JSON_SCALAR + | JSON_SERIALIZE + | JSON_TABLE + | JSON_VALUE + | KEEP | KEY | KEYS | LABEL @@ -17781,6 +18395,7 @@ bare_label_keyword: | MATERIALIZED | MAXVALUE | MERGE + | MERGE_ACTION | METHOD | MINVALUE | MODE @@ -17790,6 +18405,7 @@ bare_label_keyword: | NATIONAL | NATURAL | NCHAR + | NESTED | NEW | NEXT | NFC @@ -17813,6 +18429,7 @@ bare_label_keyword: | OFF | OIDS | OLD + | OMIT | ONLY | OPERATOR | OPTION @@ -17833,7 +18450,9 @@ bare_label_keyword: | PARTITION | PASSING | PASSWORD + | PATH | PLACING + | PLAN | PLANS | POLICY | POSITION @@ -17850,6 +18469,7 @@ bare_label_keyword: | PROGRAM | PUBLICATION | QUOTE + | QUOTES | RANGE | READ | REAL @@ -17907,6 +18527,7 @@ bare_label_keyword: | SMALLINT | SNAPSHOT | SOME + | SOURCE | SQL_P | STABLE | STANDALONE_P @@ -17918,6 +18539,7 @@ bare_label_keyword: | STORAGE | STORED | STRICT_P + | STRING_P | STRIP_P | SUBSCRIPTION | SUBSTRING @@ -17930,6 +18552,7 @@ bare_label_keyword: | TABLES | TABLESAMPLE | TABLESPACE + | TARGET | TEMP | TEMPLATE | TEMPORARY @@ -17952,6 +18575,7 @@ bare_label_keyword: | UESCAPE | UNBOUNDED | UNCOMMITTED + | UNCONDITIONAL | UNENCRYPTED | UNIQUE | UNKNOWN @@ -18098,18 +18722,6 @@ makeTypeCast(Node *arg, TypeName *typename, int location) return (Node *) n; } -static Node * -makeStringConst(char *str, int location) -{ - A_Const *n = makeNode(A_Const); - - n->val.sval.type = T_String; - n->val.sval.sval = str; - n->location = location; - - return (Node *) n; -} - static Node * makeStringConstCast(char *str, int location, TypeName *typename) { @@ -18408,7 +19020,7 @@ insertSelectOptions(SelectStmt *stmt, parser_errposition(exprLocation(limitClause->limitCount)))); stmt->limitCount = limitClause->limitCount; } - if (limitClause && limitClause->limitOption != LIMIT_OPTION_DEFAULT) + if (limitClause) { if (stmt->limitOption) ereport(ERROR, diff --git a/crates/parser-generator/src/parser_generator.rs b/crates/parser-generator/src/parser_generator.rs index 9b23221..5017cde 100644 --- a/crates/parser-generator/src/parser_generator.rs +++ b/crates/parser-generator/src/parser_generator.rs @@ -6,66 +6,249 @@ mod id_mapper; mod lalr; mod lexer; -use std::{io::BufReader, process::Command}; +use std::{collections::BTreeMap, process::Command}; use bison::Bison; -use miniz_oxide::deflate::compress_to_vec; use crate::parser_generator::{bison::Action, lexer::TokenKind}; use self::{ - bison::{parse_bison, Component}, + bison::{Component, parse_bison}, lalr::Lalr, }; -fn build_action_table(lalr: &Lalr, terminal_symbols: &Vec) -> Vec { - let mut action_table = Vec::new(); +const ERROR_ACTION_CODE: i16 = 0x7FFF; +const DEFAULT_ACTION_CODE: i16 = 0x7FFE; +const UNUSED_ENTRY_CODE: i16 = !0; +const INVALID_GOTO_CODE: i16 = -1; + +/// Compressed parser table with lookup optimization +#[derive(Debug, Clone)] +struct CompressedParserTable { + state_to_offset: Vec, + compressed_values: Vec, + index_check: Vec, +} + +/// 構文解析表を圧縮する +/// 圧縮後の構文解析表は以下の条件を満たす +/// 状態iのエントリーは state_to_offset[i] から始まり、j番目の終端記号の情報は state_to_offset[i+j] に格納される +/// index_check[i+j] == j の場合、そのエントリーには compressed_values[i+j] には有効なアクションの値が格納されている +/// index_check[i+j] != j の場合はエラー状態であることを示す +/// compressed_values[i+j] == ERROR_ACTION_CODE の場合、エラーであることを示す +/// compressed_values[i+j] == DEFAULT_ACTION_CODE の場合、デフォルトアクションの値が格納されていることを示す +/// compressed_values[i+j] にそれ以外の値が含まれている場合、プラスの値であればシフトを、負の値であればリデュースを、0であればアクセプトを示す +fn compress_action_table( + lalr: &Lalr, + terminal_symbols: &Vec, +) -> (CompressedParserTable, Vec) { + let mut uncompressed_action_table = Vec::new(); for i in 0..lalr.state_set.states.len() { for terminal_symbol in terminal_symbols { let cid = lalr.id_mapper.to_component_id(terminal_symbol); match lalr.action_table.get(&(i, cid)) { Some(Action::Shift(s)) => { - action_table.push((*s as i16) + 1); + uncompressed_action_table.push((*s as i16) + 1); } Some(Action::Reduce(r)) => { - action_table.push(-(*r as i16) - 1); + uncompressed_action_table.push(-(*r as i16) - 1); } - Some(Action::Accept) => action_table.push(0), - Some(Action::Error) => action_table.push(0x7FFF), - None => action_table.push(0x7FFF), + Some(Action::Accept) => uncompressed_action_table.push(0), + Some(Action::Error) => uncompressed_action_table.push(ERROR_ACTION_CODE), + None => uncompressed_action_table.push(ERROR_ACTION_CODE), } } } - compress(action_table) + let mut state_to_offset = vec![0; lalr.state_set.states.len()]; + let mut compressed_values = + vec![ERROR_ACTION_CODE; terminal_symbols.len() * uncompressed_action_table.len()]; + let mut index_check = + vec![UNUSED_ENTRY_CODE; terminal_symbols.len() * uncompressed_action_table.len()]; + let mut offset_used = vec![false; terminal_symbols.len() * uncompressed_action_table.len()]; + let mut state_default_actions = vec![0; lalr.state_set.states.len()]; + + fn find_most_common_action( + uncompressed_action_table: &[i16], + state_index: usize, + terminal_symbols: &[Component], + ) -> i16 { + let mut cnt: BTreeMap = BTreeMap::new(); + for j in 0..terminal_symbols.len() { + let a = uncompressed_action_table[state_index * terminal_symbols.len() + j]; + if a != ERROR_ACTION_CODE { + *cnt.entry(a).or_default() += 1; + } + } + + cnt.iter().max_by_key(|(_, v)| *v).map(|(k, _)| *k).unwrap() + } + + for state_index in 0..lalr.state_set.states.len() { + let state_def_rule = + find_most_common_action(&uncompressed_action_table, state_index, terminal_symbols); + let row = { + let mut row = vec![0; terminal_symbols.len()]; + + for j in 0..terminal_symbols.len() { + let a = uncompressed_action_table[state_index * terminal_symbols.len() + j]; + let a = if a == state_def_rule { + DEFAULT_ACTION_CODE + } else { + a + }; + + row[j] = a; + } + + row + }; + + for i in 0.. { + let mut ok = true; + + for j in 0..terminal_symbols.len() { + let a = row[j]; + + if a == ERROR_ACTION_CODE { + if index_check[i + j] == j as i16 { + ok = false; + break; + } + } else if index_check[i + j] == j as i16 { + if compressed_values[i + j] != a { + ok = false; + break; + } + } else if index_check[i + j] != UNUSED_ENTRY_CODE || offset_used[i] { + ok = false; + break; + } + } + + if !ok { + continue; + } + + state_to_offset[state_index] = i as u32; + state_default_actions[state_index] = state_def_rule; + offset_used[i] = true; + + for j in 0..terminal_symbols.len() { + let a = row[j]; + if a != ERROR_ACTION_CODE { + index_check[i + j] = j as i16; + compressed_values[i + j] = a; + } + } + break; + } + } + + let max_table_index = *state_to_offset.iter().max().unwrap() as usize + terminal_symbols.len(); + + let info = CompressedParserTable { + state_to_offset, + compressed_values: compressed_values[..max_table_index].to_vec(), + index_check: index_check[..max_table_index].to_vec(), + }; + + (info, state_default_actions) } -fn build_goto_table(lalr: &Lalr, non_terminal_symbols: &Vec) -> Vec { - let mut goto_table = Vec::new(); +/// goto tableを圧縮する +/// action tableとほぼ同様だが、デフォルトアクションに相当するものはない +fn compress_goto_table( + lalr: &Lalr, + non_terminal_symbols: &Vec, +) -> CompressedParserTable { + let mut base_goto_table = Vec::new(); for i in 0..lalr.state_set.states.len() { for non_terminal_symbol in non_terminal_symbols { let cid = lalr.id_mapper.to_component_id(non_terminal_symbol); match lalr.goto_table.get(&(i, cid)) { - Some(s) => goto_table.push(*s as i16), - None => goto_table.push(-1), + Some(s) => base_goto_table.push(*s as i16), + None => base_goto_table.push(INVALID_GOTO_CODE), + } + } + } + + let mut state_to_offset = vec![0; lalr.state_set.states.len()]; + let mut compressed_values = + vec![INVALID_GOTO_CODE; non_terminal_symbols.len() * base_goto_table.len()]; + let mut index_check = + vec![UNUSED_ENTRY_CODE; non_terminal_symbols.len() * base_goto_table.len()]; + let mut offset_used = vec![false; non_terminal_symbols.len() * base_goto_table.len()]; + + for state_index in 0..lalr.state_set.states.len() { + for i in 0..compressed_values.len() { + let mut ok = true; + + for j in 0..non_terminal_symbols.len() { + let a = base_goto_table[state_index * non_terminal_symbols.len() + j]; + + if a == INVALID_GOTO_CODE { + if index_check[i + j] == j as i16 { + ok = false; + break; + } + } else if index_check[i + j] == j as i16 { + if compressed_values[i + j] != a { + ok = false; + break; + } + } else if index_check[i + j] != UNUSED_ENTRY_CODE || offset_used[i] { + ok = false; + break; + } + } + + if !ok { + continue; } + + state_to_offset[state_index] = i as u32; + offset_used[i] = true; + + for j in 0..non_terminal_symbols.len() { + let a = base_goto_table[state_index * non_terminal_symbols.len() + j]; + if a != INVALID_GOTO_CODE { + index_check[i + j] = j as i16; + compressed_values[i + j] = a; + } + } + break; } } - compress(goto_table) + let max_table_index = + *state_to_offset.iter().max().unwrap() as usize + non_terminal_symbols.len(); + + CompressedParserTable { + state_to_offset, + compressed_values: compressed_values[..max_table_index].to_vec(), + index_check: index_check[..max_table_index].to_vec(), + } } -fn write_parser_file( +fn generate_parser_source_code( bison: &Bison, lalr: &Lalr, terminal_symbols: &Vec, non_terminal_symbols: &Vec, comments: &Vec, ) { - let action_table = build_action_table(lalr, &terminal_symbols); - let goto_table = build_goto_table(lalr, &non_terminal_symbols); + fn vec_to_string(vs: &[impl ToString]) -> String { + vs.iter() + .map(|v| v.to_string()) + .collect::>() + .join(",") + } + + let (action_table_info, def_rules) = compress_action_table(lalr, terminal_symbols); + let goto_table_info = compress_goto_table(lalr, non_terminal_symbols); let terminal_symbols_with_comment = terminal_symbols .iter() @@ -73,17 +256,23 @@ fn write_parser_file( .cloned() .collect::>(); - let action_table_str = action_table - .iter() - .map(|b| b.to_string()) - .collect::>() - .join(","); + let action_check_table_str = vec_to_string(&action_table_info.index_check); + let action_table_str = vec_to_string(&action_table_info.compressed_values); + let action_table_index_str = vec_to_string(&action_table_info.state_to_offset); + let def_rules_str = vec_to_string(&def_rules); - let goto_table_str = goto_table - .iter() - .map(|b| b.to_string()) - .collect::>() - .join(","); + let action_check_table_size = action_table_info.index_check.len().to_string(); + let action_table_size = action_table_info.compressed_values.len().to_string(); + let action_table_index_size = action_table_info.state_to_offset.len().to_string(); + let def_rules_size = def_rules.len().to_string(); + + let goto_check_table_str = vec_to_string(&goto_table_info.index_check); + let goto_table_str = vec_to_string(&goto_table_info.compressed_values); + let goto_table_index_str = vec_to_string(&goto_table_info.state_to_offset); + + let goto_check_table_size = goto_table_info.index_check.len().to_string(); + let goto_table_size = goto_table_info.compressed_values.len().to_string(); + let goto_table_index_size = goto_table_info.state_to_offset.len().to_string(); let end_rule_id = terminal_symbols .iter() @@ -103,7 +292,7 @@ fn write_parser_file( Component::Terminal(TokenKind::RAW(s)) => format!(r#"RAW(s) if s == "{}""#, s.trim_matches('\'')), Component::Terminal(TokenKind::KEYWORD(s)) => - format!(r#"KEYWORD(s) if s == "{}""#, s), + format!(r#"KEYWORD(s) if s == "{s}""#), Component::Terminal(s) => s.to_id(), _ => unreachable!(), }, @@ -112,7 +301,7 @@ fn write_parser_file( Component::Terminal(TokenKind::C_COMMENT) | Component::Terminal(TokenKind::SQL_COMMENT) ) { - // コメントは構文解析表の先読みトークンには含まれないので、非終端記号の分だけオフセットする + // Comments are not included in the parser lookahead tokens, so offset them by the number of non-terminal symbols i + non_terminal_symbols.len() } else { i @@ -144,7 +333,7 @@ fn write_parser_file( let num_non_terminal_symbol = non_terminal_symbols.len().to_string(); - let parser_template = include_str!("../resources/parser_template.rs") + let parser_template = include_str!("../templates/parser_template.rs") .replace("{num_terminal_symbol}", &terminal_symbols.len().to_string()) .replace("{num_non_terminal_symbol}", &num_non_terminal_symbol) .replace("{num_state}", &num_state) @@ -152,10 +341,20 @@ fn write_parser_file( .replace("{rule_name_to_component_id}", &rule_name_to_component_id) .replace("{num_parse_rules}", &bison.rules.len().to_string()) .replace("{parse_rules}", &parse_rules) + .replace("{action_check_table}", &action_check_table_str) + .replace("{action_check_table_size}", &action_check_table_size) .replace("{action_table}", &action_table_str) + .replace("{action_table_size}", &action_table_size) + .replace("{action_table_index}", &action_table_index_str) + .replace("{action_table_index_size}", &action_table_index_size) + .replace("{def_rules_str}", &def_rules_str) + .replace("{def_rules_size}", &def_rules_size) + .replace("{goto_check_table}", &goto_check_table_str) + .replace("{goto_check_table_size}", &goto_check_table_size) .replace("{goto_table}", &goto_table_str) - .replace("{action_table_size}", &action_table.len().to_string()) - .replace("{goto_table_size}", &goto_table.len().to_string()) + .replace("{goto_table_size}", &goto_table_size) + .replace("{goto_table_index}", &goto_table_index_str) + .replace("{goto_table_index_size}", &goto_table_index_size) .replace("{end_rule_kind}", r#"TokenKind::RAW("$end".to_string())"#) .replace("{end_rule_id}", &end_rule_id); @@ -166,10 +365,10 @@ fn write_parser_file( } } -fn write_syntax_file( - terminal_symbols: &Vec, - non_terminal_symbols: &Vec, - comments: &Vec, +fn generate_syntax_kinds_source_code( + terminal_symbols: &[Component], + non_terminal_symbols: &[Component], + comments: &[Component], ) { let mut kinds = Vec::new(); for c in terminal_symbols @@ -222,7 +421,7 @@ fn write_file(bison: &Bison, lalr: &Lalr) { Component::Terminal(TokenKind::SQL_COMMENT), ]; - write_parser_file( + generate_parser_source_code( bison, lalr, &terminal_symbols, @@ -230,27 +429,55 @@ fn write_file(bison: &Bison, lalr: &Lalr) { &comments, ); - write_syntax_file(&terminal_symbols, &non_terminal_symbols, &comments); -} - -fn compress(data: Vec) -> Vec { - let bytes = unsafe { data.align_to::().1 }; - compress_to_vec(bytes, 10) + generate_syntax_kinds_source_code(&terminal_symbols, &non_terminal_symbols, &comments); + + std::fs::copy( + "./crates/parser-generator/src/parser_generator/lexer/lexer_ported.rs", + "./crates/postgresql-cst-parser/src/lexer/lexer_ported.rs", + ) + .unwrap(); + + std::fs::copy( + "./crates/parser-generator/src/parser_generator/lexer/util.rs", + "./crates/postgresql-cst-parser/src/lexer/util.rs", + ) + .unwrap(); + + std::fs::copy( + "./crates/parser-generator/src/parser_generator/lexer/parser_error.rs", + "./crates/postgresql-cst-parser/src/lexer/parser_error.rs", + ) + .unwrap(); + + std::fs::copy( + "./crates/parser-generator/src/parser_generator/lexer.rs", + "./crates/postgresql-cst-parser/src/lexer.rs", + ) + .unwrap(); } pub fn generate() { - let (bison, lalr) = match std::fs::File::open("bison.cache") { - Ok(f) => bincode::deserialize_from(BufReader::new(f)).unwrap(), - Err(_) => { - let bison = parse_bison(include_str!("../resources/gram.y")); - let mut lalr = Lalr::new(&bison); - lalr.build_lalr1_parse_table(); - - let f = std::fs::File::create("bison.cache").unwrap(); - let w = std::io::BufWriter::new(f); - bincode::serialize_into(w, &(&bison, &lalr)).unwrap(); - (bison, lalr) - } + // generate cache + // let (bison, lalr) = match std::fs::File::open("bison.cache") { + // Ok(f) => bincode::deserialize_from(BufReader::new(f)).unwrap(), + // Err(_) => { + // let bison = parse_bison(include_str!("../resources/gram.y")); + // let mut lalr = Lalr::new(&bison); + // lalr.build_lalr1_parse_table(); + + // let f = std::fs::File::create("bison.cache").unwrap(); + // let w = std::io::BufWriter::new(f); + // bincode::serialize_into(w, &(&bison, &lalr)).unwrap(); + // (bison, lalr) + // } + // }; + + let (bison, lalr) = { + let bison = parse_bison(include_str!("../resources/gram.y")); + let mut lalr = Lalr::new(&bison); + lalr.build_lalr1_parse_table(); + + (bison, lalr) }; write_file(&bison, &lalr); diff --git a/crates/parser-generator/src/parser_generator/bison.rs b/crates/parser-generator/src/parser_generator/bison.rs index 9e82d3a..2f5a201 100644 --- a/crates/parser-generator/src/parser_generator/bison.rs +++ b/crates/parser-generator/src/parser_generator/bison.rs @@ -4,11 +4,12 @@ use std::{ hash::Hash, }; -use serde::{Deserialize, Serialize}; +// use serde::{Deserialize, Serialize}; use super::lexer::TokenKind; -#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] +// #[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] +#[derive(Debug, Clone, Copy, PartialEq, Eq)] pub enum Action { Shift(usize), Reduce(usize), @@ -16,35 +17,40 @@ pub enum Action { Error, } -#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] +// #[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] +#[derive(Debug, Clone, Copy, PartialEq, Eq)] pub enum AssocDirective { NonAssoc, Left, Right, } -#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +// #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, Eq)] pub struct Assoc { pub name: String, pub priority: usize, pub directive: AssocDirective, } -#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, Deserialize)] +// #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)] pub enum RawComponent { Identifier(String), Raw(String), } -#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, Deserialize)] +// #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, Deserialize)] +#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] pub struct ComponentId(pub u16); -/// 構文規則のコンポーネント -#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, Deserialize)] +/// Component of the syntax rule +// #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)] pub enum Component { - /// 非終端記号 + /// Non-terminal symbol NonTerminal(String), - /// 終端記号 + /// Terminal symbol Terminal(TokenKind), } @@ -115,14 +121,16 @@ impl Component { } } -#[derive(Debug, Clone, Serialize, Deserialize)] +// #[derive(Debug, Clone, Serialize, Deserialize)] +#[derive(Debug, Clone)] pub struct Rule { pub name: String, pub components: Vec, pub prec: Option, } -#[derive(Debug, Serialize, Deserialize)] +// #[derive(Debug, Serialize, Deserialize)] +#[derive(Debug)] pub struct Bison { /// %type /// key is non terminal symbol @@ -134,25 +142,6 @@ pub struct Bison { pub rules: Vec, pub rule_names: Vec, - // これ使ってる? - // pub comments: Vec, - - // 構文解析表作るやつなので消す - // pub components: Vec, - // pub component_map: HashMap, - - // pub name_to_rules: HashMap>, - - // pub first_set: HashMap>, - // pub nullable: HashMap, - - // pub state_set: StateSet, - // pub action_table: HashMap<(usize, ComponentId), Action>, - // pub goto_table: HashMap<(usize, ComponentId), usize>, - // pub accept_rule_component_id: ComponentId, - // pub accept_rule_component: Component, - // pub end_rule_component_id: ComponentId, - // pub end_rule_component: Component, } impl Bison { @@ -169,7 +158,7 @@ fn is_start_whitespace(line: impl AsRef) -> bool { line.as_ref() .chars() .next() - .map_or(false, |c| c.is_ascii_whitespace()) + .is_some_and(|c| c.is_ascii_whitespace()) } fn parse_type(bison: &mut Bison, line: &str, deq: &mut VecDeque) { @@ -191,8 +180,8 @@ fn parse_type(bison: &mut Bison, line: &str, deq: &mut VecDeque) { .insert(non_terminal_symbol.to_string(), typ.to_string()); } - // 空白スタートの場合継続業とみなす - if deq.front().map_or(false, is_start_whitespace) { + // If it starts with a space, consider it as a continuation line + if deq.front().is_some_and(is_start_whitespace) { line = deq.pop_front().unwrap(); } else { break; @@ -221,10 +210,10 @@ fn parse_token(bison: &mut Bison, line: &str, deq: &mut VecDeque) { bison.token.insert(terminal_symbol.to_string(), typ.clone()); } - // 空白スタートの場合継続業とみなす + // If it starts with a space, consider it as a continuation line if deq .front() - .map_or(false, |line| is_start_whitespace(line) || line.is_empty()) + .is_some_and(|line| is_start_whitespace(line) || line.is_empty()) { line = deq.pop_front().unwrap(); } else { @@ -249,8 +238,8 @@ fn parse_assoc( loop { for name in line.split_whitespace() { - // ブロックコメントの開始を見つけたら終了 - // 雑だがpostgresqlのgrammerをparseする分には問題ない + // If we find the start of a block comment, end + // This is rough but works fine for parsing postgresql's grammar if name == "/*" { break; } @@ -264,8 +253,8 @@ fn parse_assoc( bison.assoc.insert(name.to_string(), assoc); } - // 空白スタートの場合継続業とみなす - if deq.front().map_or(false, is_start_whitespace) { + // If it starts with a space, consider it as a continuation line + if deq.front().is_some_and(is_start_whitespace) { line = deq.pop_front().unwrap(); } else { break; @@ -513,7 +502,7 @@ fn scan(body: String) -> Vec { continue; } - eprintln!("{}", chars[i..][..100].into_iter().collect::()); + eprintln!("{}", chars[i..][..100].iter().collect::()); unreachable!(); } @@ -603,29 +592,6 @@ pub fn parse_bison(s: impl AsRef) -> Bison { assoc: HashMap::new(), rules: Vec::new(), rule_names: Vec::new(), - // 未使用 - // comments: Vec::new(), - - // Lalr構造体に移動 - // components: Vec::new(), - // component_map: HashMap::new(), - - // name_to_rules: HashMap::new(), - - // first_set: HashMap::new(), - // nullable: HashMap::new(), - - // state_set: StateSet { - // states: Vec::new(), - // need_update: HashSet::new(), - // }, - // action_table: HashMap::new(), - // goto_table: HashMap::new(), - - // accept_rule_component: Component::NonTerminal("dummy".to_string()), - // accept_rule_component_id: ComponentId(0), - // end_rule_component: Component::NonTerminal("dummy".to_string()), - // end_rule_component_id: ComponentId(0), }; while let Some(line) = deq.pop_front() { diff --git a/crates/parser-generator/src/parser_generator/id_mapper.rs b/crates/parser-generator/src/parser_generator/id_mapper.rs index a84c6a8..cc3712e 100644 --- a/crates/parser-generator/src/parser_generator/id_mapper.rs +++ b/crates/parser-generator/src/parser_generator/id_mapper.rs @@ -1,10 +1,11 @@ -use std::collections::HashMap; +use std::collections::{HashMap, hash_map::Entry}; -use serde::{Deserialize, Serialize}; +// use serde::{Deserialize, Serialize}; use super::bison::{Component, ComponentId}; -#[derive(Debug, Serialize, Deserialize)] +// #[derive(Debug, Serialize, Deserialize)] +#[derive(Debug)] pub struct IdMapper { component_map: HashMap, pub components: Vec, @@ -27,16 +28,16 @@ impl IdMapper { } pub fn insert(&mut self, c: Component) { - if !self.component_map.contains_key(&c) { + if let Entry::Vacant(e) = self.component_map.entry(c.clone()) { let id = ComponentId(self.components.len() as u16); - self.components.push(c.clone()); - self.component_map.insert(c, id); + self.components.push(c); + e.insert(id); } } pub fn to_component_id(&self, c: &Component) -> ComponentId { - if let Some(&id) = self.component_map.get(&c) { - id.clone() + if let Some(&id) = self.component_map.get(c) { + id } else { dbg!(c); panic!("Unknown component"); diff --git a/crates/parser-generator/src/parser_generator/lalr.rs b/crates/parser-generator/src/parser_generator/lalr.rs index 1f97e63..031c84b 100644 --- a/crates/parser-generator/src/parser_generator/lalr.rs +++ b/crates/parser-generator/src/parser_generator/lalr.rs @@ -1,6 +1,6 @@ -use std::collections::{BTreeMap, BTreeSet, HashMap, HashSet, VecDeque}; +use std::collections::{BTreeMap, BTreeSet, HashMap, HashSet, VecDeque, hash_map::Entry}; -use serde::{Deserialize, Serialize}; +// use serde::{Deserialize, Serialize}; use crate::parser_generator::{ bison::{Action, AssocDirective, Component}, @@ -12,14 +12,16 @@ use super::{ id_mapper::IdMapper, }; -#[derive(Debug, Serialize, Deserialize)] +// #[derive(Debug, Serialize, Deserialize)] +#[derive(Debug)] pub struct LalrRule { pub name_id: ComponentId, pub components: Vec, pub reduce_priority: Option, } -#[derive(Debug, Serialize, Deserialize)] +// #[derive(Debug, Serialize, Deserialize)] +#[derive(Debug)] pub struct Lalr { pub id_mapper: IdMapper, @@ -42,7 +44,8 @@ pub struct Lalr { pub all_terminal: Vec, } -#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize)] +// #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord)] pub struct Item { pub rule_index: usize, pub dot_pos: usize, @@ -81,7 +84,8 @@ impl Item { } } -#[derive(Debug, Clone, Serialize, Deserialize)] +// #[derive(Debug, Clone, Serialize, Deserialize)] +#[derive(Debug, Clone)] pub struct State { pub items: Vec, pub edge: BTreeSet<(ComponentId, usize)>, @@ -89,7 +93,7 @@ pub struct State { } impl State { - // LALR用の差分。先読み記号を無視する + // Difference for LALR: ignore lookahead symbols fn equals_without_lookahead(&self, other: &State) -> bool { if self.items.len() != other.items.len() { return false; @@ -101,7 +105,7 @@ impl State { .all(|(l, r)| l.rule_index == r.rule_index && l.dot_pos == r.dot_pos) } - // LALR用の差分。先読み記号を無視する + // Difference for LR: Distinguish lookahead symbols fn equals(&self, other: &State) -> bool { if self.items.len() != other.items.len() { return false; @@ -120,7 +124,8 @@ impl State { } } -#[derive(Debug, Serialize, Deserialize)] +// #[derive(Debug, Serialize, Deserialize)] +#[derive(Debug)] pub struct StateSet { pub states: Vec, pub need_update: HashSet, @@ -141,7 +146,7 @@ impl StateSet { { self.states[from_index].edge.insert((comp, i)); - // 先読み記号まで含めて同一ならスキップ + // Skip if it's identical including lookahead symbols if state.equals(&self.states[i]) { return; } @@ -190,7 +195,7 @@ impl Lalr { .for_each(|c| terminal_components.push(c.clone())); } - for (name, _) in &bison.assoc { + for name in bison.assoc.keys() { let kind = TokenKind::from(name); terminal_components.push(Component::Terminal(kind)); } @@ -247,7 +252,7 @@ impl Lalr { rule.components .iter() .filter(|c| matches!(c, Component::Terminal(_))) - .last() + .next_back() .map(|c| id_mapper.to_component_id(c)) }) .and_then(|component_id| assoc[component_id.0 as usize].clone()); @@ -302,11 +307,11 @@ impl Lalr { nullable.insert(rule_id, false); first_set.insert(rule_id, HashSet::new()); - for c in &self.rules[i].components { + for &c in &self.rules[i].components { let comp = &self.id_mapper.components[c.0 as usize]; if let Component::Terminal(_) = comp { - nullable.insert(c.clone(), false); - first_set.insert(c.clone(), HashSet::from([c.clone()])); + nullable.insert(c, false); + first_set.insert(c, HashSet::from([c])); } } } @@ -375,13 +380,13 @@ impl Lalr { .collect(); } - // TODO closureをテストする + // TODO: Test the closure function fn closure(&mut self, state: &mut State) { let mut in_deq = vec![false; state.items.len()]; let prev_item_len = state.items.len(); - // LR(1)アイテム集合の単一状態の変化がなくなるまで繰り返す + // Repeat until there are no more changes in the LR(1) item set for a single state let mut deq = VecDeque::from_iter(0..state.items.len()); while let Some(j) = deq.pop_front() { in_deq[j] = false; @@ -396,7 +401,7 @@ impl Lalr { continue; } - // ドットの次の要素が非終端記号の場合には、その非終端記号を左辺に持つ全ての規則について、非終端記号の先頭にドットおるアイテムを追加する。 + // If the element after the dot is a non-terminal symbol, add an item with the dot at the beginning of all rules that have that non-terminal symbol on the left-hand side. let component_id = self.rules[rule_index].components[dot_pos]; if let Component::Terminal(_) = &self.id_mapper.components[component_id.0 as usize] { continue; @@ -405,7 +410,7 @@ impl Lalr { let mut lookaheads = self.first_set_after[rule_index][dot_pos + 1].clone(); let nullable = self.nullable[rule_index][dot_pos + 1]; - // その際の先読み記号は、first_set(非終端記号の続き + lookahead)で求まる + // The lookahead symbols are determined by first_set(continuation of non-terminal + lookahead) if nullable { state.items[j] .lookahead @@ -416,17 +421,17 @@ impl Lalr { self.rule_indices_by_name_id[component_id.0 as usize] .iter() .for_each(|&new_item_index| { - // 追加予定のアイテムが既に存在するかチェックする + // Check if the item to be added already exists let j: Option<&usize> = state.item_indices.get(&new_item_index); if let Some(&j) = j { - // あれば先読み記号のみ追加 + // If it exists, only add lookahead symbols if state.items[j].insert_lookaheads(&lookaheads) && !in_deq[j] { deq.push_back(j); in_deq[j] = true; } } else { - // なければ追加 + // If it doesn't exist, add it let new_item = Item { rule_index: new_item_index, dot_pos: 0, @@ -445,11 +450,11 @@ impl Lalr { } } - /// 構文解析表を作成する - /// 1. LR(1)項集合の作成 + /// Create a syntax analysis table + /// 1. Create LR(1) item sets pub fn build_lalr1_parse_table(&mut self) { - // bisonでは明示的に指定しない場合、最初のルールが起点のルールになる - // PostgreSQLの場合、明示的に指定していないため、最初のルールを起点とする + // In bison, if not explicitly specified, the first rule becomes the starting rule + // In the case of PostgreSQL, it's not explicitly specified, so we use the first rule as the starting point let start_rule_index = self.rules.len(); let start_component_id = self.rules[0].name_id; @@ -494,8 +499,8 @@ impl Lalr { // dbg!(i, state_set.states.len()); - // ドットを進めた状態を作る - // ドットを進める状態を、次の記号でグループ化 + // Create states by advancing the dot + // Group the states where the dot is advanced by the next symbol let mut next_states: BTreeMap> = BTreeMap::new(); for j in 0..state_set.states[i].items.len() { let dot_pos = state_set.states[i].items[j].dot_pos; @@ -504,7 +509,7 @@ impl Lalr { continue; } - let comp = self.rules[ri].components[dot_pos].clone(); + let comp = self.rules[ri].components[dot_pos]; let item = &state_set.states[i].items[j]; next_states.entry(comp).or_default().push(Item { @@ -528,7 +533,7 @@ impl Lalr { dbg!(state_set.states.len()); - // 構文解析表を構築 + // Build the syntax analysis table let mut action_table: HashMap<(usize, ComponentId), Action> = HashMap::new(); let mut goto_table: HashMap<(usize, ComponentId), usize> = HashMap::new(); @@ -542,13 +547,13 @@ impl Lalr { let get_conflicted_reduce_rule = |shift_comp: &ComponentId| -> Option<&&Item> { reduce_rules .iter() - .find(|item| item.lookahead.contains(&shift_comp)) + .find(|item| item.lookahead.contains(shift_comp)) }; for e in &s.edge { - let key = (i, e.0.clone()); + let key = (i, e.0); - if let Component::NonTerminal(_) = &self.id_mapper.components[e.0 .0 as usize] { + if let Component::NonTerminal(_) = &self.id_mapper.components[e.0.0 as usize] { goto_table.insert(key, e.1); } else { action_table.insert(key, Action::Shift(e.1)); @@ -563,11 +568,11 @@ impl Lalr { Action::Reduce(item.rule_index) }; - let key = (i, terminal.clone()); + let key = (i, *terminal); // not conflict - if !action_table.contains_key(&key) { - action_table.insert(key, reduce_action); + if let Entry::Vacant(e) = action_table.entry(key) { + e.insert(reduce_action); continue; } @@ -577,29 +582,29 @@ impl Lalr { match (reduce, shift) { (Some(reduce), Some(shift)) if reduce.priority < shift.priority => { - // shiftを採用 + // adopt shift } (Some(reduce), Some(shift)) if reduce.priority > shift.priority => { - // reduceを採用 + // adopt reduce action_table.insert(key, reduce_action); } (Some(_), Some(shift)) => { match shift.directive { AssocDirective::NonAssoc => { - // このケースはparse error + // This case is a parse error action_table.insert(key, Action::Error); } AssocDirective::Left => { - // reduceを採用 + // adopt reduce action_table.insert(key, reduce_action); } AssocDirective::Right => { - // shiftを採用 + // adopt shift } } } _ => { - // いずれかに優先度がなければshift優先らしい + // If either one doesn't have a priority, shift seems to be preferred } } } diff --git a/crates/parser-generator/src/parser_generator/lexer.rs b/crates/parser-generator/src/parser_generator/lexer.rs index 6390637..d9f895d 100644 --- a/crates/parser-generator/src/parser_generator/lexer.rs +++ b/crates/parser-generator/src/parser_generator/lexer.rs @@ -1,15 +1,18 @@ +#[macro_use] mod generated; +pub mod lexer_ported; +pub mod parser_error; mod util; use std::collections::HashMap; -use regex::bytes::Regex; -use serde::{Deserialize, Serialize}; +use parser_error::{ParserError, ScanReport}; -use self::generated::{RuleKind, State}; +use self::generated::State; pub const NAMEDATALEN: usize = 64; +#[allow(dead_code)] #[derive(Debug, Clone)] pub enum Yylval { Str(String), @@ -32,22 +35,31 @@ pub struct Lexer { pub state_before_str_stop: State, pub yylloc_stack: Vec, pub dolqstart: String, + pub warn_on_first_escape: bool, + pub saw_non_ascii: bool, + pub utf16_first_part: u32, // states pub yylval: Yylval, pub yylloc_bytes: usize, + #[cfg(feature = "regex-match")] pub rules: Vec, pub keyword_map: HashMap<&'static str, &'static str>, + pub reports: Vec, } +#[cfg(feature = "regex-match")] pub struct Rule { pub state: State, - pub pattern: Regex, - pub kind: RuleKind, + pub pattern: regex::bytes::Regex, + pub eof: bool, + pub kind: self::generated::RuleKind, } -#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, Deserialize)] +#[allow(clippy::all)] +// #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)] pub enum TokenKind { RAW(String), IDENT, @@ -74,9 +86,10 @@ pub enum TokenKind { } impl TokenKind { + #[allow(dead_code)] pub fn to_id(&self) -> String { match self { - TokenKind::RAW(s) => format!("'{}'", s), + TokenKind::RAW(s) => format!("'{s}'"), TokenKind::IDENT => "IDENT".to_string(), TokenKind::KEYWORD(s) => s.to_string(), TokenKind::C_COMMENT => "C_COMMENT".to_string(), @@ -128,16 +141,54 @@ where "PARAM" => TokenKind::PARAM, "FCONST" => TokenKind::FCONST, "ICONST" => TokenKind::ICONST, - s if s.starts_with('\'') => TokenKind::RAW(s.to_string()), - s => TokenKind::KEYWORD(s.to_string()), // TODO check if keyword + s if s.starts_with('\'') => TokenKind::RAW(s.to_string()), // TODO is it necessary? + s => TokenKind::KEYWORD(s.to_string()), // TODO check if keyword } } } -#[derive(Debug, Clone, Serialize, Deserialize)] +// #[derive(Debug, Clone, Serialize, Deserialize)] +#[derive(Debug, Clone)] pub struct Token { pub start_byte_pos: usize, pub end_byte_pos: usize, pub kind: TokenKind, pub value: String, } + +pub fn lex(input: &str) -> Result, ParserError> { + let mut lexer = Lexer::new(input); + + let mut tokens = vec![]; + while let Some(kind) = lexer.parse_token()? { + // dbg!(&kind); + if kind == TokenKind::EOF { + break; + } + + let start_byte_pos = lexer.yylloc_bytes; + let end_byte_pos = if matches!( + kind, + TokenKind::SCONST + | TokenKind::BCONST + | TokenKind::XCONST + | TokenKind::IDENT + | TokenKind::C_COMMENT + ) { + lexer.yyllocend_bytes + } else { + lexer.yylloc_bytes + lexer.yyleng + }; + + tokens.push(Token { + start_byte_pos, + end_byte_pos, + kind, + value: input[start_byte_pos..end_byte_pos].to_string(), + }); + lexer.advance(); + } + + // dbg!(&tokens); + Ok(tokens) +} diff --git a/crates/parser-generator/src/parser_generator/lexer/generated.rs b/crates/parser-generator/src/parser_generator/lexer/generated.rs index eae65c5..466c3d0 100644 --- a/crates/parser-generator/src/parser_generator/lexer/generated.rs +++ b/crates/parser-generator/src/parser_generator/lexer/generated.rs @@ -1,22 +1,3679 @@ #![allow(clippy::all)] #![allow(unreachable_code)] +/// This file contains ported sources from PostgreSQL use std::collections::HashMap; -// use regex::{Match, Regex}; -use regex::bytes::Regex; - use super::{ - util::{get_char_by_byte_pos, yyerror}, - {Lexer, Rule, TokenKind, Yylval, NAMEDATALEN}, + lexer_ported::{ + get_char_by_byte_pos, is_highbit_set, is_utf16_surrogate_first, is_utf16_surrogate_second, + surrogate_pair_to_codepoint, + }, + Lexer, ParserError, TokenKind, Yylval, NAMEDATALEN, }; +macro_rules! ereport { + ($lexer:expr, ERROR, (errcode($err_code:expr), errmsg($err_msg:expr), errdetail($err_detail:expr), $err_position:expr)) => { + return Err(ParserError::new_report( + $err_msg, + $err_detail, + $err_position, + )); + }; + ($lexer:expr, ERROR, (errcode($err_code:expr), errmsg($err_msg:expr), errhint($err_detail:expr), $err_position:expr)) => { + return Err(ParserError::new_report( + $err_msg, + $err_detail, + $err_position, + )); + }; + ($lexer:expr, WARNING, (errcode($err_code:expr), errmsg($err_msg:expr), errdetail($err_detail:expr), $err_position:expr)) => { + $lexer.add_warning(ScanReport::new($err_msg, $err_detail, $err_position)); + }; +} + +macro_rules! yyerror { + ($msg:expr) => { + return Err(ParserError::new_error($msg)) + }; +} + macro_rules! yyterminate { () => { - return None; + return Ok(None); }; } +#[cfg(not(feature = "regex-match"))] +pub mod dfa { + use super::State; + + // DFA transition table (state=INITIAL) + pub const TRANSITION_TABLE_0: [[u8; 256]; 116] = [ + [ + 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 3, 4, 5, 6, 7, 8, 6, 9, 10, 10, 8, 8, 10, 11, 12, 13, 14, 15, 15, 15, 15, 15, + 15, 15, 15, 15, 16, 10, 17, 18, 19, 6, 6, 20, 21, 20, 20, 22, 20, 20, 20, 20, 20, 20, + 20, 20, 23, 20, 20, 20, 20, 20, 20, 24, 20, 20, 25, 20, 20, 10, 2, 10, 8, 20, 6, 20, + 21, 20, 20, 22, 20, 20, 20, 20, 20, 20, 20, 20, 23, 20, 20, 20, 20, 20, 20, 24, 20, 20, + 25, 20, 20, 2, 6, 2, 6, 2, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 115, 115, 115, 115, 115, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 115, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 34, + 255, 34, 255, 34, 34, 255, 255, 255, 34, 34, 255, 34, 255, 34, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 34, 114, 34, 34, 34, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 34, + 255, 34, 255, 34, 34, 255, 255, 255, 34, 34, 255, 34, 255, 34, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 34, 34, 34, 34, 34, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 110, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 255, 255, 255, 255, 255, 255, 255, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 255, 255, 255, 255, 112, 255, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 255, 255, 255, 255, 255, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 34, + 255, 34, 255, 34, 34, 255, 255, 255, 34, 34, 255, 34, 255, 34, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 34, 34, 34, 34, 34, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 34, + 255, 34, 255, 34, 34, 255, 255, 255, 34, 34, 255, 107, 255, 34, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 34, 34, 34, 34, 34, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 101, 255, 102, 102, 102, + 102, 102, 102, 102, 102, 102, 102, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 34, + 255, 34, 255, 34, 34, 255, 255, 255, 99, 34, 255, 34, 255, 34, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 34, 34, 34, 34, 34, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 41, 255, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 255, 255, 255, 255, 255, 255, 255, 43, 87, 43, 43, 44, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 88, 43, 43, 43, 43, 43, 43, 43, 43, 89, 43, 43, 255, 255, + 255, 255, 45, 255, 43, 87, 43, 43, 44, 43, 43, 43, 43, 43, 43, 43, 43, 43, 88, 43, 43, + 43, 43, 43, 43, 43, 43, 89, 43, 43, 255, 255, 255, 255, 255, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 41, 255, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 255, 255, 255, 255, 255, 255, 255, 43, 43, 43, 43, 44, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 255, 255, + 255, 255, 45, 255, 43, 43, 43, 43, 44, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 255, 255, 255, 255, 255, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 39, 255, 255, 40, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 34, + 255, 34, 255, 34, 34, 255, 255, 255, 34, 34, 255, 34, 255, 34, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 34, 37, 38, 34, 34, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 34, + 255, 34, 255, 34, 34, 255, 255, 255, 34, 34, 255, 34, 255, 34, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 34, 34, 36, 34, 34, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 34, + 255, 34, 255, 34, 34, 255, 255, 255, 34, 34, 255, 34, 255, 34, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 34, 35, 34, 34, 34, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 26, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 255, 255, 255, 255, 255, 255, 255, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 255, 255, + 255, 255, 26, 255, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 255, 255, 255, 255, 255, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 26, 255, 255, 33, 255, 255, 255, 255, 255, 255, 255, 255, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 255, 255, 255, 255, 255, 255, 255, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 255, 255, 255, + 255, 26, 255, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 255, 255, 255, 255, 255, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 26, 255, 255, 32, 255, 255, 255, 255, 255, 255, 255, 255, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 255, 255, 255, 255, 255, 255, 255, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 255, 255, 255, + 255, 26, 255, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 255, 255, 255, 255, 255, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 26, 255, 255, 31, 255, 255, 255, 255, 255, 255, 255, 255, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 255, 255, 255, 255, 255, 255, 255, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 255, 255, 255, + 255, 26, 255, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 255, 255, 255, 255, 255, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 26, 255, 28, 255, 255, 255, 255, 255, 255, 255, 255, 255, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 255, 255, 255, 255, 255, 255, 255, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 255, 255, 255, + 255, 26, 255, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 255, 255, 255, 255, 255, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 26, 255, 255, 27, 255, 255, 255, 255, 255, 255, 255, 255, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 255, 255, 255, 255, 255, 255, 255, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 255, 255, 255, + 255, 26, 255, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 255, 255, 255, 255, 255, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 26, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 255, 255, 255, 255, 255, 255, 255, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 255, 255, + 255, 255, 26, 255, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 255, 255, 255, 255, 255, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 29, 255, 255, 255, 255, 30, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 34, + 255, 34, 255, 34, 34, 255, 255, 255, 34, 34, 255, 34, 255, 34, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 34, 34, 34, 34, 34, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 34, + 255, 34, 255, 34, 34, 255, 255, 255, 34, 34, 255, 34, 255, 34, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 34, 34, 34, 34, 34, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 34, + 255, 34, 255, 34, 34, 255, 255, 255, 34, 34, 255, 34, 255, 34, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 34, 34, 34, 34, 34, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 34, + 255, 34, 255, 34, 34, 255, 255, 255, 34, 34, 255, 34, 255, 34, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 34, 34, 34, 34, 34, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 34, + 255, 34, 255, 34, 34, 255, 255, 255, 34, 34, 255, 34, 255, 34, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 34, 34, 34, 34, 34, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 68, 255, 69, 69, 69, 69, + 69, 69, 69, 69, 69, 69, 255, 255, 255, 255, 255, 255, 255, 70, 70, 70, 70, 71, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 255, 255, + 255, 255, 70, 255, 70, 70, 70, 70, 71, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 255, 255, 255, 255, 255, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 41, 255, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 255, 255, 255, 255, 255, 255, 255, 43, 43, 43, 43, 44, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 255, 255, + 255, 255, 45, 255, 43, 43, 43, 43, 44, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 255, 255, 255, 255, 255, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 46, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, + 255, 255, 46, 255, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 46, 255, 255, 255, 255, 255, 255, 51, 255, 51, 255, 255, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 255, 255, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, 255, + 255, 46, 255, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 46, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 47, 47, 47, 47, + 47, 47, 47, 47, 47, 47, 255, 255, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, + 255, 255, 46, 255, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 46, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, + 255, 255, 46, 255, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 46, 255, 255, 255, 255, 255, 255, 255, 255, 255, 41, 255, 47, 47, 47, 47, 47, + 47, 47, 47, 47, 47, 255, 255, 255, 255, 255, 255, 255, 48, 48, 48, 48, 49, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 255, 255, 255, + 255, 50, 255, 48, 48, 48, 48, 49, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 255, 255, 255, 255, 255, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 46, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, + 255, 255, 46, 255, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 46, 255, 255, 255, 255, 255, 255, 51, 255, 51, 255, 255, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 255, 255, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, 255, + 255, 46, 255, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 46, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 47, 47, 47, 47, + 47, 47, 47, 47, 47, 47, 255, 255, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, + 255, 255, 46, 255, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 60, 60, 60, 60, + 60, 60, 60, 60, 60, 60, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 46, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 53, 53, 53, 53, + 53, 53, 53, 53, 53, 53, 255, 255, 255, 255, 255, 255, 255, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 255, 255, + 255, 255, 55, 255, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 255, 255, 255, 255, 255, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 46, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 53, 53, 53, 53, + 53, 53, 53, 53, 53, 53, 255, 255, 255, 255, 255, 255, 255, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 255, 255, + 255, 255, 55, 255, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 255, 255, 255, 255, 255, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 56, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 255, 255, 255, 255, 255, 255, 255, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 255, 255, + 255, 255, 56, 255, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 255, 255, 255, 255, 255, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 56, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 255, 255, 255, 255, 255, 255, 255, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 255, 255, + 255, 255, 56, 255, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 255, 255, 255, 255, 255, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 56, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 255, 255, 255, 255, 255, 255, 255, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 255, 255, + 255, 255, 56, 255, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 255, 255, 255, 255, 255, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 56, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 255, 255, 255, 255, 255, 255, 255, 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, 255, 255, + 255, 255, 59, 255, 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, 255, 255, 255, 255, 255, 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, 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, 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, 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, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, + 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 56, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 255, 255, 255, 255, 255, 255, 255, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 255, 255, + 255, 255, 56, 255, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 255, 255, 255, 255, 255, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 56, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 255, 255, 255, 255, 255, 255, 255, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 255, 255, + 255, 255, 56, 255, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 255, 255, 255, 255, 255, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 255, 255, 255, 255, 255, 255, 255, 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, 255, 255, + 255, 255, 63, 255, 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, 255, 255, 255, 255, 255, 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, 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, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 255, 255, 255, 255, 255, 255, 255, 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, 255, 255, + 255, 255, 63, 255, 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, 255, 255, 255, 255, 255, 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, 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, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 64, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 255, 255, 255, 255, 255, 255, 255, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 255, 255, + 255, 255, 64, 255, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 255, 255, 255, 255, 255, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 64, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 255, 255, 255, 255, 255, 255, 255, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 255, 255, + 255, 255, 64, 255, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 255, 255, 255, 255, 255, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 64, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 255, 255, 255, 255, 255, 255, 255, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 255, 255, + 255, 255, 64, 255, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 255, 255, 255, 255, 255, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 64, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 255, 255, 255, 255, 255, 255, 255, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 255, 255, + 255, 255, 67, 255, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 255, 255, 255, 255, 255, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 64, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 255, 255, 255, 255, 255, 255, 255, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 255, 255, + 255, 255, 64, 255, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 255, 255, 255, 255, 255, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 64, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 255, 255, 255, 255, 255, 255, 255, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 255, 255, + 255, 255, 64, 255, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 255, 255, 255, 255, 255, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 81, 81, 81, 81, + 81, 81, 81, 81, 81, 81, 255, 255, 255, 255, 255, 255, 255, 70, 70, 70, 70, 71, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 255, 255, + 255, 255, 82, 255, 70, 70, 70, 70, 71, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 255, 255, 255, 255, 255, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 72, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 255, 255, 255, 255, 255, 255, 255, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 255, 255, + 255, 255, 72, 255, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 255, 255, 255, 255, 255, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 72, 255, 255, 255, 255, 255, 255, 51, 255, 51, 255, 255, 73, 73, 73, 73, 73, + 73, 73, 73, 73, 73, 255, 255, 255, 255, 255, 255, 255, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 255, 255, 255, + 255, 72, 255, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 255, 255, 255, 255, 255, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 72, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 255, 255, 255, 255, 255, 255, 255, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 255, 255, + 255, 255, 72, 255, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 255, 255, 255, 255, 255, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 72, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 255, 255, 255, 255, 255, 255, 255, 75, 75, 75, 75, 75, 75, 75, + 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 255, 255, + 255, 255, 76, 255, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, + 75, 75, 75, 75, 75, 75, 75, 75, 75, 255, 255, 255, 255, 255, 75, 75, 75, 75, 75, 75, + 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, + 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, + 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, + 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, + 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, + 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 72, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 255, 255, 255, 255, 255, 255, 255, 75, 75, 75, 75, 75, 75, 75, + 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 255, 255, + 255, 255, 76, 255, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, + 75, 75, 75, 75, 75, 75, 75, 75, 75, 255, 255, 255, 255, 255, 75, 75, 75, 75, 75, 75, + 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, + 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, + 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, + 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, + 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, + 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 77, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 255, 255, 255, 255, 255, 255, 255, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 255, 255, + 255, 255, 77, 255, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 255, 255, 255, 255, 255, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 77, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 255, 255, 255, 255, 255, 255, 255, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 255, 255, + 255, 255, 77, 255, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 255, 255, 255, 255, 255, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 77, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 255, 255, 255, 255, 255, 255, 255, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 255, 255, + 255, 255, 77, 255, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 255, 255, 255, 255, 255, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 77, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 255, 255, 255, 255, 255, 255, 255, 79, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 255, 255, + 255, 255, 80, 255, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 255, 255, 255, 255, 255, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 77, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 255, 255, 255, 255, 255, 255, 255, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 255, 255, + 255, 255, 77, 255, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 255, 255, 255, 255, 255, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 77, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 255, 255, 255, 255, 255, 255, 255, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 255, 255, + 255, 255, 77, 255, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 255, 255, 255, 255, 255, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 81, 81, 81, 81, + 81, 81, 81, 81, 81, 81, 255, 255, 255, 255, 255, 255, 255, 70, 70, 70, 70, 71, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 255, 255, + 255, 255, 82, 255, 70, 70, 70, 70, 71, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 255, 255, 255, 255, 255, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 72, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 83, 83, 83, 83, + 83, 83, 83, 83, 83, 83, 255, 255, 255, 255, 255, 255, 255, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 255, 255, + 255, 255, 72, 255, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 255, 255, 255, 255, 255, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 72, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 83, 83, 83, 83, + 83, 83, 83, 83, 83, 83, 255, 255, 255, 255, 255, 255, 255, 84, 84, 84, 84, 85, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 255, 255, + 255, 255, 86, 255, 84, 84, 84, 84, 85, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 255, 255, 255, 255, 255, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 72, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 255, 255, 255, 255, 255, 255, 255, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 255, 255, + 255, 255, 72, 255, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 255, 255, 255, 255, 255, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 72, 255, 255, 255, 255, 255, 255, 51, 255, 51, 255, 255, 73, 73, 73, 73, 73, + 73, 73, 73, 73, 73, 255, 255, 255, 255, 255, 255, 255, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 255, 255, 255, + 255, 72, 255, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 255, 255, 255, 255, 255, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 72, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 83, 83, 83, 83, + 83, 83, 83, 83, 83, 83, 255, 255, 255, 255, 255, 255, 255, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 255, 255, + 255, 255, 72, 255, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 255, 255, 255, 255, 255, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 46, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 96, 96, 46, 46, + 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, + 255, 255, 97, 255, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 46, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 93, 93, 93, 93, + 93, 93, 93, 93, 46, 46, 255, 255, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, + 255, 255, 94, 255, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 46, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 90, 90, 90, 90, + 90, 90, 90, 90, 90, 90, 255, 255, 255, 255, 255, 255, 255, 90, 90, 90, 90, 90, 90, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, + 255, 255, 91, 255, 90, 90, 90, 90, 90, 90, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 46, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 90, 90, 90, 90, + 90, 90, 90, 90, 90, 90, 255, 255, 255, 255, 255, 255, 255, 90, 90, 90, 90, 90, 90, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, + 255, 255, 92, 255, 90, 90, 90, 90, 90, 90, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 46, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 90, 90, 90, 90, + 90, 90, 90, 90, 90, 90, 255, 255, 255, 255, 255, 255, 255, 90, 90, 90, 90, 90, 90, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, + 255, 255, 46, 255, 90, 90, 90, 90, 90, 90, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 46, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 90, 90, 90, 90, + 90, 90, 90, 90, 90, 90, 255, 255, 255, 255, 255, 255, 255, 90, 90, 90, 90, 90, 90, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, + 255, 255, 46, 255, 90, 90, 90, 90, 90, 90, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 46, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 93, 93, 93, 93, + 93, 93, 93, 93, 46, 46, 255, 255, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, + 255, 255, 95, 255, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 46, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 93, 93, 93, 93, + 93, 93, 93, 93, 46, 46, 255, 255, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, + 255, 255, 46, 255, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 46, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 93, 93, 93, 93, + 93, 93, 93, 93, 46, 46, 255, 255, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, + 255, 255, 46, 255, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 46, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 96, 96, 46, 46, + 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, + 255, 255, 98, 255, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 46, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 96, 96, 46, 46, + 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, + 255, 255, 46, 255, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 46, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 96, 96, 46, 46, + 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, + 255, 255, 46, 255, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 100, + 255, 100, 255, 100, 100, 255, 255, 255, 100, 100, 255, 100, 255, 100, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 100, 100, 100, 100, 100, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 100, 255, 100, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 100, 255, 100, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 100, + 255, 100, 255, 100, 100, 255, 255, 255, 100, 100, 255, 100, 255, 100, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 100, 100, 100, 100, 100, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 100, 255, 100, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 100, 255, 100, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 103, 103, 103, + 103, 103, 103, 103, 103, 103, 103, 255, 255, 255, 255, 255, 255, 255, 70, 70, 70, 70, + 71, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 255, 255, 255, 255, 104, 255, 70, 70, 70, 70, 71, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 255, 255, 255, 255, 255, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 103, 103, 103, + 103, 103, 103, 103, 103, 103, 103, 255, 255, 255, 255, 255, 255, 255, 70, 70, 70, 70, + 71, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 255, 255, 255, 255, 104, 255, 70, 70, 70, 70, 71, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 255, 255, 255, 255, 255, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 72, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 105, 105, 105, + 105, 105, 105, 105, 105, 105, 105, 255, 255, 255, 255, 255, 255, 255, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 255, 255, 255, 255, 72, 255, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 255, 255, 255, 255, 255, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 72, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 105, 105, 105, + 105, 105, 105, 105, 105, 105, 105, 255, 255, 255, 255, 255, 255, 255, 84, 84, 84, 84, + 85, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 255, 255, 255, 255, 106, 255, 84, 84, 84, 84, 85, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 255, 255, 255, 255, 255, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 72, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 105, 105, 105, + 105, 105, 105, 105, 105, 105, 105, 255, 255, 255, 255, 255, 255, 255, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 255, 255, 255, 255, 72, 255, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 255, 255, 255, 255, 255, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + ], + [ + 255, 108, 108, 108, 108, 108, 108, 108, 108, 108, 255, 108, 108, 255, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 109, + 108, 109, 108, 109, 109, 108, 108, 108, 109, 109, 108, 109, 108, 109, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 109, 109, 109, 109, 109, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 109, 108, 109, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 109, 108, 109, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, + ], + [ + 255, 108, 108, 108, 108, 108, 108, 108, 108, 108, 255, 108, 108, 255, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, + ], + [ + 255, 108, 108, 108, 108, 108, 108, 108, 108, 108, 255, 108, 108, 255, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 109, + 108, 109, 108, 109, 109, 108, 108, 108, 109, 109, 108, 109, 108, 109, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 109, 109, 109, 109, 109, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 109, 108, 109, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 109, 108, 109, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 110, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 255, 255, 255, 255, 255, 255, 255, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 255, 255, 255, 255, 113, 255, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 255, 255, 255, 255, 255, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 110, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 255, 255, 255, 255, 255, 255, 255, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 255, 255, 255, 255, 113, 255, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 255, 255, 255, 255, 255, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 34, + 255, 34, 255, 34, 34, 255, 255, 255, 34, 34, 255, 34, 255, 34, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 34, 34, 34, 34, 34, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 115, 115, 115, 115, 115, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 115, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + ]; + + // DFA accept table (state=INITIAL) + pub const ACCEPT_TABLE_0: [u8; 116] = [ + 255, 80, 79, 0, 62, 45, 62, 79, 61, 16, 61, 61, 61, 61, 64, 64, 61, 61, 61, 61, 78, 78, 78, + 78, 78, 78, 78, 13, 52, 46, 18, 15, 17, 9, 62, 58, 56, 57, 59, 53, 55, 71, 64, 75, 75, 75, + 75, 64, 75, 75, 75, 74, 73, 73, 75, 75, 75, 73, 75, 75, 73, 73, 77, 77, 77, 73, 77, 77, 72, + 71, 76, 76, 76, 73, 73, 76, 76, 76, 73, 76, 76, 71, 76, 71, 76, 76, 76, 70, 69, 68, 65, 68, + 75, 66, 69, 75, 67, 70, 75, 2, 2, 54, 71, 71, 76, 71, 76, 1, 1, 1, 38, 63, 39, 39, 60, 0, + ]; + + // DFA transition table (state=xb) + pub const TRANSITION_TABLE_1: [[u8; 256]; 4] = [ + [ + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 255, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + ]; + + // DFA accept table (state=xb) + pub const ACCEPT_TABLE_1: [u8; 4] = [11, 12, 11, 19]; + + // DFA transition table (state=xc) + pub const TRANSITION_TABLE_2: [[u8; 256]; 10] = [ + [ + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 3, 2, 3, 2, 3, 3, 2, 2, 2, 4, 3, 2, 3, 2, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 3, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 255, 2, 2, 2, 2, 255, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, + ], + [ + 255, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 255, 2, 2, 2, 2, 255, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 8, 255, 255, 255, 255, 9, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 6, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 7, 255, + 7, 255, 7, 7, 255, 255, 255, 7, 7, 255, 7, 255, 7, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 7, 7, 7, 7, 7, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 7, 255, 7, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 7, 255, 7, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 7, 255, + 7, 255, 7, 7, 255, 255, 255, 7, 7, 255, 7, 255, 7, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 7, 7, 7, 7, 7, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 7, 255, 7, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 7, 255, 7, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 8, 255, 255, 255, 255, 9, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + ]; + + // DFA accept table (state=xc) + pub const ACCEPT_TABLE_2: [u8; 10] = [255, 8, 5, 5, 6, 6, 3, 3, 7, 4]; + + // DFA transition table (state=xd) + pub const TRANSITION_TABLE_3: [[u8; 256]; 5] = [ + [ + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 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, 255, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 4, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + ]; + + // DFA accept table (state=xd) + pub const ACCEPT_TABLE_3: [u8; 5] = [255, 51, 50, 47, 49]; + + // DFA transition table (state=xh) + pub const TRANSITION_TABLE_4: [[u8; 256]; 4] = [ + [ + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 255, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + ]; + + // DFA accept table (state=xh) + pub const ACCEPT_TABLE_4: [u8; 4] = [10, 14, 10, 19]; + + // DFA transition table (state=xq) + pub const TRANSITION_TABLE_5: [[u8; 256]; 5] = [ + [ + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 255, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 4, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + ]; + + // DFA accept table (state=xq) + pub const ACCEPT_TABLE_5: [u8; 5] = [255, 37, 25, 19, 24]; + + // DFA transition table (state=xqs) + pub const TRANSITION_TABLE_6: [[u8; 256]; 11] = [ + [ + 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 4, 3, 3, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 9, 10, 9, 9, 10, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 9, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 8, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 6, 6, 6, 6, 6, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 6, 255, 255, 255, 255, + 255, 255, 7, 255, 255, 255, 255, 255, 8, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 6, 6, 6, 6, 6, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 6, 255, 255, 255, 255, + 255, 255, 7, 255, 255, 255, 255, 255, 8, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 9, 10, 9, 9, 10, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 9, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 8, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 6, 6, 6, 6, 6, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 6, 255, 255, 255, 255, + 255, 255, 7, 255, 255, 255, 255, 255, 8, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + ]; + + // DFA accept table (state=xqs) + pub const ACCEPT_TABLE_6: [u8; 11] = [21, 23, 22, 21, 21, 21, 21, 20, 21, 21, 21]; + + // DFA transition table (state=xe) + pub const TRANSITION_TABLE_7: [[u8; 256]; 28] = [ + [ + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 255, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 255, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 26, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 7, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 8, 5, 5, 9, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 24, 24, 24, 24, + 24, 24, 24, 24, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 255, 255, 255, 255, 255, 255, 255, 16, 16, 16, 16, 16, 16, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 16, 16, 16, 16, 16, 16, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 12, 12, 12, 12, + 12, 12, 12, 12, 12, 12, 255, 255, 255, 255, 255, 255, 255, 12, 12, 12, 12, 12, 12, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 12, 12, 12, 12, 12, 12, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 255, 255, 255, 255, 255, 255, 255, 10, 10, 10, 10, 10, 10, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 10, 10, 10, 10, 10, 10, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 11, 11, 11, 11, + 11, 11, 11, 11, 11, 11, 255, 255, 255, 255, 255, 255, 255, 11, 11, 11, 11, 11, 11, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 11, 11, 11, 11, 11, 11, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 255, 255, 255, 255, 255, 255, 255, 13, 13, 13, 13, 13, 13, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 13, 13, 13, 13, 13, 13, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 255, 255, 255, 255, 255, 255, 255, 14, 14, 14, 14, 14, 14, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 14, 14, 14, 14, 14, 14, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 15, 15, 15, 15, + 15, 15, 15, 15, 15, 15, 255, 255, 255, 255, 255, 255, 255, 15, 15, 15, 15, 15, 15, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 15, 15, 15, 15, 15, 15, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 17, 17, 17, 17, + 17, 17, 17, 17, 17, 17, 255, 255, 255, 255, 255, 255, 255, 17, 17, 17, 17, 17, 17, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 17, 17, 17, 17, 17, 17, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 255, 255, 255, 255, 255, 255, 255, 18, 18, 18, 18, 18, 18, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 18, 18, 18, 18, 18, 18, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 255, 255, 255, 255, 255, 255, 255, 19, 19, 19, 19, 19, 19, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 19, 19, 19, 19, 19, 19, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 255, 255, 255, 255, 255, 255, 255, 20, 20, 20, 20, 20, 20, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 20, 20, 20, 20, 20, 20, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 21, 21, 21, 21, + 21, 21, 21, 21, 21, 21, 255, 255, 255, 255, 255, 255, 255, 21, 21, 21, 21, 21, 21, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 21, 21, 21, 21, 21, 21, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 22, 22, 22, 22, + 22, 22, 22, 22, 22, 22, 255, 255, 255, 255, 255, 255, 255, 22, 22, 22, 22, 22, 22, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 22, 22, 22, 22, 22, 22, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 23, 23, 23, 23, + 23, 23, 23, 23, 23, 23, 255, 255, 255, 255, 255, 255, 255, 23, 23, 23, 23, 23, 23, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 23, 23, 23, 23, 23, 23, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 25, 25, 25, 25, + 25, 25, 25, 25, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 255, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 255, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + ], + ]; + + // DFA accept table (state=xe) + pub const ACCEPT_TABLE_7: [u8; 28] = [ + 255, 37, 26, 19, 36, 33, 34, 32, 32, 33, 35, 35, 32, 32, 32, 27, 32, 32, 32, 32, 32, 32, + 32, 27, 34, 34, 24, 26, + ]; + + // DFA transition table (state=xdolq) + pub const TRANSITION_TABLE_8: [[u8; 256]; 8] = [ + [ + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 255, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 4, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 255, 255, 255, 255, 5, 255, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 255, 255, + 255, 255, 255, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 4, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 255, 255, 255, 255, 255, 255, 255, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 255, 255, 255, 255, 6, 255, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 255, 255, 255, 255, 255, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 4, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 255, 255, 255, 255, 255, 255, 255, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 255, 255, 255, 255, 6, 255, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 255, 255, 255, 255, 255, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + ], + [ + 255, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 255, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + ], + ]; + + // DFA accept table (state=xdolq) + pub const ACCEPT_TABLE_8: [u8; 8] = [255, 44, 41, 43, 40, 42, 42, 41]; + + // DFA transition table (state=xui) + pub const TRANSITION_TABLE_9: [[u8; 256]; 5] = [ + [ + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 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, 255, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 4, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + ]; + + // DFA accept table (state=xui) + pub const ACCEPT_TABLE_9: [u8; 5] = [255, 51, 50, 48, 49]; + + // DFA transition table (state=xus) + pub const TRANSITION_TABLE_10: [[u8; 256]; 5] = [ + [ + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 255, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 4, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + ]; + + // DFA accept table (state=xus) + pub const ACCEPT_TABLE_10: [u8; 5] = [255, 37, 25, 19, 24]; + + // DFA transition table (state=xeu) + pub const TRANSITION_TABLE_11: [[u8; 256]; 19] = [ + [ + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 5, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 6, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 11, 11, 11, 11, + 11, 11, 11, 11, 11, 11, 255, 255, 255, 255, 255, 255, 255, 11, 11, 11, 11, 11, 11, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 11, 11, 11, 11, 11, 11, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 255, 255, 255, 255, 255, 255, 255, 7, 7, 7, 7, 7, 7, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 7, 7, 7, 7, 7, 7, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 255, 255, 255, 255, 255, 255, 255, 8, 8, 8, 8, 8, 8, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 8, 8, 8, 8, 8, 8, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 255, 255, 255, 255, 255, 255, 255, 9, 9, 9, 9, 9, 9, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 9, 9, 9, 9, 9, 9, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 255, 255, 255, 255, 255, 255, 255, 10, 10, 10, 10, 10, 10, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 10, 10, 10, 10, 10, 10, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 12, 12, 12, 12, + 12, 12, 12, 12, 12, 12, 255, 255, 255, 255, 255, 255, 255, 12, 12, 12, 12, 12, 12, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 12, 12, 12, 12, 12, 12, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 255, 255, 255, 255, 255, 255, 255, 13, 13, 13, 13, 13, 13, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 13, 13, 13, 13, 13, 13, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 255, 255, 255, 255, 255, 255, 255, 14, 14, 14, 14, 14, 14, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 14, 14, 14, 14, 14, 14, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 15, 15, 15, 15, + 15, 15, 15, 15, 15, 15, 255, 255, 255, 255, 255, 255, 255, 15, 15, 15, 15, 15, 15, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 15, 15, 15, 15, 15, 15, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 255, 255, 255, 255, 255, 255, 255, 16, 16, 16, 16, 16, 16, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 16, 16, 16, 16, 16, 16, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 17, 17, 17, 17, + 17, 17, 17, 17, 17, 17, 255, 255, 255, 255, 255, 255, 255, 17, 17, 17, 17, 17, 17, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 17, 17, 17, 17, 17, 17, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 255, 255, 255, 255, 255, 255, 255, 18, 18, 18, 18, 18, 18, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 18, 18, 18, 18, 18, 18, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + ]; + + // DFA accept table (state=xeu) + pub const ACCEPT_TABLE_11: [u8; 19] = [ + 255, 31, 29, 29, 29, 32, 32, 32, 32, 32, 28, 32, 32, 32, 32, 32, 32, 32, 28, + ]; + + pub fn get_dfa_table(state: State) -> (&'static [[u8; 256]], &'static [u8]) { + let state_id = state as u8; + + match state_id { + 0 => (TRANSITION_TABLE_0.as_slice(), ACCEPT_TABLE_0.as_slice()), + 1 => (TRANSITION_TABLE_1.as_slice(), ACCEPT_TABLE_1.as_slice()), + 2 => (TRANSITION_TABLE_2.as_slice(), ACCEPT_TABLE_2.as_slice()), + 3 => (TRANSITION_TABLE_3.as_slice(), ACCEPT_TABLE_3.as_slice()), + 4 => (TRANSITION_TABLE_4.as_slice(), ACCEPT_TABLE_4.as_slice()), + 5 => (TRANSITION_TABLE_5.as_slice(), ACCEPT_TABLE_5.as_slice()), + 6 => (TRANSITION_TABLE_6.as_slice(), ACCEPT_TABLE_6.as_slice()), + 7 => (TRANSITION_TABLE_7.as_slice(), ACCEPT_TABLE_7.as_slice()), + 8 => (TRANSITION_TABLE_8.as_slice(), ACCEPT_TABLE_8.as_slice()), + 9 => (TRANSITION_TABLE_9.as_slice(), ACCEPT_TABLE_9.as_slice()), + 10 => (TRANSITION_TABLE_10.as_slice(), ACCEPT_TABLE_10.as_slice()), + 11 => (TRANSITION_TABLE_11.as_slice(), ACCEPT_TABLE_11.as_slice()), + _ => unreachable!(), + } + } +} + +#[cfg(feature = "regex-match")] #[derive(Debug, PartialEq, Eq, Clone, Copy)] pub enum RuleKind { INITIAL1, @@ -113,9 +3770,6 @@ pub enum RuleKind { INITIAL40, INITIAL41, INITIAL42, - INITIAL43, - INITIAL44, - INITIAL45, } #[derive(Debug, PartialEq, Eq, Clone, Copy)] @@ -134,12 +3788,1358 @@ pub enum State { xeu, } -impl Lexer { - pub fn parse_token(&mut self) -> Option { +const STANDARD_CONFORMING_STRINGS: bool = true; + +impl Lexer { + #[cfg(not(feature = "regex-match"))] + pub fn parse_token(&mut self) -> Result, ParserError> { + loop { + let (match_len, pattern_index) = self.find_match_len(); + + self.yyleng = match_len; + let yytext = self.yytext(); + + match pattern_index { + 0 => { + { /* ignore */ } + } + 1 => { + { + // SET_YYLLOC(); + // return SQL_COMMENT; + + self.set_yylloc(); + return Ok(Some(TokenKind::SQL_COMMENT)); + } + } + 2 => { + { + // /* Set location in case of syntax error in comment */ + // SET_YYLLOC(); + // yyextra->xcdepth = 0; + // BEGIN(xc); + // /* Put back any characters past slash-star; see above */ + // yyless(2); + + /* Set location in case of syntax error in comment */ + self.set_yylloc(); + self.xcdepth = 0; + self.begin(State::xc); + /* Put back any characters past slash-star; see above */ + self.yyless(2); + } + } + 3 => { + { + // (yyextra->xcdepth)++; + // /* Put back any characters past slash-star; see above */ + // yyless(2); + + self.xcdepth += 1; + /* Put back any characters past slash-star; see above */ + self.yyless(2); + } + } + 4 => { + { + // if (yyextra->xcdepth <= 0) + // { + // BEGIN(INITIAL); + // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; + // return C_COMMENT; + // } + // else + // (yyextra->xcdepth)--; + + if self.xcdepth <= 0 { + self.begin(State::INITIAL); + self.set_yyllocend(); + return Ok(Some(TokenKind::C_COMMENT)); + } else { + self.xcdepth -= 1; + } + } + } + 5 => { + { /* ignore */ } + } + 6 => { + { /* ignore */ } + } + 7 => { + { /* ignore */ } + } + 8 => { + yyerror!("unterminated /* comment"); + } + 9 => { + { + // /* Binary bit type. + // * At some point we should simply pass the string + // * forward to the parser and label it there. + // * In the meantime, place a leading "b" on the string + // * to mark it for the input routine as a binary string. + // */ + // SET_YYLLOC(); + // BEGIN(xb); + // startlit(); + // addlitchar('b', yyscanner); + + /* Binary bit type. + * At some point we should simply pass the string + * forward to the parser and label it there. + * In the meantime, place a leading "b" on the string + * to mark it for the input routine as a binary string. + */ + self.set_yylloc(); + self.begin(State::xb); + self.literal.clear(); + self.addlitchar('b'); + } + } + 10 | 11 => { + { + // addlit(yytext, yyleng, yyscanner); + + self.addlit(self.yyleng); + } + } + 12 => { + yyerror!("unterminated bit string literal"); + } + 13 => { + { + // /* Hexadecimal bit type. + // * At some point we should simply pass the string + // * forward to the parser and label it there. + // * In the meantime, place a leading "x" on the string + // * to mark it for the input routine as a hex string. + // */ + // SET_YYLLOC(); + // BEGIN(xh); + // startlit(); + // addlitchar('x', yyscanner); + + /* Hexadecimal bit type. + * At some point we should simply pass the string + * forward to the parser and label it there. + * In the meantime, place a leading "x" on the string + * to mark it for the input routine as a hex string. + */ + self.set_yylloc(); + self.begin(State::xh); + self.literal.clear(); + self.addlitchar('x'); + } + } + 14 => { + yyerror!("unterminated hexadecimal string literal"); + } + 15 => { + { + // /* National character. + // * We will pass this along as a normal character string, + // * but preceded with an internally-generated "NCHAR". + // */ + // int kwnum; + // + // SET_YYLLOC(); + // yyless(1); /* eat only 'n' this time */ + // + // kwnum = ScanKeywordLookup("nchar", + // yyextra->keywordlist); + // if (kwnum >= 0) + // { + // yylval->keyword = GetScanKeyword(kwnum, + // yyextra->keywordlist); + // return yyextra->keyword_tokens[kwnum]; + // } + // else + // { + // /* If NCHAR isn't a keyword, just return "n" */ + // yylval->str = pstrdup("n"); + // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; + // return IDENT; + // } + + self.set_yylloc(); + self.yyless(1); /* eat only 'n' this time */ + + if let Some((kw, kw_token)) = self.get_keyword("nchar") { + self.yylval = Yylval::Keyword(kw); + return Ok(Some(TokenKind::KEYWORD(kw_token))); + } else { + /* If NCHAR isn't a keyword, just return "n" */ + self.yylval = Yylval::Str("n".to_string()); + self.set_yyllocend(); + return Ok(Some(TokenKind::IDENT)); + } + } + } + 16 => { + { + // yyextra->warn_on_first_escape = true; + // yyextra->saw_non_ascii = false; + // SET_YYLLOC(); + // if (yyextra->standard_conforming_strings) + // BEGIN(xq); + // else + // BEGIN(xe); + // startlit(); + + self.warn_on_first_escape = true; + self.saw_non_ascii = false; + self.set_yylloc(); + if STANDARD_CONFORMING_STRINGS { + self.begin(State::xq); + } else { + self.begin(State::xe); + } + self.literal.clear(); + } + } + 17 => { + { + // yyextra->warn_on_first_escape = false; + // yyextra->saw_non_ascii = false; + // SET_YYLLOC(); + // BEGIN(xe); + // startlit(); + + self.warn_on_first_escape = false; + self.saw_non_ascii = false; + self.set_yylloc(); + self.begin(State::xe); + self.literal.clear(); + } + } + 18 => { + { + // SET_YYLLOC(); + // if (!yyextra->standard_conforming_strings) + // ereport(ERROR, + // (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + // errmsg("unsafe use of string constant with Unicode escapes"), + // errdetail("String constants with Unicode escapes cannot be used when \"standard_conforming_strings\" is off."), + // lexer_errposition())); + // BEGIN(xus); + // startlit(); + + self.set_yylloc(); + if !STANDARD_CONFORMING_STRINGS { + ereport!(self, ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("unsafe use of string constant with Unicode escapes"), + errdetail("String constants with Unicode escapes cannot be used when standard_conforming_strings is off."), + self.lexer_errposition())); + } + self.begin(State::xus); + self.literal.clear(); + } + } + 19 => { + { + // /* + // * When we are scanning a quoted string and see an end + // * quote, we must look ahead for a possible continuation. + // * If we don't see one, we know the end quote was in fact + // * the end of the string. To reduce the lexer table size, + // * we use a single "xqs" state to do the lookahead for all + // * types of strings. + // */ + // yyextra->state_before_str_stop = YYSTATE; + // BEGIN(xqs); + + /* + * When we are scanning a quoted string and see an end + * quote, we must look ahead for a possible continuation. + * If we don't see one, we know the end quote was in fact + * the end of the string. To reduce the lexer table size, + * we use a single "xqs" state to do the lookahead for all + * types of strings. + */ + self.state_before_str_stop = self.state; + self.begin(State::xqs); + } + } + 20 => { + { + // /* + // * Found a quote continuation, so return to the in-quote + // * state and continue scanning the literal. Nothing is + // * added to the literal's contents. + // */ + // BEGIN(yyextra->state_before_str_stop); + + /* + * Found a quote continuation, so return to the in-quote + * state and continue scanning the literal. Nothing is + * added to the literal's contents. + */ + self.begin(self.state_before_str_stop); + } + } + 21 | 22 | 23 => { + { + // /* + // * Failed to see a quote continuation. Throw back + // * everything after the end quote, and handle the string + // * according to the state we were in previously. + // */ + // yyless(0); + // BEGIN(INITIAL); + // + // switch (yyextra->state_before_str_stop) + // { + // case xb: + // yylval->str = litbufdup(yyscanner); + // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; + // return BCONST; + // case xh: + // yylval->str = litbufdup(yyscanner); + // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; + // return XCONST; + // case xq: + // case xe: + // /* + // * Check that the data remains valid, if it might + // * have been made invalid by unescaping any chars. + // */ + // if (yyextra->saw_non_ascii) + // pg_verifymbstr(yyextra->literalbuf, + // yyextra->literallen, + // false); + // yylval->str = litbufdup(yyscanner); + // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; + // return SCONST; + // case xus: + // yylval->str = litbufdup(yyscanner); + // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; + // return USCONST; + // default: + // yyerror("unhandled previous state in xqs"); + // } + + /* + * Failed to see a quote continuation. Throw back + * everything after the end quote, and handle the string + * according to the state we were in previously. + */ + self.yyless(0); + self.begin(State::INITIAL); + + match self.state_before_str_stop { + State::xb => { + self.yylval = Yylval::Str(self.literal.clone()); + self.set_yyllocend(); + return Ok(Some(TokenKind::BCONST)); + } + State::xh => { + self.yylval = Yylval::Str(self.literal.clone()); + self.set_yyllocend(); + return Ok(Some(TokenKind::XCONST)); + } + State::xq | State::xe => { + /* + * Check that the data remains valid, if it might + * have been made invalid by unescaping any chars. + */ + // TODO verify + // if (yyextra->saw_non_ascii) + // pg_verifymbstr(yyextra->literalbuf, + // yyextra->literallen, + // false); + self.yylval = Yylval::Str(self.literal.clone()); + self.set_yyllocend(); + return Ok(Some(TokenKind::SCONST)); + } + State::xus => { + self.yylval = Yylval::Str(self.literal.clone()); + self.set_yyllocend(); + return Ok(Some(TokenKind::USCONST)); + } + _ => yyerror!("unhandled previous state in xqs"), + } + } + } + 24 => { + { + // self.literal += '\''; + + self.addlitchar('\''); + } + } + 25 => { + { + // addlit(yytext, yyleng, yyscanner); + + self.addlit(self.yyleng); + } + } + 26 => { + { + // addlit(yytext, yyleng, yyscanner); + + self.addlit(self.yyleng); + } + } + 27 => { + { + // pg_wchar c = strtoul(yytext + 2, NULL, 16); + // + // /* + // * For consistency with other productions, issue any + // * escape warning with cursor pointing to start of string. + // * We might want to change that, someday. + // */ + // check_escape_warning(yyscanner); + // + // /* Remember start of overall string token ... */ + // PUSH_YYLLOC(); + // /* ... and set the error cursor to point at this esc seq */ + // SET_YYLLOC(); + // + // if (is_utf16_surrogate_first(c)) + // { + // yyextra->utf16_first_part = c; + // BEGIN(xeu); + // } + // else if (is_utf16_surrogate_second(c)) + // yyerror("invalid Unicode surrogate pair"); + // else + // addunicode(c, yyscanner); + // + // /* Restore yylloc to be start of string token */ + // POP_YYLLOC(); + + let c = u32::from_str_radix( + &self.input[self.index_bytes + 2..self.index_bytes + self.yyleng], + 16, + ) + .unwrap(); + + self.push_yylloc(); + self.set_yylloc(); + + if is_utf16_surrogate_first(c) { + self.utf16_first_part = c; + self.begin(State::xeu); + } else if is_utf16_surrogate_second(c) { + yyerror!("invalid Unicode surrogate pair"); + } else { + self.addunicode(char::from_u32(c as u32).unwrap())?; + } + + self.pop_yylloc(); + } + } + 28 => { + { + // pg_wchar c = strtoul(yytext + 2, NULL, 16); + // + // /* Remember start of overall string token ... */ + // PUSH_YYLLOC(); + // /* ... and set the error cursor to point at this esc seq */ + // SET_YYLLOC(); + // + // if (!is_utf16_surrogate_second(c)) + // yyerror("invalid Unicode surrogate pair"); + // + // c = surrogate_pair_to_codepoint(yyextra->utf16_first_part, c); + // + // addunicode(c, yyscanner); + // + // /* Restore yylloc to be start of string token */ + // POP_YYLLOC(); + // + // BEGIN(xe); + + let c = u32::from_str_radix( + &self.input[self.index_bytes + 2..self.index_bytes + self.yyleng], + 16, + ) + .unwrap(); + + self.push_yylloc(); + self.set_yylloc(); + + if !is_utf16_surrogate_second(c) { + yyerror!("invalid Unicode surrogate pair"); + } + + let c = surrogate_pair_to_codepoint(self.utf16_first_part, c); + self.addunicode(c)?; + + self.pop_yylloc(); + self.begin(State::xe); + } + } + 29 | 30 | 31 => { + { + // /* Set the error cursor to point at missing esc seq */ + // SET_YYLLOC(); + // yyerror("invalid Unicode surrogate pair"); + + /* Set the error cursor to point at missing esc seq */ + self.set_yylloc(); + yyerror!("invalid Unicode surrogate pair"); + } + } + 32 => { + { + // /* Set the error cursor to point at malformed esc seq */ + // SET_YYLLOC(); + // ereport(ERROR, + // (errcode(ERRCODE_INVALID_ESCAPE_SEQUENCE), + // errmsg("invalid Unicode escape"), + // errhint("Unicode escapes must be \\uXXXX or \\UXXXXXXXX."), + // lexer_errposition())); + + self.set_yylloc(); + ereport!( + self, + ERROR, + ( + errcode(ERRCODE_INVALID_ESCAPE_SEQUENCE), + errmsg("invalid Unicode escape"), + errhint("Unicode escapes must be \\uXXXX or \\UXXXXXXXX."), + self.lexer_errposition() + ) + ); + } + } + 33 => { + { + // if (yytext[1] == '\'') + // { + // if (yyextra->backslash_quote == BACKSLASH_QUOTE_OFF || + // (yyextra->backslash_quote == BACKSLASH_QUOTE_SAFE_ENCODING && + // PG_ENCODING_IS_CLIENT_ONLY(pg_get_client_encoding()))) + // ereport(ERROR, + // (errcode(ERRCODE_NONSTANDARD_USE_OF_ESCAPE_CHARACTER), + // errmsg("unsafe use of \\' in a string literal"), + // errhint("Use '' to write quotes in strings. \\' is insecure in client-only encodings."), + // lexer_errposition())); + // } + // check_string_escape_warning(yytext[1], yyscanner); + // addlitchar(unescape_single_char(yytext[1], yyscanner), + // yyscanner); + + let c = self.yytext().chars().nth(1).unwrap(); + // if c == '\'' { + // if self.backslash_quote == BACKSLASH_QUOTE_OFF || + // (self.backslash_quote == BACKSLASH_QUOTE_SAFE_ENCODING && + // PG_ENCODING_IS_CLIENT_ONLY(pg_get_client_encoding())) { + // ereport!(self, ERROR, + // (errcode(ERRCODE_NONSTANDARD_USE_OF_ESCAPE_CHARACTER), + // errmsg("unsafe use of \\' in a string literal"), + // errhint("Use '' to write quotes in strings. \\' is insecure in client-only encodings."), + // self.lexer_errposition())); + // } + // } + + // self.check_string_escape_warning(c); + let c = self.unescape_single_char(c); + self.addlitchar(c); + } + } + 34 => { + { + // unsigned char c = strtoul(yytext + 1, NULL, 8); + // + // check_escape_warning(yyscanner); + // addlitchar(c, yyscanner); + // if (c == '\0' || IS_HIGHBIT_SET(c)) + // yyextra->saw_non_ascii = true; + + let c = u32::from_str_radix( + &self.input[self.index_bytes + 1..self.index_bytes + self.yyleng], + 8, + ) + .unwrap(); + let c = char::from_u32(c).unwrap(); + + // self.check_escape_warning(); + self.addlitchar(c); + if c == '\0' || is_highbit_set(c) != 0 { + self.saw_non_ascii = true; + } + } + } + 35 => { + { + // unsigned char c = strtoul(yytext + 2, NULL, 16); + // + // check_escape_warning(yyscanner); + // addlitchar(c, yyscanner); + // if (c == '\0' || IS_HIGHBIT_SET(c)) + // yyextra->saw_non_ascii = true; + + let c = u32::from_str_radix( + &self.input[self.index_bytes + 1..self.index_bytes + self.yyleng], + 16, + ) + .unwrap(); + let c = char::from_u32(c).unwrap(); + + // self.check_escape_warning(); + self.addlitchar(c); + if c == '\0' || is_highbit_set(c) != 0 { + self.saw_non_ascii = true; + } + } + } + 36 => { + { + // /* This is only needed for \ just before EOF */ + // addlitchar(yytext[0], yyscanner); + + /* This is only needed for \ just before EOF */ + let c = self.input[self.index_bytes..].chars().next().unwrap(); + self.addlitchar(c); + } + } + 37 => { + yyerror!("unterminated quoted string"); + } + 38 => { + { + // SET_YYLLOC(); + // yyextra->dolqstart = pstrdup(yytext); + // BEGIN(xdolq); + // startlit(); + + self.set_yylloc(); + self.dolqstart = self.yytext(); + self.begin(State::xdolq); + self.literal.clear(); + } + } + 39 => { + { + // SET_YYLLOC(); + // /* throw back all but the initial "$" */ + // yyless(1); + // /* and treat it as {other} */ + // return yytext[0]; + + self.set_yylloc(); + /* throw back all but the initial "$" */ + self.yyless(1); + /* and treat it as {other} */ + return Ok(Some(TokenKind::RAW(self.yytext()))); + } + } + 40 => { + { + // if (strcmp(yytext, yyextra->dolqstart) == 0) + // { + // pfree(yyextra->dolqstart); + // yyextra->dolqstart = NULL; + // BEGIN(INITIAL); + // yylval->str = litbufdup(yyscanner); + // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; + // return SCONST; + // } + // else + // { + // /* + // * When we fail to match $...$ to dolqstart, transfer + // * the $... part to the output, but put back the final + // * $ for rescanning. Consider $delim$...$junk$delim$ + // */ + // addlit(yytext, yyleng - 1, yyscanner); + // yyless(yyleng - 1); + // } + + if self.yytext() == self.dolqstart { + self.dolqstart = "".to_string(); + self.begin(State::INITIAL); + self.yylval = Yylval::Str(self.literal.clone()); + self.set_yyllocend(); + return Ok(Some(TokenKind::SCONST)); + } else { + /* + * When we fail to match $...$ to dolqstart, transfer + * the $... part to the output, but put back the final + * $ for rescanning. Consider $delim$...$junk$delim$ + */ + self.addlit(self.yyleng - 1); + self.yyless(self.yyleng - 1); + } + } + } + 41 => { + { + // addlit(yytext, yyleng, yyscanner); + + self.addlit(self.yyleng); + } + } + 42 => { + { + // addlit(yytext, yyleng, yyscanner); + + self.addlit(self.yyleng); + } + } + 43 => { + { + // /* This is only needed for $ inside the quoted text */ + // addlitchar(yytext[0], yyscanner); + + let c = self.yytext().chars().next().unwrap(); + self.addlitchar(c); + } + } + 44 => { + yyerror!("unterminated dollar-quoted string"); + } + 45 => { + { + // SET_YYLLOC(); + // BEGIN(xd); + // startlit(); + + self.set_yylloc(); + self.begin(State::xd); + self.literal.clear(); + } + } + 46 => { + { + // SET_YYLLOC(); + // BEGIN(xui); + // startlit(); + + self.set_yylloc(); + self.begin(State::xui); + self.literal.clear(); + } + } + 47 => { + { + // char *ident; + // + // BEGIN(INITIAL); + // if (yyextra->literallen == 0) + // yyerror("zero-length delimited identifier"); + // ident = litbufdup(yyscanner); + // if (yyextra->literallen >= NAMEDATALEN) + // truncate_identifier(ident, yyextra->literallen, true); + // yylval->str = ident; + // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; + // return IDENT; + + self.begin(State::INITIAL); + if self.literal.len() == 0 { + yyerror!("zero-length delimited identifier"); + } + let ident = self.literal.clone(); + if self.literal.len() >= NAMEDATALEN { + // TODO + // panic!(); + } + self.yylval = Yylval::Str(ident); + self.set_yyllocend(); + return Ok(Some(TokenKind::IDENT)); + } + } + 48 => { + { + // BEGIN(INITIAL); + // if (yyextra->literallen == 0) + // yyerror("zero-length delimited identifier"); + // /* can't truncate till after we de-escape the ident */ + // yylval->str = litbufdup(yyscanner); + // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; + // return UIDENT; + + self.begin(State::INITIAL); + if self.literal.len() == 0 { + yyerror!("zero-length delimited identifier"); + } + /* can't truncate till after we de-escape the ident */ + self.yylval = Yylval::Str(self.yytext()); + self.set_yyllocend(); + return Ok(Some(TokenKind::UIDENT)); + } + } + 49 => { + { + // addlitchar('"', yyscanner); + + self.addlitchar('"'); + } + } + 50 => { + { + // addlit(yytext, yyleng, yyscanner); + + self.addlit(self.yyleng); + } + } + 51 => { + yyerror!("unterminated quoted identifier"); + } + 52 => { + { + // char *ident; + // + // SET_YYLLOC(); + // /* throw back all but the initial u/U */ + // yyless(1); + // /* and treat it as {identifier} */ + // ident = downcase_truncate_identifier(yytext, yyleng, true); + // yylval->str = ident; + // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; + // return IDENT; + + self.set_yylloc(); + self.yyless(1); + // FIXME + // let ident = downcase_truncate_identifier(yytext, yyleng, true); + let ident = self.yytext(); + self.yylval = Yylval::Str(ident); + self.set_yyllocend(); + return Ok(Some(TokenKind::IDENT)); + } + } + 53 => { + { + // SET_YYLLOC(); + // return TYPECAST; + + self.set_yylloc(); + return Ok(Some(TokenKind::TYPECAST)); + } + } + 54 => { + { + // SET_YYLLOC(); + // return DOT_DOT; + + self.set_yylloc(); + return Ok(Some(TokenKind::DOT_DOT)); + } + } + 55 => { + { + // SET_YYLLOC(); + // return COLON_EQUALS; + + self.set_yylloc(); + return Ok(Some(TokenKind::COLON_EQUALS)); + } + } + 56 => { + { + // SET_YYLLOC(); + // return EQUALS_GREATER; + + self.set_yylloc(); + return Ok(Some(TokenKind::EQUALS_GREATER)); + } + } + 57 => { + { + // SET_YYLLOC(); + // return LESS_EQUALS; + + self.set_yylloc(); + return Ok(Some(TokenKind::LESS_EQUALS)); + } + } + 58 => { + { + // SET_YYLLOC(); + // return GREATER_EQUALS; + + self.set_yylloc(); + return Ok(Some(TokenKind::GREATER_EQUALS)); + } + } + 59 => { + { + // /* We accept both "<>" and "!=" as meaning NOT_EQUALS */ + // SET_YYLLOC(); + // return NOT_EQUALS; + + /* We accept both "<>" and "!=" as meaning NOT_EQUALS */ + self.set_yylloc(); + return Ok(Some(TokenKind::NOT_EQUALS)); + } + } + 60 => { + { + // /* We accept both "<>" and "!=" as meaning NOT_EQUALS */ + // SET_YYLLOC(); + // return NOT_EQUALS; + + /* We accept both "<>" and "!=" as meaning NOT_EQUALS */ + self.set_yylloc(); + return Ok(Some(TokenKind::NOT_EQUALS)); + } + } + 61 => { + { + // SET_YYLLOC(); + // return yytext[0]; + + self.set_yylloc(); + return Ok(Some(TokenKind::RAW(self.yytext()[0..1].to_string()))); + } + } + 62 => { + { + // /* + // * Check for embedded slash-star or dash-dash; those + // * are comment starts, so operator must stop there. + // * Note that slash-star or dash-dash at the first + // * character will match a prior rule, not this one. + // */ + // int nchars = yyleng; + // char *slashstar = strstr(yytext, "/*"); + // char *dashdash = strstr(yytext, "--"); + // + // if (slashstar && dashdash) + // { + // /* if both appear, take the first one */ + // if (slashstar > dashdash) + // slashstar = dashdash; + // } + // else if (!slashstar) + // slashstar = dashdash; + // if (slashstar) + // nchars = slashstar - yytext; + // + // /* + // * For SQL compatibility, '+' and '-' cannot be the + // * last char of a multi-char operator unless the operator + // * contains chars that are not in SQL operators. + // * The idea is to lex '=-' as two operators, but not + // * to forbid operator names like '?-' that could not be + // * sequences of SQL operators. + // */ + // if (nchars > 1 && + // (yytext[nchars - 1] == '+' || + // yytext[nchars - 1] == '-')) + // { + // int ic; + // + // for (ic = nchars - 2; ic >= 0; ic--) + // { + // char c = yytext[ic]; + // if (c == '~' || c == '!' || c == '@' || + // c == '#' || c == '^' || c == '&' || + // c == '|' || c == '`' || c == '?' || + // c == '%') + // break; + // } + // if (ic < 0) + // { + // /* + // * didn't find a qualifying character, so remove + // * all trailing [+-] + // */ + // do { + // nchars--; + // } while (nchars > 1 && + // (yytext[nchars - 1] == '+' || + // yytext[nchars - 1] == '-')); + // } + // } + // + // SET_YYLLOC(); + // + // if (nchars < yyleng) + // { + // /* Strip the unwanted chars from the token */ + // yyless(nchars); + // /* + // * If what we have left is only one char, and it's + // * one of the characters matching "self", then + // * return it as a character token the same way + // * that the "self" rule would have. + // */ + // if (nchars == 1 && + // strchr(",()[].;:+-*/%^<>=", yytext[0])) + // return yytext[0]; + // /* + // * Likewise, if what we have left is two chars, and + // * those match the tokens ">=", "<=", "=>", "<>" or + // * "!=", then we must return the appropriate token + // * rather than the generic Op. + // */ + // if (nchars == 2) + // { + // if (yytext[0] == '=' && yytext[1] == '>') + // return EQUALS_GREATER; + // if (yytext[0] == '>' && yytext[1] == '=') + // return GREATER_EQUALS; + // if (yytext[0] == '<' && yytext[1] == '=') + // return LESS_EQUALS; + // if (yytext[0] == '<' && yytext[1] == '>') + // return NOT_EQUALS; + // if (yytext[0] == '!' && yytext[1] == '=') + // return NOT_EQUALS; + // } + // } + // + // /* + // * Complain if operator is too long. Unlike the case + // * for identifiers, we make this an error not a notice- + // * and-truncate, because the odds are we are looking at + // * a syntactic mistake anyway. + // */ + // if (nchars >= NAMEDATALEN) + // yyerror("operator too long"); + // + // yylval->str = pstrdup(yytext); + // return Op; + + /* + * Check for embedded slash-star or dash-dash; those + * are comment starts, so operator must stop there. + * Note that slash-star or dash-dash at the first + * character will match a prior rule, not this one. + */ + let mut nchars = self.yyleng; + let yytext = self.yytext(); + let mut slashstar = yytext.find("/*"); + let dashdash = yytext.find("--"); + + let dashdash_first = match (&slashstar, &dashdash) { + (Some(slashstar_index), Some(dashdash_index)) + if slashstar_index > dashdash_index => + { + true + } + (None, Some(_)) => true, + _ => false, + }; + + if dashdash_first { + slashstar = dashdash; + } + + if let Some(i) = slashstar { + nchars = i; + } + + /* + * For SQL compatibility, '+' and '-' cannot be the + * last char of a multi-char operator unless the operator + * contains chars that are not in SQL operators. + * The idea is to lex '=-' as two operators, but not + * to forbid operator names like '?-' that could not be + * sequences of SQL operators. + */ + if nchars > 1 + && (get_char_by_byte_pos(&yytext, nchars - 1) == '+' + || get_char_by_byte_pos(&yytext, nchars - 1) == '-') + { + let b = (0..nchars - 1).any(|ic| { + matches!( + get_char_by_byte_pos(&yytext, ic), + '~' | '!' | '@' | '#' | '^' | '&' | '|' | '`' | '?' | '%' + ) + }); + if !b { + loop { + nchars -= 1; + + if !(nchars > 1 + && (get_char_by_byte_pos(&yytext, nchars - 1) == '+' + || get_char_by_byte_pos(&yytext, nchars - 1) == '-')) + { + break; + } + } + } + } + + self.set_yylloc(); + + if nchars < self.yyleng { + /* Strip the unwanted chars from the token */ + self.yyless(nchars); + /* + * If what we have left is only one char, and it's + * one of the characters matching "self", then + * return it as a character token the same way + * that the "self" rule would have. + */ + if nchars == 1 + && ",()[].;:+-*/%^<>=" + .find(get_char_by_byte_pos(&yytext, 0)) + .is_some() + { + return Ok(Some(TokenKind::RAW(yytext[0..1].to_string()))); + } + /* + * Likewise, if what we have left is two chars, and + * those match the tokens ">=", "<=", "=>", "<>" or + * "!=", then we must return the appropriate token + * rather than the generic Op. + */ + if nchars == 2 { + if &yytext[0..2] == "=>" { + return Ok(Some(TokenKind::EQUALS_GREATER)); + } + if &yytext[0..2] == ">=" { + return Ok(Some(TokenKind::GREATER_EQUALS)); + } + if &yytext[0..2] == "<=" { + return Ok(Some(TokenKind::LESS_EQUALS)); + } + if &yytext[0..2] == "<>" { + return Ok(Some(TokenKind::NOT_EQUALS)); + } + if &yytext[0..2] == "!=" { + return Ok(Some(TokenKind::NOT_EQUALS)); + } + } + } + + /* + * Complain if operator is too long. Unlike the case + * for identifiers, we make this an error not a notice- + * and-truncate, because the odds are we are looking at + * a syntactic mistake anyway. + */ + if nchars >= NAMEDATALEN { + yyerror!("operator too long"); + } + + self.yylval = Yylval::Str(yytext); + return Ok(Some(TokenKind::Op)); + } + } + 63 => { + { + // SET_YYLLOC(); + // yylval->ival = atol(yytext + 1); + // return PARAM; + + self.set_yylloc(); + self.yylval = + Yylval::I(i32::from_str_radix(&self.yytext()[1..], 10).unwrap()); + return Ok(Some(TokenKind::PARAM)); + } + } + 64 => { + { + // SET_YYLLOC(); + // return process_integer_literal(yytext, yylval, 10); + + self.set_yylloc(); + return Ok(self.process_integer_literal(10)); + } + } + 65 => { + { + // SET_YYLLOC(); + // return process_integer_literal(yytext, yylval, 16); + + self.set_yylloc(); + return Ok(self.process_integer_literal(16)); + } + } + 66 => { + { + // SET_YYLLOC(); + // return process_integer_literal(yytext, yylval, 8); + + self.set_yylloc(); + return Ok(self.process_integer_literal(8)); + } + } + 67 => { + { + // SET_YYLLOC(); + // return process_integer_literal(yytext, yylval, 2); + + self.set_yylloc(); + return Ok(self.process_integer_literal(2)); + } + } + 68 => { + { + // SET_YYLLOC(); + // yyerror("invalid hexadecimal integer"); + + self.set_yylloc(); + yyerror!("invalid hexadecimal integer"); + } + } + 69 => { + { + // SET_YYLLOC(); + // yyerror("invalid octal integer"); + + self.set_yylloc(); + yyerror!("invalid octal integer"); + } + } + 70 => { + { + // SET_YYLLOC(); + // yyerror("invalid binary integer"); + + self.set_yylloc(); + yyerror!("invalid binary integer"); + } + } + 71 => { + { + // SET_YYLLOC(); + // yylval->str = pstrdup(yytext); + // return FCONST; + + self.set_yylloc(); + self.yylval = Yylval::Str(self.yytext()); + return Ok(Some(TokenKind::FCONST)); + } + } + 72 => { + { + // /* throw back the .., and treat as integer */ + // yyless(yyleng - 2); + // SET_YYLLOC(); + // return process_integer_literal(yytext, yylval, 10); + + /* throw back the .., and treat as integer */ + self.yyless(self.yyleng - 2); + self.set_yylloc(); + return Ok(self.process_integer_literal(10)); + } + } + 73 => { + { + // SET_YYLLOC(); + // yylval->str = pstrdup(yytext); + // return FCONST; + + self.set_yylloc(); + self.yylval = Yylval::Str(self.yytext()); + return Ok(Some(TokenKind::FCONST)); + } + } + 74 => { + { + // SET_YYLLOC(); + // yyerror("trailing junk after numeric literal"); + + self.set_yylloc(); + yyerror!("trailing junk after numeric literal"); + } + } + 75 => { + { + // SET_YYLLOC(); + // yyerror("trailing junk after numeric literal"); + + self.set_yylloc(); + yyerror!("trailing junk after numeric literal"); + } + } + 76 => { + { + // SET_YYLLOC(); + // yyerror("trailing junk after numeric literal"); + + self.set_yylloc(); + yyerror!("trailing junk after numeric literal"); + } + } + 77 => { + { + // SET_YYLLOC(); + // yyerror("trailing junk after numeric literal"); + + self.set_yylloc(); + yyerror!("trailing junk after numeric literal"); + } + } + 78 => { + { + // int kwnum; + // char *ident; + // + // SET_YYLLOC(); + // + // /* Is it a keyword? */ + // kwnum = ScanKeywordLookup(yytext, + // yyextra->keywordlist); + // if (kwnum >= 0) + // { + // yylval->keyword = GetScanKeyword(kwnum, + // yyextra->keywordlist); + // return yyextra->keyword_tokens[kwnum]; + // } + // + // /* + // * No. Convert the identifier to lower case, and truncate + // * if necessary. + // */ + // ident = downcase_truncate_identifier(yytext, yyleng, true); + // yylval->str = ident; + // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; + // return IDENT; + + self.set_yylloc(); + + /* Is it a keyword? */ + let yytext = self.yytext(); + if let Some((kw, kw_token)) = self.get_keyword(&yytext) { + self.yylval = Yylval::Keyword(kw); + return Ok(Some(TokenKind::KEYWORD(kw_token))); + } + + /* + * No. Convert the identifier to lower case, and truncate + * if necessary. + */ + let ident = self.downcase_truncate_identifier(self.yyleng, true); + self.yylval = Yylval::Str(ident); + self.set_yyllocend(); + return Ok(Some(TokenKind::IDENT)); + } + } + 79 => { + { + // SET_YYLLOC(); + // return yytext[0]; + + self.set_yylloc(); + return Ok(Some(TokenKind::RAW(yytext[0..1].to_string()))); + } + } + 80 => { + { + // SET_YYLLOC(); + // yyterminate(); + + self.set_yylloc(); + yyterminate!(); + } + } + 255 => {} + _ => { + unreachable!() + } + } + self.advance(); + } + } + + #[cfg(feature = "regex-match")] + pub fn parse_token(&mut self) -> Result, ParserError> { loop { - let (m, kind) = self.find_match(); + let (match_len, kind) = self.find_match_len(); - self.yyleng = m.len(); + self.yyleng = match_len; let yytext = self.yytext(); match kind { @@ -147,11 +5147,23 @@ impl Lexer { { /* ignore */ } } RuleKind::INITIAL2 => { - self.set_yylloc(); - return Some(TokenKind::SQL_COMMENT); + { + // SET_YYLLOC(); + // return SQL_COMMENT; + + self.set_yylloc(); + return Ok(Some(TokenKind::SQL_COMMENT)); + } } RuleKind::INITIAL3 => { { + // /* Set location in case of syntax error in comment */ + // SET_YYLLOC(); + // yyextra->xcdepth = 0; + // BEGIN(xc); + // /* Put back any characters past slash-star; see above */ + // yyless(2); + /* Set location in case of syntax error in comment */ self.set_yylloc(); self.xcdepth = 0; @@ -162,18 +5174,33 @@ impl Lexer { } RuleKind::xc1 => { { + // (yyextra->xcdepth)++; + // /* Put back any characters past slash-star; see above */ + // yyless(2); + self.xcdepth += 1; /* Put back any characters past slash-star; see above */ self.yyless(2); } } RuleKind::xc2 => { - if self.xcdepth <= 0 { - self.begin(State::INITIAL); - self.set_yyllocend(); - return Some(TokenKind::C_COMMENT); - } else { - self.xcdepth -= 1; + { + // if (yyextra->xcdepth <= 0) + // { + // BEGIN(INITIAL); + // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; + // return C_COMMENT; + // } + // else + // (yyextra->xcdepth)--; + + if self.xcdepth <= 0 { + self.begin(State::INITIAL); + self.set_yyllocend(); + return Ok(Some(TokenKind::C_COMMENT)); + } else { + self.xcdepth -= 1; + } } } RuleKind::xc3 => { @@ -186,10 +5213,21 @@ impl Lexer { { /* ignore */ } } RuleKind::xc6 => { - yyerror("unterminated /* comment"); + yyerror!("unterminated /* comment"); } RuleKind::INITIAL4 => { { + // /* Binary bit type. + // * At some point we should simply pass the string + // * forward to the parser and label it there. + // * In the meantime, place a leading "b" on the string + // * to mark it for the input routine as a binary string. + // */ + // SET_YYLLOC(); + // BEGIN(xb); + // startlit(); + // addlitchar('b', yyscanner); + /* Binary bit type. * At some point we should simply pass the string * forward to the parser and label it there. @@ -199,21 +5237,32 @@ impl Lexer { self.set_yylloc(); self.begin(State::xb); self.literal.clear(); - // self.literal += 'b'; self.addlitchar('b'); } } RuleKind::xh1 | RuleKind::xb1 => { { // addlit(yytext, yyleng, yyscanner); + self.addlit(self.yyleng); } } RuleKind::xb2 => { - yyerror("unterminated bit string literal"); + yyerror!("unterminated bit string literal"); } RuleKind::INITIAL5 => { { + // /* Hexadecimal bit type. + // * At some point we should simply pass the string + // * forward to the parser and label it there. + // * In the meantime, place a leading "x" on the string + // * to mark it for the input routine as a hex string. + // */ + // SET_YYLLOC(); + // BEGIN(xh); + // startlit(); + // addlitchar('x', yyscanner); + /* Hexadecimal bit type. * At some point we should simply pass the string * forward to the parser and label it there. @@ -223,31 +5272,29 @@ impl Lexer { self.set_yylloc(); self.begin(State::xh); self.literal.clear(); - // self.literal += 'x'; self.addlitchar('x'); } } RuleKind::xh2 => { - yyerror("unterminated hexadecimal string literal"); + yyerror!("unterminated hexadecimal string literal"); } RuleKind::INITIAL6 => { { - /* National character. - * We will pass this along as a normal character string, - * but preceded with an internally-generated "NCHAR". - */ - self.set_yylloc(); - self.yyless(1); /* eat only 'n' this time */ - - // kwnumは文字列のキーワード位置のオフセット + // /* National character. + // * We will pass this along as a normal character string, + // * but preceded with an internally-generated "NCHAR". + // */ + // int kwnum; + // + // SET_YYLLOC(); + // yyless(1); /* eat only 'n' this time */ + // // kwnum = ScanKeywordLookup("nchar", // yyextra->keywordlist); // if (kwnum >= 0) // { - // キーワードの文字列をセット // yylval->keyword = GetScanKeyword(kwnum, // yyextra->keywordlist); - // キーワードのIDを返す。IDはbison grammarのtoken typeの数値で返す // return yyextra->keyword_tokens[kwnum]; // } // else @@ -258,22 +5305,35 @@ impl Lexer { // return IDENT; // } + self.set_yylloc(); + self.yyless(1); /* eat only 'n' this time */ + if let Some((kw, kw_token)) = self.get_keyword("nchar") { self.yylval = Yylval::Keyword(kw); - return Some(TokenKind::KEYWORD(kw_token)); + return Ok(Some(TokenKind::KEYWORD(kw_token))); } else { /* If NCHAR isn't a keyword, just return "n" */ self.yylval = Yylval::Str("n".to_string()); self.set_yyllocend(); - return Some(TokenKind::IDENT); + return Ok(Some(TokenKind::IDENT)); } } } RuleKind::INITIAL7 => { { - self.set_yylloc(); + // yyextra->warn_on_first_escape = true; + // yyextra->saw_non_ascii = false; + // SET_YYLLOC(); // if (yyextra->standard_conforming_strings) - if true { + // BEGIN(xq); + // else + // BEGIN(xe); + // startlit(); + + self.warn_on_first_escape = true; + self.saw_non_ascii = false; + self.set_yylloc(); + if STANDARD_CONFORMING_STRINGS { self.begin(State::xq); } else { self.begin(State::xe); @@ -282,20 +5342,39 @@ impl Lexer { } } RuleKind::INITIAL8 => { - self.set_yylloc(); - self.begin(State::xe); - self.literal.clear(); + { + // yyextra->warn_on_first_escape = false; + // yyextra->saw_non_ascii = false; + // SET_YYLLOC(); + // BEGIN(xe); + // startlit(); + + self.warn_on_first_escape = false; + self.saw_non_ascii = false; + self.set_yylloc(); + self.begin(State::xe); + self.literal.clear(); + } } RuleKind::INITIAL9 => { { - self.set_yylloc(); + // SET_YYLLOC(); // if (!yyextra->standard_conforming_strings) - if false { - // ereport(ERROR, - // (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - // errmsg("unsafe use of string constant with Unicode escapes"), - // errdetail("String constants with Unicode escapes cannot be used when standard_conforming_strings is off."), - // lexer_errposition())); + // ereport(ERROR, + // (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + // errmsg("unsafe use of string constant with Unicode escapes"), + // errdetail("String constants with Unicode escapes cannot be used when \"standard_conforming_strings\" is off."), + // lexer_errposition())); + // BEGIN(xus); + // startlit(); + + self.set_yylloc(); + if !STANDARD_CONFORMING_STRINGS { + ereport!(self, ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("unsafe use of string constant with Unicode escapes"), + errdetail("String constants with Unicode escapes cannot be used when standard_conforming_strings is off."), + self.lexer_errposition())); } self.begin(State::xus); self.literal.clear(); @@ -303,6 +5382,17 @@ impl Lexer { } RuleKind::xb3 => { { + // /* + // * When we are scanning a quoted string and see an end + // * quote, we must look ahead for a possible continuation. + // * If we don't see one, we know the end quote was in fact + // * the end of the string. To reduce the lexer table size, + // * we use a single "xqs" state to do the lookahead for all + // * types of strings. + // */ + // yyextra->state_before_str_stop = YYSTATE; + // BEGIN(xqs); + /* * When we are scanning a quoted string and see an end * quote, we must look ahead for a possible continuation. @@ -317,6 +5407,17 @@ impl Lexer { } RuleKind::xh3 => { { + // /* + // * When we are scanning a quoted string and see an end + // * quote, we must look ahead for a possible continuation. + // * If we don't see one, we know the end quote was in fact + // * the end of the string. To reduce the lexer table size, + // * we use a single "xqs" state to do the lookahead for all + // * types of strings. + // */ + // yyextra->state_before_str_stop = YYSTATE; + // BEGIN(xqs); + /* * When we are scanning a quoted string and see an end * quote, we must look ahead for a possible continuation. @@ -331,6 +5432,17 @@ impl Lexer { } RuleKind::xq1 => { { + // /* + // * When we are scanning a quoted string and see an end + // * quote, we must look ahead for a possible continuation. + // * If we don't see one, we know the end quote was in fact + // * the end of the string. To reduce the lexer table size, + // * we use a single "xqs" state to do the lookahead for all + // * types of strings. + // */ + // yyextra->state_before_str_stop = YYSTATE; + // BEGIN(xqs); + /* * When we are scanning a quoted string and see an end * quote, we must look ahead for a possible continuation. @@ -345,6 +5457,17 @@ impl Lexer { } RuleKind::xe1 => { { + // /* + // * When we are scanning a quoted string and see an end + // * quote, we must look ahead for a possible continuation. + // * If we don't see one, we know the end quote was in fact + // * the end of the string. To reduce the lexer table size, + // * we use a single "xqs" state to do the lookahead for all + // * types of strings. + // */ + // yyextra->state_before_str_stop = YYSTATE; + // BEGIN(xqs); + /* * When we are scanning a quoted string and see an end * quote, we must look ahead for a possible continuation. @@ -359,6 +5482,17 @@ impl Lexer { } RuleKind::xus1 => { { + // /* + // * When we are scanning a quoted string and see an end + // * quote, we must look ahead for a possible continuation. + // * If we don't see one, we know the end quote was in fact + // * the end of the string. To reduce the lexer table size, + // * we use a single "xqs" state to do the lookahead for all + // * types of strings. + // */ + // yyextra->state_before_str_stop = YYSTATE; + // BEGIN(xqs); + /* * When we are scanning a quoted string and see an end * quote, we must look ahead for a possible continuation. @@ -373,6 +5507,13 @@ impl Lexer { } RuleKind::xqs1 => { { + // /* + // * Found a quote continuation, so return to the in-quote + // * state and continue scanning the literal. Nothing is + // * added to the literal's contents. + // */ + // BEGIN(yyextra->state_before_str_stop); + /* * Found a quote continuation, so return to the in-quote * state and continue scanning the literal. Nothing is @@ -383,14 +5524,14 @@ impl Lexer { } RuleKind::xqs2 | RuleKind::xqs3 | RuleKind::xqs4 => { { - /* - * Failed to see a quote continuation. Throw back - * everything after the end quote, and handle the string - * according to the state we were in previously. - */ - self.yyless(0); - self.begin(State::INITIAL); - + // /* + // * Failed to see a quote continuation. Throw back + // * everything after the end quote, and handle the string + // * according to the state we were in previously. + // */ + // yyless(0); + // BEGIN(INITIAL); + // // switch (yyextra->state_before_str_stop) // { // case xb: @@ -422,207 +5563,282 @@ impl Lexer { // yyerror("unhandled previous state in xqs"); // } + /* + * Failed to see a quote continuation. Throw back + * everything after the end quote, and handle the string + * according to the state we were in previously. + */ + self.yyless(0); + self.begin(State::INITIAL); + match self.state_before_str_stop { State::xb => { self.yylval = Yylval::Str(self.literal.clone()); self.set_yyllocend(); - return Some(TokenKind::BCONST); + return Ok(Some(TokenKind::BCONST)); } State::xh => { self.yylval = Yylval::Str(self.literal.clone()); self.set_yyllocend(); - return Some(TokenKind::XCONST); + return Ok(Some(TokenKind::XCONST)); } State::xq | State::xe => { /* * Check that the data remains valid, if it might * have been made invalid by unescaping any chars. */ + // TODO verify // if (yyextra->saw_non_ascii) // pg_verifymbstr(yyextra->literalbuf, // yyextra->literallen, // false); self.yylval = Yylval::Str(self.literal.clone()); self.set_yyllocend(); - return Some(TokenKind::SCONST); + return Ok(Some(TokenKind::SCONST)); } State::xus => { self.yylval = Yylval::Str(self.literal.clone()); self.set_yyllocend(); - return Some(TokenKind::USCONST); + return Ok(Some(TokenKind::USCONST)); } - _ => yyerror("unhandled previous state in xqs"), + _ => yyerror!("unhandled previous state in xqs"), } } } RuleKind::xq2 => { { // self.literal += '\''; + self.addlitchar('\''); } } RuleKind::xe2 => { { // self.literal += '\''; + self.addlitchar('\''); } } RuleKind::xus2 => { { // self.literal += '\''; + self.addlitchar('\''); } } RuleKind::xq3 => { { // addlit(yytext, yyleng, yyscanner); - // self.literal += self.input[self.index_bytes..self.index_bytes + self.yyleng]; + self.addlit(self.yyleng); } } RuleKind::xus3 => { { // addlit(yytext, yyleng, yyscanner); - // self.literal += self.input[self.index_bytes..self.index_bytes + self.yyleng]; + self.addlit(self.yyleng); } } RuleKind::xe3 => { { // addlit(yytext, yyleng, yyscanner); - // self.literal += self.input[self.index_bytes..self.index_bytes + self.yyleng]; + self.addlit(self.yyleng); } } RuleKind::xe4 => { { // pg_wchar c = strtoul(yytext + 2, NULL, 16); - // let c = u32::from_str_radix(&self.input[self.index_bytes+2..self.index_bytes + self.yyleng], 16).unwrap(); - // let c = char::from_u32(c).unwrap(); - - /* - * For consistency with other productions, issue any - * escape warning with cursor pointing to start of string. - * We might want to change that, someday. - */ + // + // /* + // * For consistency with other productions, issue any + // * escape warning with cursor pointing to start of string. + // * We might want to change that, someday. + // */ // check_escape_warning(yyscanner); - - /* Remember start of overall string token ... */ + // + // /* Remember start of overall string token ... */ // PUSH_YYLLOC(); - // self.push_yylloc(); - /* ... and set the error cursor to point at this esc seq */ + // /* ... and set the error cursor to point at this esc seq */ // SET_YYLLOC(); - // self.set_yylloc(); - - // TODO - // if is_utf16_surrogate_first(c) { - // // yyextra->utf16_first_part = c; - // self.utf16_first_part = c; - // self.begin(State::xeu); - // } else if (is_utf16_surrogate_second(c)) { - // yyerror("invalid Unicode surrogate pair"); - // } else { - // // addunicode(c, yyscanner); - // self.addunicode(c); + // + // if (is_utf16_surrogate_first(c)) + // { + // yyextra->utf16_first_part = c; + // BEGIN(xeu); // } - panic!(); - - /* Restore yylloc to be start of string token */ + // else if (is_utf16_surrogate_second(c)) + // yyerror("invalid Unicode surrogate pair"); + // else + // addunicode(c, yyscanner); + // + // /* Restore yylloc to be start of string token */ // POP_YYLLOC(); - // self.pop_yylloc(); + + let c = u32::from_str_radix( + &self.input[self.index_bytes + 2..self.index_bytes + self.yyleng], + 16, + ) + .unwrap(); + + self.push_yylloc(); + self.set_yylloc(); + + if is_utf16_surrogate_first(c) { + self.utf16_first_part = c; + self.begin(State::xeu); + } else if is_utf16_surrogate_second(c) { + yyerror!("invalid Unicode surrogate pair"); + } else { + self.addunicode(char::from_u32(c as u32).unwrap())?; + } + + self.pop_yylloc(); } } RuleKind::xeu1 => { { // pg_wchar c = strtoul(yytext + 2, NULL, 16); - // let c = u32::from_str_radix(&self.input[self.index_bytes+2..self.index_bytes + self.yyleng], 16).unwrap(); - // let c = char::from_u32(c).unwrap(); - - /* Remember start of overall string token ... */ + // + // /* Remember start of overall string token ... */ // PUSH_YYLLOC(); - // self.push_yylloc(); - /* ... and set the error cursor to point at this esc seq */ - // self.set_yylloc(); - - // TODO - // if !is_utf16_surrogate_second(c) { + // /* ... and set the error cursor to point at this esc seq */ + // SET_YYLLOC(); + // + // if (!is_utf16_surrogate_second(c)) // yyerror("invalid Unicode surrogate pair"); - // } + // + // c = surrogate_pair_to_codepoint(yyextra->utf16_first_part, c); + // + // addunicode(c, yyscanner); + // + // /* Restore yylloc to be start of string token */ + // POP_YYLLOC(); + // + // BEGIN(xe); + + let c = u32::from_str_radix( + &self.input[self.index_bytes + 2..self.index_bytes + self.yyleng], + 16, + ) + .unwrap(); - // // c = surrogate_pair_to_codepoint(yyextra->utf16_first_part, c); - // let c = surrogate_pair_to_codepoint(self.utf16_first_part, c); + self.push_yylloc(); + self.set_yylloc(); - // // addunicode(c, yyscanner); - // self.addunicode(c); - panic!(); + if !is_utf16_surrogate_second(c) { + yyerror!("invalid Unicode surrogate pair"); + } - /* Restore yylloc to be start of string token */ - // POP_YYLLOC(); - // self.pop_yylloc(); + let c = surrogate_pair_to_codepoint(self.utf16_first_part, c); + self.addunicode(c)?; - // self.begin(State::xe); + self.pop_yylloc(); + self.begin(State::xe); } } RuleKind::xeu2 | RuleKind::xeu3 | RuleKind::xeu4 => { { + // /* Set the error cursor to point at missing esc seq */ + // SET_YYLLOC(); + // yyerror("invalid Unicode surrogate pair"); + /* Set the error cursor to point at missing esc seq */ self.set_yylloc(); - yyerror("invalid Unicode surrogate pair"); + yyerror!("invalid Unicode surrogate pair"); } } RuleKind::xe5 => { { - /* Set the error cursor to point at malformed esc seq */ - self.set_yylloc(); - + // /* Set the error cursor to point at malformed esc seq */ + // SET_YYLLOC(); // ereport(ERROR, // (errcode(ERRCODE_INVALID_ESCAPE_SEQUENCE), // errmsg("invalid Unicode escape"), // errhint("Unicode escapes must be \\uXXXX or \\UXXXXXXXX."), // lexer_errposition())); - panic!(); + + self.set_yylloc(); + ereport!( + self, + ERROR, + ( + errcode(ERRCODE_INVALID_ESCAPE_SEQUENCE), + errmsg("invalid Unicode escape"), + errhint("Unicode escapes must be \\uXXXX or \\UXXXXXXXX."), + self.lexer_errposition() + ) + ); } } RuleKind::xeu5 => { { - /* Set the error cursor to point at malformed esc seq */ - self.set_yylloc(); - + // /* Set the error cursor to point at malformed esc seq */ + // SET_YYLLOC(); // ereport(ERROR, // (errcode(ERRCODE_INVALID_ESCAPE_SEQUENCE), // errmsg("invalid Unicode escape"), // errhint("Unicode escapes must be \\uXXXX or \\UXXXXXXXX."), // lexer_errposition())); - panic!(); + + self.set_yylloc(); + ereport!( + self, + ERROR, + ( + errcode(ERRCODE_INVALID_ESCAPE_SEQUENCE), + errmsg("invalid Unicode escape"), + errhint("Unicode escapes must be \\uXXXX or \\UXXXXXXXX."), + self.lexer_errposition() + ) + ); } } RuleKind::xe6 => { { - /* - if (yytext[1] == '\'') - { - if (self.backslash_quote == BACKSLASH_QUOTE_OFF || - (self.backslash_quote == BACKSLASH_QUOTE_SAFE_ENCODING && - PG_ENCODING_IS_CLIENT_ONLY(pg_get_client_encoding()))) - // ereport(ERROR, - // (errcode(ERRCODE_NONSTANDARD_USE_OF_ESCAPE_CHARACTER), - // errmsg("unsafe use of \\' in a string literal"), - // errhint("Use '' to write quotes in strings. \\' is insecure in client-only encodings."), - // lexer_errposition())); - } - check_string_escape_warning(yytext[1], yyscanner); - */ + // if (yytext[1] == '\'') + // { + // if (yyextra->backslash_quote == BACKSLASH_QUOTE_OFF || + // (yyextra->backslash_quote == BACKSLASH_QUOTE_SAFE_ENCODING && + // PG_ENCODING_IS_CLIENT_ONLY(pg_get_client_encoding()))) + // ereport(ERROR, + // (errcode(ERRCODE_NONSTANDARD_USE_OF_ESCAPE_CHARACTER), + // errmsg("unsafe use of \\' in a string literal"), + // errhint("Use '' to write quotes in strings. \\' is insecure in client-only encodings."), + // lexer_errposition())); + // } + // check_string_escape_warning(yytext[1], yyscanner); // addlitchar(unescape_single_char(yytext[1], yyscanner), // yyscanner); - // let c = unescape_single_char(self.input[self.index_bytes + 1]); - // self.addlitchar(unescape_single_char(c)); - // TODO - panic!(); + + let c = self.yytext().chars().nth(1).unwrap(); + // if c == '\'' { + // if self.backslash_quote == BACKSLASH_QUOTE_OFF || + // (self.backslash_quote == BACKSLASH_QUOTE_SAFE_ENCODING && + // PG_ENCODING_IS_CLIENT_ONLY(pg_get_client_encoding())) { + // ereport!(self, ERROR, + // (errcode(ERRCODE_NONSTANDARD_USE_OF_ESCAPE_CHARACTER), + // errmsg("unsafe use of \\' in a string literal"), + // errhint("Use '' to write quotes in strings. \\' is insecure in client-only encodings."), + // self.lexer_errposition())); + // } + // } + + // self.check_string_escape_warning(c); + let c = self.unescape_single_char(c); + self.addlitchar(c); } } RuleKind::xe7 => { { // unsigned char c = strtoul(yytext + 1, NULL, 8); + // + // check_escape_warning(yyscanner); + // addlitchar(c, yyscanner); + // if (c == '\0' || IS_HIGHBIT_SET(c)) + // yyextra->saw_non_ascii = true; + let c = u32::from_str_radix( &self.input[self.index_bytes + 1..self.index_bytes + self.yyleng], 8, @@ -630,16 +5846,22 @@ impl Lexer { .unwrap(); let c = char::from_u32(c).unwrap(); - // check_escape_warning(yyscanner); - // addlitchar(c, yyscanner); + // self.check_escape_warning(); self.addlitchar(c); - // if (c == '\0' || IS_HIGHBIT_SET(c)) - // yyextra->saw_non_ascii = true; + if c == '\0' || is_highbit_set(c) != 0 { + self.saw_non_ascii = true; + } } } RuleKind::xe8 => { { // unsigned char c = strtoul(yytext + 2, NULL, 16); + // + // check_escape_warning(yyscanner); + // addlitchar(c, yyscanner); + // if (c == '\0' || IS_HIGHBIT_SET(c)) + // yyextra->saw_non_ascii = true; + let c = u32::from_str_radix( &self.input[self.index_bytes + 1..self.index_bytes + self.yyleng], 16, @@ -647,69 +5869,94 @@ impl Lexer { .unwrap(); let c = char::from_u32(c).unwrap(); - // check_escape_warning(yyscanner); - // addlitchar(c, yyscanner); + // self.check_escape_warning(); self.addlitchar(c); - // if (c == '\0' || IS_HIGHBIT_SET(c)) - // yyextra->saw_non_ascii = true; + if c == '\0' || is_highbit_set(c) != 0 { + self.saw_non_ascii = true; + } } } RuleKind::xe9 => { { - /* This is only needed for \ just before EOF */ + // /* This is only needed for \ just before EOF */ // addlitchar(yytext[0], yyscanner); + + /* This is only needed for \ just before EOF */ let c = self.input[self.index_bytes..].chars().next().unwrap(); self.addlitchar(c); } } RuleKind::xq4 => { - yyerror("unterminated quoted string"); + yyerror!("unterminated quoted string"); } RuleKind::xe10 => { - yyerror("unterminated quoted string"); + yyerror!("unterminated quoted string"); } RuleKind::xus4 => { - yyerror("unterminated quoted string"); + yyerror!("unterminated quoted string"); } RuleKind::INITIAL10 => { { + // SET_YYLLOC(); + // yyextra->dolqstart = pstrdup(yytext); + // BEGIN(xdolq); + // startlit(); + self.set_yylloc(); self.dolqstart = self.yytext(); - // yyextra->dolqstart = pstrdup(yytext); self.begin(State::xdolq); self.literal.clear(); } } RuleKind::INITIAL11 => { { + // SET_YYLLOC(); + // /* throw back all but the initial "$" */ + // yyless(1); + // /* and treat it as {other} */ + // return yytext[0]; + self.set_yylloc(); /* throw back all but the initial "$" */ self.yyless(1); /* and treat it as {other} */ - // これ何だろう - return Some(TokenKind::RAW(self.yytext())); + return Ok(Some(TokenKind::RAW(self.yytext()))); } } RuleKind::xdolq1 => { { // if (strcmp(yytext, yyextra->dolqstart) == 0) + // { + // pfree(yyextra->dolqstart); + // yyextra->dolqstart = NULL; + // BEGIN(INITIAL); + // yylval->str = litbufdup(yyscanner); + // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; + // return SCONST; + // } + // else + // { + // /* + // * When we fail to match $...$ to dolqstart, transfer + // * the $... part to the output, but put back the final + // * $ for rescanning. Consider $delim$...$junk$delim$ + // */ + // addlit(yytext, yyleng - 1, yyscanner); + // yyless(yyleng - 1); + // } + if self.yytext() == self.dolqstart { - // pfree(yyextra->dolqstart); - // yyextra->dolqstart = NULL; self.dolqstart = "".to_string(); self.begin(State::INITIAL); - // yylval->str = litbufdup(yyscanner); self.yylval = Yylval::Str(self.literal.clone()); - // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; self.set_yyllocend(); - return Some(TokenKind::SCONST); + return Ok(Some(TokenKind::SCONST)); } else { /* * When we fail to match $...$ to dolqstart, transfer * the $... part to the output, but put back the final * $ for rescanning. Consider $delim$...$junk$delim$ */ - // addlit(yytext, yyleng - 1, yyscanner); self.addlit(self.yyleng - 1); self.yyless(self.yyleng - 1); } @@ -718,180 +5965,253 @@ impl Lexer { RuleKind::xdolq2 => { { // addlit(yytext, yyleng, yyscanner); + self.addlit(self.yyleng); } } RuleKind::xdolq3 => { { // addlit(yytext, yyleng, yyscanner); + self.addlit(self.yyleng); } } RuleKind::xdolq4 => { { - /* This is only needed for $ inside the quoted text */ + // /* This is only needed for $ inside the quoted text */ // addlitchar(yytext[0], yyscanner); + let c = self.yytext().chars().next().unwrap(); self.addlitchar(c); } } RuleKind::xdolq5 => { - yyerror("unterminated dollar-quoted string"); + yyerror!("unterminated dollar-quoted string"); } RuleKind::INITIAL12 => { - self.set_yylloc(); - self.begin(State::xd); - self.literal.clear(); + { + // SET_YYLLOC(); + // BEGIN(xd); + // startlit(); + + self.set_yylloc(); + self.begin(State::xd); + self.literal.clear(); + } } RuleKind::INITIAL13 => { - self.set_yylloc(); - self.begin(State::xui); - self.literal.clear(); + { + // SET_YYLLOC(); + // BEGIN(xui); + // startlit(); + + self.set_yylloc(); + self.begin(State::xui); + self.literal.clear(); + } } RuleKind::xd1 => { { // char *ident; + // + // BEGIN(INITIAL); + // if (yyextra->literallen == 0) + // yyerror("zero-length delimited identifier"); + // ident = litbufdup(yyscanner); + // if (yyextra->literallen >= NAMEDATALEN) + // truncate_identifier(ident, yyextra->literallen, true); + // yylval->str = ident; + // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; + // return IDENT; self.begin(State::INITIAL); - // if (yyextra->literallen == 0) if self.literal.len() == 0 { - yyerror("zero-length delimited identifier"); + yyerror!("zero-length delimited identifier"); } - // ident = litbufdup(yyscanner); let ident = self.literal.clone(); - // if (yyextra->literallen >= NAMEDATALEN) if self.literal.len() >= NAMEDATALEN { - // truncate_identifier(ident, yyextra->literallen, true); - // truncate_identifier(&mut ident, self.literal.len(), true); - panic!(); + // TODO + // panic!(); } - // yylval->str = ident; self.yylval = Yylval::Str(ident); - // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; self.set_yyllocend(); - return Some(TokenKind::IDENT); + return Ok(Some(TokenKind::IDENT)); } } RuleKind::xui1 => { { + // BEGIN(INITIAL); + // if (yyextra->literallen == 0) + // yyerror("zero-length delimited identifier"); + // /* can't truncate till after we de-escape the ident */ + // yylval->str = litbufdup(yyscanner); + // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; + // return UIDENT; + self.begin(State::INITIAL); if self.literal.len() == 0 { - yyerror("zero-length delimited identifier"); + yyerror!("zero-length delimited identifier"); } /* can't truncate till after we de-escape the ident */ - // yylval->str = litbufdup(yyscanner); self.yylval = Yylval::Str(self.yytext()); - // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; self.set_yyllocend(); - return Some(TokenKind::UIDENT); + return Ok(Some(TokenKind::UIDENT)); } } RuleKind::xd2 => { { // addlitchar('"', yyscanner); + self.addlitchar('"'); } } RuleKind::xui2 => { { // addlitchar('"', yyscanner); + self.addlitchar('"'); } } RuleKind::xd3 => { { // addlit(yytext, yyleng, yyscanner); + self.addlit(self.yyleng); } } RuleKind::xui3 => { { // addlit(yytext, yyleng, yyscanner); + self.addlit(self.yyleng); } } RuleKind::xd4 => { - yyerror("unterminated quoted identifier"); + yyerror!("unterminated quoted identifier"); } RuleKind::xui4 => { - yyerror("unterminated quoted identifier"); + yyerror!("unterminated quoted identifier"); } RuleKind::INITIAL14 => { { // char *ident; + // + // SET_YYLLOC(); + // /* throw back all but the initial u/U */ + // yyless(1); + // /* and treat it as {identifier} */ + // ident = downcase_truncate_identifier(yytext, yyleng, true); + // yylval->str = ident; + // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; + // return IDENT; self.set_yylloc(); - /* throw back all but the initial u/U */ self.yyless(1); - /* and treat it as {identifier} */ - // ident = downcase_truncate_identifier(yytext, yyleng, true); - // let ident = self.downcase_truncate_identifier(self.yyleng, true); - // // yylval->str = ident; - // self.yylval = Yylval::Str(ident); - // // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; - // self.set_yyllocend(); - // return Some(TokenKind::IDENT); - panic!(); + // FIXME + // let ident = downcase_truncate_identifier(yytext, yyleng, true); + let ident = self.yytext(); + self.yylval = Yylval::Str(ident); + self.set_yyllocend(); + return Ok(Some(TokenKind::IDENT)); } } RuleKind::INITIAL15 => { - self.set_yylloc(); - return Some(TokenKind::TYPECAST); + { + // SET_YYLLOC(); + // return TYPECAST; + + self.set_yylloc(); + return Ok(Some(TokenKind::TYPECAST)); + } } RuleKind::INITIAL16 => { - self.set_yylloc(); - return Some(TokenKind::DOT_DOT); + { + // SET_YYLLOC(); + // return DOT_DOT; + + self.set_yylloc(); + return Ok(Some(TokenKind::DOT_DOT)); + } } RuleKind::INITIAL17 => { - self.set_yylloc(); - return Some(TokenKind::COLON_EQUALS); + { + // SET_YYLLOC(); + // return COLON_EQUALS; + + self.set_yylloc(); + return Ok(Some(TokenKind::COLON_EQUALS)); + } } RuleKind::INITIAL18 => { - self.set_yylloc(); - return Some(TokenKind::EQUALS_GREATER); + { + // SET_YYLLOC(); + // return EQUALS_GREATER; + + self.set_yylloc(); + return Ok(Some(TokenKind::EQUALS_GREATER)); + } } RuleKind::INITIAL19 => { - self.set_yylloc(); - return Some(TokenKind::LESS_EQUALS); + { + // SET_YYLLOC(); + // return LESS_EQUALS; + + self.set_yylloc(); + return Ok(Some(TokenKind::LESS_EQUALS)); + } } RuleKind::INITIAL20 => { - self.set_yylloc(); - return Some(TokenKind::GREATER_EQUALS); + { + // SET_YYLLOC(); + // return GREATER_EQUALS; + + self.set_yylloc(); + return Ok(Some(TokenKind::GREATER_EQUALS)); + } } RuleKind::INITIAL21 => { { + // /* We accept both "<>" and "!=" as meaning NOT_EQUALS */ + // SET_YYLLOC(); + // return NOT_EQUALS; + /* We accept both "<>" and "!=" as meaning NOT_EQUALS */ self.set_yylloc(); - return Some(TokenKind::NOT_EQUALS); + return Ok(Some(TokenKind::NOT_EQUALS)); } } RuleKind::INITIAL22 => { { + // /* We accept both "<>" and "!=" as meaning NOT_EQUALS */ + // SET_YYLLOC(); + // return NOT_EQUALS; + /* We accept both "<>" and "!=" as meaning NOT_EQUALS */ self.set_yylloc(); - return Some(TokenKind::NOT_EQUALS); + return Ok(Some(TokenKind::NOT_EQUALS)); } } RuleKind::INITIAL23 => { - self.set_yylloc(); - return Some(TokenKind::RAW(self.yytext()[0..1].to_string())); + { + // SET_YYLLOC(); + // return yytext[0]; + + self.set_yylloc(); + return Ok(Some(TokenKind::RAW(self.yytext()[0..1].to_string()))); + } } RuleKind::INITIAL24 => { { - /* - * Check for embedded slash-star or dash-dash; those - * are comment starts, so operator must stop there. - * Note that slash-star or dash-dash at the first - * character will match a prior rule, not this one. - */ + // /* + // * Check for embedded slash-star or dash-dash; those + // * are comment starts, so operator must stop there. + // * Note that slash-star or dash-dash at the first + // * character will match a prior rule, not this one. + // */ // int nchars = yyleng; - let mut nchars = self.yyleng; // char *slashstar = strstr(yytext, "/*"); // char *dashdash = strstr(yytext, "--"); - let yytext = self.yytext(); - let mut slashstar = yytext.find("/*"); - let dashdash = yytext.find("--"); - + // // if (slashstar && dashdash) // { // /* if both appear, take the first one */ @@ -902,6 +6222,102 @@ impl Lexer { // slashstar = dashdash; // if (slashstar) // nchars = slashstar - yytext; + // + // /* + // * For SQL compatibility, '+' and '-' cannot be the + // * last char of a multi-char operator unless the operator + // * contains chars that are not in SQL operators. + // * The idea is to lex '=-' as two operators, but not + // * to forbid operator names like '?-' that could not be + // * sequences of SQL operators. + // */ + // if (nchars > 1 && + // (yytext[nchars - 1] == '+' || + // yytext[nchars - 1] == '-')) + // { + // int ic; + // + // for (ic = nchars - 2; ic >= 0; ic--) + // { + // char c = yytext[ic]; + // if (c == '~' || c == '!' || c == '@' || + // c == '#' || c == '^' || c == '&' || + // c == '|' || c == '`' || c == '?' || + // c == '%') + // break; + // } + // if (ic < 0) + // { + // /* + // * didn't find a qualifying character, so remove + // * all trailing [+-] + // */ + // do { + // nchars--; + // } while (nchars > 1 && + // (yytext[nchars - 1] == '+' || + // yytext[nchars - 1] == '-')); + // } + // } + // + // SET_YYLLOC(); + // + // if (nchars < yyleng) + // { + // /* Strip the unwanted chars from the token */ + // yyless(nchars); + // /* + // * If what we have left is only one char, and it's + // * one of the characters matching "self", then + // * return it as a character token the same way + // * that the "self" rule would have. + // */ + // if (nchars == 1 && + // strchr(",()[].;:+-*/%^<>=", yytext[0])) + // return yytext[0]; + // /* + // * Likewise, if what we have left is two chars, and + // * those match the tokens ">=", "<=", "=>", "<>" or + // * "!=", then we must return the appropriate token + // * rather than the generic Op. + // */ + // if (nchars == 2) + // { + // if (yytext[0] == '=' && yytext[1] == '>') + // return EQUALS_GREATER; + // if (yytext[0] == '>' && yytext[1] == '=') + // return GREATER_EQUALS; + // if (yytext[0] == '<' && yytext[1] == '=') + // return LESS_EQUALS; + // if (yytext[0] == '<' && yytext[1] == '>') + // return NOT_EQUALS; + // if (yytext[0] == '!' && yytext[1] == '=') + // return NOT_EQUALS; + // } + // } + // + // /* + // * Complain if operator is too long. Unlike the case + // * for identifiers, we make this an error not a notice- + // * and-truncate, because the odds are we are looking at + // * a syntactic mistake anyway. + // */ + // if (nchars >= NAMEDATALEN) + // yyerror("operator too long"); + // + // yylval->str = pstrdup(yytext); + // return Op; + + /* + * Check for embedded slash-star or dash-dash; those + * are comment starts, so operator must stop there. + * Note that slash-star or dash-dash at the first + * character will match a prior rule, not this one. + */ + let mut nchars = self.yyleng; + let yytext = self.yytext(); + let mut slashstar = yytext.find("/*"); + let dashdash = yytext.find("--"); let dashdash_first = match (&slashstar, &dashdash) { (Some(slashstar_index), Some(dashdash_index)) @@ -929,35 +6345,6 @@ impl Lexer { * to forbid operator names like '?-' that could not be * sequences of SQL operators. */ - // if (nchars > 1 && - // (yytext[nchars - 1] == '+' || - // yytext[nchars - 1] == '-')) - // { - // int ic; - // - // for (ic = nchars - 2; ic >= 0; ic--) - // { - // char c = yytext[ic]; - // if (c == '~' || c == '!' || c == '@' || - // c == '#' || c == '^' || c == '&' || - // c == '|' || c == '`' || c == '?' || - // c == '%') - // break; - // } - // if (ic < 0) - // { - // /* - // * didn't find a qualifying character, so remove - // * all trailing [+-] - // */ - // do { - // nchars--; - // } while (nchars > 1 && - // (yytext[nchars - 1] == '+' || - // yytext[nchars - 1] == '-')); - // } - // } - if nchars > 1 && (get_char_by_byte_pos(&yytext, nchars - 1) == '+' || get_char_by_byte_pos(&yytext, nchars - 1) == '-') @@ -984,40 +6371,6 @@ impl Lexer { self.set_yylloc(); - // if (nchars < yyleng) - // { - // /* Strip the unwanted chars from the token */ - // yyless(nchars); - // /* - // * If what we have left is only one char, and it's - // * one of the characters matching "self", then - // * return it as a character token the same way - // * that the "self" rule would have. - // */ - // if (nchars == 1 && - // strchr(",()[].;:+-*/%^<>=", yytext[0])) - // return yytext[0]; - // /* - // * Likewise, if what we have left is two chars, and - // * those match the tokens ">=", "<=", "=>", "<>" or - // * "!=", then we must return the appropriate token - // * rather than the generic Op. - // */ - // if (nchars == 2) - // { - // if (yytext[0] == '=' && yytext[1] == '>') - // return EQUALS_GREATER; - // if (yytext[0] == '>' && yytext[1] == '=') - // return GREATER_EQUALS; - // if (yytext[0] == '<' && yytext[1] == '=') - // return LESS_EQUALS; - // if (yytext[0] == '<' && yytext[1] == '>') - // return NOT_EQUALS; - // if (yytext[0] == '!' && yytext[1] == '=') - // return NOT_EQUALS; - // } - // } - if nchars < self.yyleng { /* Strip the unwanted chars from the token */ self.yyless(nchars); @@ -1032,7 +6385,7 @@ impl Lexer { .find(get_char_by_byte_pos(&yytext, 0)) .is_some() { - return Some(TokenKind::RAW(yytext[0..1].to_string())); + return Ok(Some(TokenKind::RAW(yytext[0..1].to_string()))); } /* * Likewise, if what we have left is two chars, and @@ -1042,19 +6395,19 @@ impl Lexer { */ if nchars == 2 { if &yytext[0..2] == "=>" { - return Some(TokenKind::EQUALS_GREATER); + return Ok(Some(TokenKind::EQUALS_GREATER)); } if &yytext[0..2] == ">=" { - return Some(TokenKind::GREATER_EQUALS); + return Ok(Some(TokenKind::GREATER_EQUALS)); } if &yytext[0..2] == "<=" { - return Some(TokenKind::LESS_EQUALS); + return Ok(Some(TokenKind::LESS_EQUALS)); } if &yytext[0..2] == "<>" { - return Some(TokenKind::NOT_EQUALS); + return Ok(Some(TokenKind::NOT_EQUALS)); } if &yytext[0..2] == "!=" { - return Some(TokenKind::NOT_EQUALS); + return Ok(Some(TokenKind::NOT_EQUALS)); } } } @@ -1066,157 +6419,221 @@ impl Lexer { * a syntactic mistake anyway. */ if nchars >= NAMEDATALEN { - yyerror("operator too long"); + yyerror!("operator too long"); } - // yylval->str = pstrdup(yytext); - // return Op; self.yylval = Yylval::Str(yytext); - return Some(TokenKind::Op); + return Ok(Some(TokenKind::Op)); } } RuleKind::INITIAL25 => { - self.set_yylloc(); - self.yylval = Yylval::I(i32::from_str_radix(&self.yytext()[1..], 10).unwrap()); - return Some(TokenKind::PARAM); + { + // SET_YYLLOC(); + // yylval->ival = atol(yytext + 1); + // return PARAM; + + self.set_yylloc(); + self.yylval = + Yylval::I(i32::from_str_radix(&self.yytext()[1..], 10).unwrap()); + return Ok(Some(TokenKind::PARAM)); + } } RuleKind::INITIAL26 => { { + // SET_YYLLOC(); + // return process_integer_literal(yytext, yylval, 10); + self.set_yylloc(); - // return self.process_integer_literal(yytext, yylval, 10); - return self.process_integer_literal(10); + return Ok(self.process_integer_literal(10)); } } RuleKind::INITIAL27 => { { + // SET_YYLLOC(); + // return process_integer_literal(yytext, yylval, 16); + self.set_yylloc(); - // return self.process_integer_literal(yytext, yylval, 16); - return self.process_integer_literal(16); + return Ok(self.process_integer_literal(16)); } } RuleKind::INITIAL28 => { { - self.set_yylloc(); + // SET_YYLLOC(); // return process_integer_literal(yytext, yylval, 8); - return self.process_integer_literal(8); + + self.set_yylloc(); + return Ok(self.process_integer_literal(8)); } } RuleKind::INITIAL29 => { { - self.set_yylloc(); + // SET_YYLLOC(); // return process_integer_literal(yytext, yylval, 2); - return self.process_integer_literal(2); + + self.set_yylloc(); + return Ok(self.process_integer_literal(2)); } } RuleKind::INITIAL30 => { - self.set_yylloc(); - yyerror("invalid hexadecimal integer"); + { + // SET_YYLLOC(); + // yyerror("invalid hexadecimal integer"); + + self.set_yylloc(); + yyerror!("invalid hexadecimal integer"); + } } RuleKind::INITIAL31 => { - self.set_yylloc(); - yyerror("invalid octal integer"); + { + // SET_YYLLOC(); + // yyerror("invalid octal integer"); + + self.set_yylloc(); + yyerror!("invalid octal integer"); + } } RuleKind::INITIAL32 => { - self.set_yylloc(); - yyerror("invalid binary integer"); + { + // SET_YYLLOC(); + // yyerror("invalid binary integer"); + + self.set_yylloc(); + yyerror!("invalid binary integer"); + } } RuleKind::INITIAL33 => { { - self.set_yylloc(); + // SET_YYLLOC(); // yylval->str = pstrdup(yytext); + // return FCONST; + + self.set_yylloc(); self.yylval = Yylval::Str(self.yytext()); - return Some(TokenKind::FCONST); + return Ok(Some(TokenKind::FCONST)); } } RuleKind::INITIAL34 => { { - /* throw back the .., and treat as integer */ + // /* throw back the .., and treat as integer */ // yyless(yyleng - 2); + // SET_YYLLOC(); + // return process_integer_literal(yytext, yylval, 10); + + /* throw back the .., and treat as integer */ self.yyless(self.yyleng - 2); self.set_yylloc(); - // return process_integer_literal(yytext, yylval, 10); - return self.process_integer_literal(10); + return Ok(self.process_integer_literal(10)); } } RuleKind::INITIAL35 => { { - self.set_yylloc(); + // SET_YYLLOC(); // yylval->str = pstrdup(yytext); + // return FCONST; + + self.set_yylloc(); self.yylval = Yylval::Str(self.yytext()); - return Some(TokenKind::FCONST); + return Ok(Some(TokenKind::FCONST)); } } RuleKind::INITIAL36 => { - self.set_yylloc(); - yyerror("trailing junk after numeric literal"); + { + // SET_YYLLOC(); + // yyerror("trailing junk after numeric literal"); + + self.set_yylloc(); + yyerror!("trailing junk after numeric literal"); + } } RuleKind::INITIAL37 => { - self.set_yylloc(); - yyerror("trailing junk after numeric literal"); + { + // SET_YYLLOC(); + // yyerror("trailing junk after numeric literal"); + + self.set_yylloc(); + yyerror!("trailing junk after numeric literal"); + } } RuleKind::INITIAL38 => { - self.set_yylloc(); - yyerror("trailing junk after numeric literal"); + { + // SET_YYLLOC(); + // yyerror("trailing junk after numeric literal"); + + self.set_yylloc(); + yyerror!("trailing junk after numeric literal"); + } } RuleKind::INITIAL39 => { - self.set_yylloc(); - yyerror("trailing junk after numeric literal"); + { + // SET_YYLLOC(); + // yyerror("trailing junk after numeric literal"); + + self.set_yylloc(); + yyerror!("trailing junk after numeric literal"); + } } RuleKind::INITIAL40 => { - self.set_yylloc(); - yyerror("trailing junk after numeric literal"); - } - RuleKind::INITIAL41 => { - self.set_yylloc(); - yyerror("trailing junk after numeric literal"); - } - RuleKind::INITIAL42 => { - self.set_yylloc(); - yyerror("trailing junk after numeric literal"); - } - RuleKind::INITIAL43 => { { // int kwnum; // char *ident; - - self.set_yylloc(); - - /* Is it a keyword? */ + // + // SET_YYLLOC(); + // + // /* Is it a keyword? */ // kwnum = ScanKeywordLookup(yytext, // yyextra->keywordlist); // if (kwnum >= 0) // { - // yylval->keyword = GetScanKeyword(kwnum, - // yyextra->keywordlist); - // return yyextra->keyword_tokens[kwnum]; + // yylval->keyword = GetScanKeyword(kwnum, + // yyextra->keywordlist); + // return yyextra->keyword_tokens[kwnum]; // } + // + // /* + // * No. Convert the identifier to lower case, and truncate + // * if necessary. + // */ + // ident = downcase_truncate_identifier(yytext, yyleng, true); + // yylval->str = ident; + // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; + // return IDENT; + + self.set_yylloc(); + /* Is it a keyword? */ let yytext = self.yytext(); if let Some((kw, kw_token)) = self.get_keyword(&yytext) { self.yylval = Yylval::Keyword(kw); - return Some(TokenKind::KEYWORD(kw_token)); + return Ok(Some(TokenKind::KEYWORD(kw_token))); } /* * No. Convert the identifier to lower case, and truncate * if necessary. */ - // ident = downcase_truncate_identifier(yytext, yyleng, true); - // yylval->str = ident; - // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; let ident = self.downcase_truncate_identifier(self.yyleng, true); self.yylval = Yylval::Str(ident); self.set_yyllocend(); - return Some(TokenKind::IDENT); + return Ok(Some(TokenKind::IDENT)); } } - RuleKind::INITIAL44 => { - self.set_yylloc(); - return Some(TokenKind::RAW(yytext[0..1].to_string())); + RuleKind::INITIAL41 => { + { + // SET_YYLLOC(); + // return yytext[0]; + + self.set_yylloc(); + return Ok(Some(TokenKind::RAW(yytext[0..1].to_string()))); + } } - RuleKind::INITIAL45 => { - self.set_yylloc(); - yyterminate!(); + RuleKind::INITIAL42 => { + { + // SET_YYLLOC(); + // yyterminate(); + + self.set_yylloc(); + yyterminate!(); + } } } self.advance(); @@ -1224,685 +6641,762 @@ impl Lexer { } } -pub fn get_rules() -> Vec { +#[cfg(feature = "regex-match")] +pub fn get_rules() -> Vec { + use super::generated::RuleKind; + use crate::lexer::Rule; + vec![ // {whitespace} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^(((([ \t\n\r\f])+)))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(((([ \t\n\r\f\v])+)))"#).unwrap(), kind: RuleKind::INITIAL1, + eof: false, }, // {comment} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^(((--([^\n\r])*)))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(((--([^\n\r])*)))"#).unwrap(), kind: RuleKind::INITIAL2, + eof: false, }, // {xcstart} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((\/\*([\~\!\@\#\^\&\|\`\?\+\-\*\/\%<>\=])*))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((\/\*([\~\!\@\#\^\&\|\`\?\+\-\*\/\%<>\=])*))"#).unwrap(), kind: RuleKind::INITIAL3, + eof: false, }, // {xcstart} Rule { state: State::xc, - pattern: Regex::new(r#"(?-u)^((\/\*([\~\!\@\#\^\&\|\`\?\+\-\*\/\%<>\=])*))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((\/\*([\~\!\@\#\^\&\|\`\?\+\-\*\/\%<>\=])*))"#).unwrap(), kind: RuleKind::xc1, + eof: false, }, // {xcstop} Rule { state: State::xc, - pattern: Regex::new(r#"(?-u)^((\*+\/))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((\*+\/))"#).unwrap(), kind: RuleKind::xc2, + eof: false, }, // {xcinside} Rule { state: State::xc, - pattern: Regex::new(r#"(?-u)^(([^*/]+))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(([^*/]+))"#).unwrap(), kind: RuleKind::xc3, + eof: false, }, // {op_chars} Rule { state: State::xc, - pattern: Regex::new(r#"(?-u)^(([\~\!\@\#\^\&\|\`\?\+\-\*\/\%<>\=]))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(([\~\!\@\#\^\&\|\`\?\+\-\*\/\%<>\=]))"#).unwrap(), kind: RuleKind::xc4, + eof: false, }, // \*+ Rule { state: State::xc, - pattern: Regex::new(r#"(?-u)^(\*+)"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(\*+)"#).unwrap(), kind: RuleKind::xc5, + eof: false, }, // <> Rule { state: State::xc, - pattern: Regex::new(r#"(?-u)^(^$)"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(^$)"#).unwrap(), kind: RuleKind::xc6, + eof: true, }, // {xbstart} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^(([bB](')))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(([bB](')))"#).unwrap(), kind: RuleKind::INITIAL4, + eof: false, }, // {xhinside} Rule { state: State::xh, - pattern: Regex::new(r#"(?-u)^(([^']*))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(([^']*))"#).unwrap(), kind: RuleKind::xh1, + eof: false, }, // {xbinside} Rule { state: State::xb, - pattern: Regex::new(r#"(?-u)^(([^']*))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(([^']*))"#).unwrap(), kind: RuleKind::xb1, + eof: false, }, // <> Rule { state: State::xb, - pattern: Regex::new(r#"(?-u)^(^$)"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(^$)"#).unwrap(), kind: RuleKind::xb2, + eof: true, }, // {xhstart} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^(([xX](')))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(([xX](')))"#).unwrap(), kind: RuleKind::INITIAL5, + eof: false, }, // <> Rule { state: State::xh, - pattern: Regex::new(r#"(?-u)^(^$)"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(^$)"#).unwrap(), kind: RuleKind::xh2, + eof: true, }, // {xnstart} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^(([nN](')))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(([nN](')))"#).unwrap(), kind: RuleKind::INITIAL6, + eof: false, }, // {xqstart} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^(((')))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(((')))"#).unwrap(), kind: RuleKind::INITIAL7, + eof: false, }, // {xestart} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^(([eE](')))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(([eE](')))"#).unwrap(), kind: RuleKind::INITIAL8, + eof: false, }, // {xusstart} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^(([uU]&(')))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(([uU]&(')))"#).unwrap(), kind: RuleKind::INITIAL9, + eof: false, }, // {quote} Rule { state: State::xb, - pattern: Regex::new(r#"(?-u)^(('))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(('))"#).unwrap(), kind: RuleKind::xb3, + eof: false, }, // {quote} Rule { state: State::xh, - pattern: Regex::new(r#"(?-u)^(('))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(('))"#).unwrap(), kind: RuleKind::xh3, + eof: false, }, // {quote} Rule { state: State::xq, - pattern: Regex::new(r#"(?-u)^(('))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(('))"#).unwrap(), kind: RuleKind::xq1, + eof: false, }, // {quote} Rule { state: State::xe, - pattern: Regex::new(r#"(?-u)^(('))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(('))"#).unwrap(), kind: RuleKind::xe1, + eof: false, }, // {quote} Rule { state: State::xus, - pattern: Regex::new(r#"(?-u)^(('))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(('))"#).unwrap(), kind: RuleKind::xus1, + eof: false, }, // {quotecontinue} Rule { state: State::xqs, - pattern: Regex::new(r#"(?-u)^((((((([ \t\f])))*([\n\r])((([ \t\n\r\f])+))*))(')))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((((((([ \t\f\v])))*([\n\r])((([ \t\n\r\f\v])+))*))(')))"#).unwrap(), kind: RuleKind::xqs1, + eof: false, }, // {quotecontinuefail} Rule { state: State::xqs, - pattern: Regex::new(r#"(?-u)^((((([ \t\n\r\f])+))*-?))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((((([ \t\n\r\f\v])+))*-?))"#).unwrap(), kind: RuleKind::xqs2, + eof: false, }, // {other} Rule { state: State::xqs, - pattern: Regex::new(r#"(?-u)^((.))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((.))"#).unwrap(), kind: RuleKind::xqs3, + eof: false, }, // <> Rule { state: State::xqs, - pattern: Regex::new(r#"(?-u)^(^$)"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(^$)"#).unwrap(), kind: RuleKind::xqs4, + eof: true, }, // {xqdouble} Rule { state: State::xq, - pattern: Regex::new(r#"(?-u)^(((')(')))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(((')(')))"#).unwrap(), kind: RuleKind::xq2, + eof: false, }, // {xqdouble} Rule { state: State::xe, - pattern: Regex::new(r#"(?-u)^(((')(')))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(((')(')))"#).unwrap(), kind: RuleKind::xe2, + eof: false, }, // {xqdouble} Rule { state: State::xus, - pattern: Regex::new(r#"(?-u)^(((')(')))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(((')(')))"#).unwrap(), kind: RuleKind::xus2, + eof: false, }, // {xqinside} Rule { state: State::xq, - pattern: Regex::new(r#"(?-u)^(([^']+))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(([^']+))"#).unwrap(), kind: RuleKind::xq3, + eof: false, }, // {xqinside} Rule { state: State::xus, - pattern: Regex::new(r#"(?-u)^(([^']+))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(([^']+))"#).unwrap(), kind: RuleKind::xus3, + eof: false, }, // {xeinside} Rule { state: State::xe, - pattern: Regex::new(r#"(?-u)^(([^\\']+))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(([^\\']+))"#).unwrap(), kind: RuleKind::xe3, + eof: false, }, // {xeunicode} Rule { state: State::xe, - pattern: Regex::new(r#"(?-u)^(([\\](u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(([\\](u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})))"#).unwrap(), kind: RuleKind::xe4, + eof: false, }, // {xeunicode} Rule { state: State::xeu, - pattern: Regex::new(r#"(?-u)^(([\\](u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(([\\](u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})))"#).unwrap(), kind: RuleKind::xeu1, + eof: false, }, // . Rule { state: State::xeu, - pattern: Regex::new(r#"(?-u)^(.)"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(.)"#).unwrap(), kind: RuleKind::xeu2, + eof: false, }, // \n Rule { state: State::xeu, - pattern: Regex::new(r#"(?-u)^(\n)"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(\n)"#).unwrap(), kind: RuleKind::xeu3, + eof: false, }, // <> Rule { state: State::xeu, - pattern: Regex::new(r#"(?-u)^(^$)"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(^$)"#).unwrap(), kind: RuleKind::xeu4, + eof: true, }, // {xeunicodefail} Rule { state: State::xe, - pattern: Regex::new(r#"(?-u)^(([\\](u[0-9A-Fa-f]{0,3}|U[0-9A-Fa-f]{0,7})))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(([\\](u[0-9A-Fa-f]{0,3}|U[0-9A-Fa-f]{0,7})))"#).unwrap(), kind: RuleKind::xe5, + eof: false, }, // {xeunicodefail} Rule { state: State::xeu, - pattern: Regex::new(r#"(?-u)^(([\\](u[0-9A-Fa-f]{0,3}|U[0-9A-Fa-f]{0,7})))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(([\\](u[0-9A-Fa-f]{0,3}|U[0-9A-Fa-f]{0,7})))"#).unwrap(), kind: RuleKind::xeu5, + eof: false, }, // {xeescape} Rule { state: State::xe, - pattern: Regex::new(r#"(?-u)^(([\\][^0-7]))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(([\\][^0-7]))"#).unwrap(), kind: RuleKind::xe6, + eof: false, }, // {xeoctesc} Rule { state: State::xe, - pattern: Regex::new(r#"(?-u)^(([\\][0-7]{1,3}))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(([\\][0-7]{1,3}))"#).unwrap(), kind: RuleKind::xe7, + eof: false, }, // {xehexesc} Rule { state: State::xe, - pattern: Regex::new(r#"(?-u)^(([\\]x[0-9A-Fa-f]{1,2}))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(([\\]x[0-9A-Fa-f]{1,2}))"#).unwrap(), kind: RuleKind::xe8, + eof: false, }, // . Rule { state: State::xe, - pattern: Regex::new(r#"(?-u)^(.)"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(.)"#).unwrap(), kind: RuleKind::xe9, + eof: false, }, // <> Rule { state: State::xq, - pattern: Regex::new(r#"(?-u)^(^$)"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(^$)"#).unwrap(), kind: RuleKind::xq4, + eof: true, }, // <> Rule { state: State::xe, - pattern: Regex::new(r#"(?-u)^(^$)"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(^$)"#).unwrap(), kind: RuleKind::xe10, + eof: true, }, // <> Rule { state: State::xus, - pattern: Regex::new(r#"(?-u)^(^$)"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(^$)"#).unwrap(), kind: RuleKind::xus4, + eof: true, }, // {dolqdelim} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((\$(([A-Za-z\x80-\xFF_])([A-Za-z\x80-\xFF_0-9])*)?\$))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((\$(([A-Za-z\x80-\xFF_])([A-Za-z\x80-\xFF_0-9])*)?\$))"#).unwrap(), kind: RuleKind::INITIAL10, + eof: false, }, // {dolqfailed} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((\$([A-Za-z\x80-\xFF_])([A-Za-z\x80-\xFF_0-9])*))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((\$([A-Za-z\x80-\xFF_])([A-Za-z\x80-\xFF_0-9])*))"#).unwrap(), kind: RuleKind::INITIAL11, + eof: false, }, // {dolqdelim} Rule { state: State::xdolq, - pattern: Regex::new(r#"(?-u)^((\$(([A-Za-z\x80-\xFF_])([A-Za-z\x80-\xFF_0-9])*)?\$))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((\$(([A-Za-z\x80-\xFF_])([A-Za-z\x80-\xFF_0-9])*)?\$))"#).unwrap(), kind: RuleKind::xdolq1, + eof: false, }, // {dolqinside} Rule { state: State::xdolq, - pattern: Regex::new(r#"(?-u)^(([^$]+))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(([^$]+))"#).unwrap(), kind: RuleKind::xdolq2, + eof: false, }, // {dolqfailed} Rule { state: State::xdolq, - pattern: Regex::new(r#"(?-u)^((\$([A-Za-z\x80-\xFF_])([A-Za-z\x80-\xFF_0-9])*))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((\$([A-Za-z\x80-\xFF_])([A-Za-z\x80-\xFF_0-9])*))"#).unwrap(), kind: RuleKind::xdolq3, + eof: false, }, // . Rule { state: State::xdolq, - pattern: Regex::new(r#"(?-u)^(.)"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(.)"#).unwrap(), kind: RuleKind::xdolq4, + eof: false, }, // <> Rule { state: State::xdolq, - pattern: Regex::new(r#"(?-u)^(^$)"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(^$)"#).unwrap(), kind: RuleKind::xdolq5, + eof: true, }, // {xdstart} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^(((\")))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(((\")))"#).unwrap(), kind: RuleKind::INITIAL12, + eof: false, }, // {xuistart} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^(([uU]&(\")))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(([uU]&(\")))"#).unwrap(), kind: RuleKind::INITIAL13, + eof: false, }, // {xdstop} Rule { state: State::xd, - pattern: Regex::new(r#"(?-u)^(((\")))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(((\")))"#).unwrap(), kind: RuleKind::xd1, + eof: false, }, // {dquote} Rule { state: State::xui, - pattern: Regex::new(r#"(?-u)^((\"))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((\"))"#).unwrap(), kind: RuleKind::xui1, + eof: false, }, // {xddouble} Rule { state: State::xd, - pattern: Regex::new(r#"(?-u)^(((\")(\")))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(((\")(\")))"#).unwrap(), kind: RuleKind::xd2, + eof: false, }, // {xddouble} Rule { state: State::xui, - pattern: Regex::new(r#"(?-u)^(((\")(\")))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(((\")(\")))"#).unwrap(), kind: RuleKind::xui2, + eof: false, }, // {xdinside} Rule { state: State::xd, - pattern: Regex::new(r#"(?-u)^(([^"]+))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(([^"]+))"#).unwrap(), kind: RuleKind::xd3, + eof: false, }, // {xdinside} Rule { state: State::xui, - pattern: Regex::new(r#"(?-u)^(([^"]+))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(([^"]+))"#).unwrap(), kind: RuleKind::xui3, + eof: false, }, // <> Rule { state: State::xd, - pattern: Regex::new(r#"(?-u)^(^$)"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(^$)"#).unwrap(), kind: RuleKind::xd4, + eof: true, }, // <> Rule { state: State::xui, - pattern: Regex::new(r#"(?-u)^(^$)"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(^$)"#).unwrap(), kind: RuleKind::xui4, + eof: true, }, // {xufailed} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^(([uU]&))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(([uU]&))"#).unwrap(), kind: RuleKind::INITIAL14, + eof: false, }, // {typecast} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((::))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((::))"#).unwrap(), kind: RuleKind::INITIAL15, + eof: false, }, // {dot_dot} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((\.\.))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((\.\.))"#).unwrap(), kind: RuleKind::INITIAL16, + eof: false, }, // {colon_equals} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((:=))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((:=))"#).unwrap(), kind: RuleKind::INITIAL17, + eof: false, }, // {equals_greater} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((=>))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((=>))"#).unwrap(), kind: RuleKind::INITIAL18, + eof: false, }, // {less_equals} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((<=))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((<=))"#).unwrap(), kind: RuleKind::INITIAL19, + eof: false, }, // {greater_equals} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((>=))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((>=))"#).unwrap(), kind: RuleKind::INITIAL20, + eof: false, }, // {less_greater} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((<>))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((<>))"#).unwrap(), kind: RuleKind::INITIAL21, + eof: false, }, // {not_equals} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((!=))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((!=))"#).unwrap(), kind: RuleKind::INITIAL22, + eof: false, }, // {self} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^(([,()\[\].;\:\+\-\*\/\%\^<>\=]))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(([,()\[\].;\:\+\-\*\/\%\^<>\=]))"#).unwrap(), kind: RuleKind::INITIAL23, + eof: false, }, // {operator} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((([\~\!\@\#\^\&\|\`\?\+\-\*\/\%<>\=])+))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((([\~\!\@\#\^\&\|\`\?\+\-\*\/\%<>\=])+))"#).unwrap(), kind: RuleKind::INITIAL24, + eof: false, }, // {param} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((\$([0-9])+))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((\$([0-9])+))"#).unwrap(), kind: RuleKind::INITIAL25, + eof: false, }, // {decinteger} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((([0-9])(_?([0-9]))*))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((([0-9])(_?([0-9]))*))"#).unwrap(), kind: RuleKind::INITIAL26, + eof: false, }, // {hexinteger} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((0[xX](_?([0-9A-Fa-f]))+))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((0[xX](_?([0-9A-Fa-f]))+))"#).unwrap(), kind: RuleKind::INITIAL27, + eof: false, }, // {octinteger} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((0[oO](_?([0-7]))+))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((0[oO](_?([0-7]))+))"#).unwrap(), kind: RuleKind::INITIAL28, + eof: false, }, // {bininteger} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((0[bB](_?([0-1]))+))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((0[bB](_?([0-1]))+))"#).unwrap(), kind: RuleKind::INITIAL29, + eof: false, }, // {hexfail} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((0[xX]_?))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((0[xX]_?))"#).unwrap(), kind: RuleKind::INITIAL30, + eof: false, }, // {octfail} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((0[oO]_?))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((0[oO]_?))"#).unwrap(), kind: RuleKind::INITIAL31, + eof: false, }, // {binfail} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((0[bB]_?))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((0[bB]_?))"#).unwrap(), kind: RuleKind::INITIAL32, + eof: false, }, // {numeric} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^(((((([0-9])(_?([0-9]))*)\.(([0-9])(_?([0-9]))*)?)|(\.(([0-9])(_?([0-9]))*)))))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(((((([0-9])(_?([0-9]))*)\.(([0-9])(_?([0-9]))*)?)|(\.(([0-9])(_?([0-9]))*)))))"#).unwrap(), kind: RuleKind::INITIAL33, + eof: false, }, // {numericfail} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((([0-9])+\.\.))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(((([0-9])(_?([0-9]))*)\.\.))"#).unwrap(), kind: RuleKind::INITIAL34, + eof: false, }, // {real} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((((([0-9])(_?([0-9]))*)|((((([0-9])(_?([0-9]))*)\.(([0-9])(_?([0-9]))*)?)|(\.(([0-9])(_?([0-9]))*)))))[Ee][-+]?(([0-9])(_?([0-9]))*)))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((((([0-9])(_?([0-9]))*)|((((([0-9])(_?([0-9]))*)\.(([0-9])(_?([0-9]))*)?)|(\.(([0-9])(_?([0-9]))*)))))[Ee][-+]?(([0-9])(_?([0-9]))*)))"#).unwrap(), kind: RuleKind::INITIAL35, + eof: false, }, // {realfail} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((((([0-9])(_?([0-9]))*)|((((([0-9])(_?([0-9]))*)\.(([0-9])(_?([0-9]))*)?)|(\.(([0-9])(_?([0-9]))*)))))[Ee][-+]))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((((([0-9])(_?([0-9]))*)|((((([0-9])(_?([0-9]))*)\.(([0-9])(_?([0-9]))*)?)|(\.(([0-9])(_?([0-9]))*)))))[Ee][-+]))"#).unwrap(), kind: RuleKind::INITIAL36, + eof: false, }, - // {decinteger_junk} + // {integer_junk} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^(((([0-9])(_?([0-9]))*)([A-Za-z\x80-\xFF_])))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(((([0-9])(_?([0-9]))*)(([A-Za-z\x80-\xFF_])([A-Za-z\x80-\xFF_0-9\$])*)))"#).unwrap(), kind: RuleKind::INITIAL37, - }, - - // {hexinteger_junk} - Rule { - state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^(((0[xX](_?([0-9A-Fa-f]))+)([A-Za-z\x80-\xFF_])))"#).unwrap(), - kind: RuleKind::INITIAL38, - }, - - // {octinteger_junk} - Rule { - state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^(((0[oO](_?([0-7]))+)([A-Za-z\x80-\xFF_])))"#).unwrap(), - kind: RuleKind::INITIAL39, - }, - - // {bininteger_junk} - Rule { - state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^(((0[bB](_?([0-1]))+)([A-Za-z\x80-\xFF_])))"#).unwrap(), - kind: RuleKind::INITIAL40, + eof: false, }, // {numeric_junk} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((((((([0-9])(_?([0-9]))*)\.(([0-9])(_?([0-9]))*)?)|(\.(([0-9])(_?([0-9]))*))))([A-Za-z\x80-\xFF_])))"#).unwrap(), - kind: RuleKind::INITIAL41, + pattern: regex::bytes::Regex::new(r#"(?-u)^((((((([0-9])(_?([0-9]))*)\.(([0-9])(_?([0-9]))*)?)|(\.(([0-9])(_?([0-9]))*))))(([A-Za-z\x80-\xFF_])([A-Za-z\x80-\xFF_0-9\$])*)))"#).unwrap(), + kind: RuleKind::INITIAL38, + eof: false, }, // {real_junk} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^(((((([0-9])(_?([0-9]))*)|((((([0-9])(_?([0-9]))*)\.(([0-9])(_?([0-9]))*)?)|(\.(([0-9])(_?([0-9]))*)))))[Ee][-+]?(([0-9])(_?([0-9]))*))([A-Za-z\x80-\xFF_])))"#).unwrap(), - kind: RuleKind::INITIAL42, + pattern: regex::bytes::Regex::new(r#"(?-u)^(((((([0-9])(_?([0-9]))*)|((((([0-9])(_?([0-9]))*)\.(([0-9])(_?([0-9]))*)?)|(\.(([0-9])(_?([0-9]))*)))))[Ee][-+]?(([0-9])(_?([0-9]))*))(([A-Za-z\x80-\xFF_])([A-Za-z\x80-\xFF_0-9\$])*)))"#).unwrap(), + kind: RuleKind::INITIAL39, + eof: false, }, // {identifier} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((([A-Za-z\x80-\xFF_])([A-Za-z\x80-\xFF_0-9\$])*))"#).unwrap(), - kind: RuleKind::INITIAL43, + pattern: regex::bytes::Regex::new(r#"(?-u)^((([A-Za-z\x80-\xFF_])([A-Za-z\x80-\xFF_0-9\$])*))"#).unwrap(), + kind: RuleKind::INITIAL40, + eof: false, }, // {other} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((.))"#).unwrap(), - kind: RuleKind::INITIAL44, + pattern: regex::bytes::Regex::new(r#"(?-u)^((.))"#).unwrap(), + kind: RuleKind::INITIAL41, + eof: false, }, // <> Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^(^$)"#).unwrap(), - kind: RuleKind::INITIAL45, + pattern: regex::bytes::Regex::new(r#"(?-u)^(^$)"#).unwrap(), + kind: RuleKind::INITIAL42, + eof: true, }] } @@ -1977,6 +7471,7 @@ pub fn get_keyword_map() -> HashMap<&'static str, &'static str> { ("committed", "COMMITTED"), ("compression", "COMPRESSION"), ("concurrently", "CONCURRENTLY"), + ("conditional", "CONDITIONAL"), ("configuration", "CONFIGURATION"), ("conflict", "CONFLICT"), ("connection", "CONNECTION"), @@ -2031,11 +7526,13 @@ pub fn get_keyword_map() -> HashMap<&'static str, &'static str> { ("drop", "DROP"), ("each", "EACH"), ("else", "ELSE"), + ("empty", "EMPTY_P"), ("enable", "ENABLE_P"), ("encoding", "ENCODING"), ("encrypted", "ENCRYPTED"), ("end", "END_P"), ("enum", "ENUM_P"), + ("error", "ERROR_P"), ("escape", "ESCAPE"), ("event", "EVENT"), ("except", "EXCEPT"), @@ -2117,10 +7614,15 @@ pub fn get_keyword_map() -> HashMap<&'static str, &'static str> { ("json", "JSON"), ("json_array", "JSON_ARRAY"), ("json_arrayagg", "JSON_ARRAYAGG"), + ("json_exists", "JSON_EXISTS"), ("json_object", "JSON_OBJECT"), ("json_objectagg", "JSON_OBJECTAGG"), + ("json_query", "JSON_QUERY"), ("json_scalar", "JSON_SCALAR"), ("json_serialize", "JSON_SERIALIZE"), + ("json_table", "JSON_TABLE"), + ("json_value", "JSON_VALUE"), + ("keep", "KEEP"), ("key", "KEY"), ("keys", "KEYS"), ("label", "LABEL"), @@ -2150,6 +7652,7 @@ pub fn get_keyword_map() -> HashMap<&'static str, &'static str> { ("materialized", "MATERIALIZED"), ("maxvalue", "MAXVALUE"), ("merge", "MERGE"), + ("merge_action", "MERGE_ACTION"), ("method", "METHOD"), ("minute", "MINUTE_P"), ("minvalue", "MINVALUE"), @@ -2161,6 +7664,7 @@ pub fn get_keyword_map() -> HashMap<&'static str, &'static str> { ("national", "NATIONAL"), ("natural", "NATURAL"), ("nchar", "NCHAR"), + ("nested", "NESTED"), ("new", "NEW"), ("next", "NEXT"), ("nfc", "NFC"), @@ -2186,6 +7690,7 @@ pub fn get_keyword_map() -> HashMap<&'static str, &'static str> { ("offset", "OFFSET"), ("oids", "OIDS"), ("old", "OLD"), + ("omit", "OMIT"), ("on", "ON"), ("only", "ONLY"), ("operator", "OPERATOR"), @@ -2210,7 +7715,9 @@ pub fn get_keyword_map() -> HashMap<&'static str, &'static str> { ("partition", "PARTITION"), ("passing", "PASSING"), ("password", "PASSWORD"), + ("path", "PATH"), ("placing", "PLACING"), + ("plan", "PLAN"), ("plans", "PLANS"), ("policy", "POLICY"), ("position", "POSITION"), @@ -2228,6 +7735,7 @@ pub fn get_keyword_map() -> HashMap<&'static str, &'static str> { ("program", "PROGRAM"), ("publication", "PUBLICATION"), ("quote", "QUOTE"), + ("quotes", "QUOTES"), ("range", "RANGE"), ("read", "READ"), ("real", "REAL"), @@ -2287,6 +7795,7 @@ pub fn get_keyword_map() -> HashMap<&'static str, &'static str> { ("smallint", "SMALLINT"), ("snapshot", "SNAPSHOT"), ("some", "SOME"), + ("source", "SOURCE"), ("sql", "SQL_P"), ("stable", "STABLE"), ("standalone", "STANDALONE_P"), @@ -2298,6 +7807,7 @@ pub fn get_keyword_map() -> HashMap<&'static str, &'static str> { ("storage", "STORAGE"), ("stored", "STORED"), ("strict", "STRICT_P"), + ("string", "STRING_P"), ("strip", "STRIP_P"), ("subscription", "SUBSCRIPTION"), ("substring", "SUBSTRING"), @@ -2310,6 +7820,7 @@ pub fn get_keyword_map() -> HashMap<&'static str, &'static str> { ("tables", "TABLES"), ("tablesample", "TABLESAMPLE"), ("tablespace", "TABLESPACE"), + ("target", "TARGET"), ("temp", "TEMP"), ("template", "TEMPLATE"), ("temporary", "TEMPORARY"), @@ -2333,6 +7844,7 @@ pub fn get_keyword_map() -> HashMap<&'static str, &'static str> { ("uescape", "UESCAPE"), ("unbounded", "UNBOUNDED"), ("uncommitted", "UNCOMMITTED"), + ("unconditional", "UNCONDITIONAL"), ("unencrypted", "UNENCRYPTED"), ("union", "UNION"), ("unique", "UNIQUE"), diff --git a/crates/parser-generator/src/parser_generator/lexer/lexer_ported.rs b/crates/parser-generator/src/parser_generator/lexer/lexer_ported.rs new file mode 100644 index 0000000..0d1ed6b --- /dev/null +++ b/crates/parser-generator/src/parser_generator/lexer/lexer_ported.rs @@ -0,0 +1,219 @@ +/// Ported sources from PostgreSQL +use super::{Lexer, Token, TokenKind, Yylval, parser_error::ParserError}; + +pub fn is_highbit_set(c: char) -> u8 { + (c as u8) & 0x80 +} + +pub fn get_char_by_byte_pos(s: &str, byte_pos: usize) -> char { + // s.bytes().nth(byte_pos).unwrap() as char + s.as_bytes()[byte_pos] as char +} + +pub fn is_valid_unicode_codepoint(c: char) -> bool { + let c = c as u32; + (1..=0x10FFFF).contains(&c) +} + +pub fn is_utf16_surrogate_first(c: u32) -> bool { + (0xD800..=0xDBFF).contains(&c) +} + +pub fn is_utf16_surrogate_second(c: u32) -> bool { + (0xDC00..=0xDFFF).contains(&c) +} + +pub fn surrogate_pair_to_codepoint(first: u32, second: u32) -> char { + char::from_u32(((first & 0x3FF) << 10) + 0x10000 + (second & 0x3FF)).unwrap() +} + +impl Lexer { + pub fn set_yylloc(&mut self) { + self.yylloc_bytes = self.index_bytes; + } + + pub fn set_yyllocend(&mut self) { + self.yyllocend_bytes = self.index_bytes + self.yyleng; + } + + pub fn addlitchar(&mut self, ychar: char) { + // /* enlarge buffer if needed */ + // if ((yyextra->literallen + 1) >= yyextra->literalalloc) + // { + // yyextra->literalalloc *= 2; + // yyextra->literalbuf = (char *) repalloc(yyextra->literalbuf, + // yyextra->literalalloc); + // } + // /* append new data */ + // yyextra->literalbuf[yyextra->literallen] = ychar; + // yyextra->literallen += 1; + self.literal.push(ychar); + } + + pub fn addlit(&mut self, yyleng: usize) { + // /* enlarge buffer if needed */ + // if ((yyextra->literallen + yleng) >= yyextra->literalalloc) + // { + // yyextra->literalalloc = pg_nextpower2_32(yyextra->literallen + yleng + 1); + // yyextra->literalbuf = (char *) repalloc(yyextra->literalbuf, + // yyextra->literalalloc); + // } + // /* append new data */ + // memcpy(yyextra->literalbuf + yyextra->literallen, ytext, yleng); + // yyextra->literallen += yleng; + self.literal += &self.input[self.index_bytes..][..yyleng]; + } + + pub fn addunicode(&mut self, c: char) -> Result<(), ParserError> { + if !is_valid_unicode_codepoint(c) { + yyerror!("invalid Unicode escape value"); + } + + self.addlit(c.len_utf8()); + Ok(()) + } + + pub fn unescape_single_char(&mut self, c: char) -> char { + match c { + // 'b' => '\b', + 'b' => 0x08 as char, + // 'f' => '\f', + 'f' => 0x0c as char, + 'n' => '\n', + 'r' => '\r', + 't' => '\t', + // 'v'=>'\v', + 'v' => 0x0b as char, + _ => { + /* check for backslash followed by non-7-bit-ASCII */ + if c == '\0' || is_highbit_set(c) != 0 { + self.saw_non_ascii = true; + } + + c + } + } + } + + pub fn push_yylloc(&mut self) { + self.yylloc_stack.push(self.yylloc_bytes); + } + + pub fn pop_yylloc(&mut self) { + self.yylloc_bytes = self.yylloc_stack.pop().unwrap(); + } + + pub fn process_integer_literal(&mut self, radix: usize) -> Option { + let yytext_original = self.yytext(); + let mut yytext = yytext_original.as_str(); + let mut neg = false; + + match yytext.bytes().next() { + Some(b'-') => { + neg = true; + yytext = &yytext[1..]; + } + Some(b'+') => { + yytext = &yytext[1..]; + } + _ => (), + } + + let res_parse_as_i32 = match radix { + 8 => i32::from_str_radix(&yytext[2..], 8), + 10 => yytext.parse::(), + 16 => i32::from_str_radix(&yytext[2..], 16), + _ => unreachable!(), + }; + + let ok = res_parse_as_i32 + .as_ref() + .map(|res| !neg || *res != i32::MIN) + .unwrap_or_default(); + + if ok { + let res = res_parse_as_i32.unwrap(); + self.yylval = Yylval::I(if neg { -res } else { res }); + Some(TokenKind::ICONST) + } else { + self.yylval = Yylval::Str(yytext_original); + Some(TokenKind::FCONST) + } + } + + pub fn downcase_truncate_identifier(&self, yyleng: usize, _warn: bool) -> String { + self.yytext()[..yyleng].to_ascii_lowercase() + } +} + +/// The logic for converting tokens in PostgreSQL's parser.c +/// ref: https://github.com/postgres/postgres/blob/REL_16_STABLE/src/backend/parser/parser.c#L195 +pub fn init_tokens(tokens: &mut [Token]) { + fn next_token_index(tokens: &[Token], i: usize) -> Option { + for (j, token) in tokens.iter().enumerate().skip(i + 1) { + match token.kind { + TokenKind::C_COMMENT | TokenKind::SQL_COMMENT => continue, + _ => return Some(j), + } + } + None + } + + for i in 0..tokens.len() - 1 { + match &tokens[i].kind { + TokenKind::KEYWORD(k) if k == "FORMAT" => { + if let Some(j) = next_token_index(tokens, i) { + if tokens[j].kind == TokenKind::KEYWORD("JSON".to_string()) { + tokens[i].kind = TokenKind::KEYWORD("FORMAT_LA".to_string()); + } + } + } + TokenKind::KEYWORD(k) if k == "NOT" => { + if let Some(j) = next_token_index(tokens, i) { + match &tokens[j].kind { + TokenKind::KEYWORD(k) + if matches!( + k.as_str(), + "BETWEEN" | "IN_P" | "LIKE" | "ILIKE" | "SIMILAR" + ) => + { + tokens[i].kind = TokenKind::KEYWORD("NOT_LA".to_string()); + } + _ => {} + } + } + } + TokenKind::KEYWORD(k) if k == "NULLS_P" => { + if let Some(j) = next_token_index(tokens, i) { + match &tokens[j].kind { + TokenKind::KEYWORD(k) if matches!(k.as_str(), "FIRST_P" | "LAST_P") => { + tokens[i].kind = TokenKind::KEYWORD("NULLS_LA".to_string()); + } + _ => {} + } + } + } + TokenKind::KEYWORD(k) if k == "WITH" => { + if let Some(j) = next_token_index(tokens, i) { + match &tokens[j].kind { + TokenKind::KEYWORD(k) if matches!(k.as_str(), "TIME" | "ORDINALITY") => { + tokens[i].kind = TokenKind::KEYWORD("WITH_LA".to_string()); + } + _ => {} + } + } + } + TokenKind::KEYWORD(k) if k == "WITHOUT" => { + if let Some(j) = next_token_index(tokens, i) { + match &tokens[j].kind { + TokenKind::KEYWORD(k) if matches!(k.as_str(), "TIME") => { + tokens[i].kind = TokenKind::KEYWORD("WITHOUT_LA".to_string()); + } + _ => {} + } + } + } + _ => (), + } + } +} diff --git a/crates/parser-generator/src/parser_generator/lexer/parser_error.rs b/crates/parser-generator/src/parser_generator/lexer/parser_error.rs new file mode 100644 index 0000000..c9f5f74 --- /dev/null +++ b/crates/parser-generator/src/parser_generator/lexer/parser_error.rs @@ -0,0 +1,41 @@ +#[derive(Debug, PartialEq)] +pub enum ParserError { + ParseError { + message: String, + start_byte_pos: usize, + end_byte_pos: usize, + }, + ScanReport(ScanReport), + ScanError { + message: String, + }, +} + +impl ParserError { + pub fn new_report(message: &str, detail: &str, position: usize) -> Self { + Self::ScanReport(ScanReport::new(message, detail, position)) + } + + pub fn new_error(message: &str) -> Self { + Self::ScanError { + message: message.to_string(), + } + } +} + +#[derive(Debug, PartialEq)] +pub struct ScanReport { + pub message: String, + pub detail: String, + pub position_in_bytes: usize, +} + +impl ScanReport { + pub fn new(message: &str, detail: &str, position: usize) -> Self { + Self { + message: message.to_string(), + detail: detail.to_string(), + position_in_bytes: position, + } + } +} diff --git a/crates/parser-generator/src/parser_generator/lexer/util.rs b/crates/parser-generator/src/parser_generator/lexer/util.rs index 85abe43..0c28eed 100644 --- a/crates/parser-generator/src/parser_generator/lexer/util.rs +++ b/crates/parser-generator/src/parser_generator/lexer/util.rs @@ -1,21 +1,15 @@ -use regex::bytes::Match; +#![allow(dead_code)] use super::{ - generated::{get_keyword_map, RuleKind, State}, - {Lexer, Rule, TokenKind, Yylval}, + Lexer, ScanReport, Yylval, + generated::{State, get_keyword_map}, }; -pub fn yyerror(msg: &str) { - eprintln!("{msg}"); - panic!(); -} - -pub fn get_char_by_byte_pos(s: &str, byte_pos: usize) -> char { - s.bytes().nth(byte_pos).unwrap() as char -} - impl Lexer { - pub fn new(input: &str, rules: Vec) -> Self { + pub fn new(input: &str) -> Self { + #[cfg(feature = "regex-match")] + let rules = super::generated::get_rules(); + Self { input: input.to_string(), index_bytes: 0, @@ -28,12 +22,17 @@ impl Lexer { yylloc_stack: vec![], literal: String::new(), dolqstart: "".to_string(), + warn_on_first_escape: false, + saw_non_ascii: false, + utf16_first_part: 0, yylloc_bytes: 0, yylval: Yylval::Uninitialized, + #[cfg(feature = "regex-match")] rules, keyword_map: get_keyword_map(), + reports: Vec::new(), } } @@ -60,108 +59,82 @@ impl Lexer { self.yyleng = len; } - pub fn set_yylloc(&mut self) { - self.yylloc_bytes = self.index_bytes; - } + #[cfg(not(feature = "regex-match"))] + pub fn find_match_len(&self) -> (usize, u8) { + use super::generated::dfa::get_dfa_table; - pub fn set_yyllocend(&mut self) { - self.yyllocend_bytes = self.index_bytes + self.yyleng; - } - - pub fn addlitchar(&mut self, ychar: char) { - // /* enlarge buffer if needed */ - // if ((yyextra->literallen + 1) >= yyextra->literalalloc) - // { - // yyextra->literalalloc *= 2; - // yyextra->literalbuf = (char *) repalloc(yyextra->literalbuf, - // yyextra->literalalloc); - // } - // /* append new data */ - // yyextra->literalbuf[yyextra->literallen] = ychar; - // yyextra->literallen += 1; - self.literal.push(ychar); - } - - pub fn addlit(&mut self, yyleng: usize) { - // /* enlarge buffer if needed */ - // if ((yyextra->literallen + yleng) >= yyextra->literalalloc) - // { - // yyextra->literalalloc = pg_nextpower2_32(yyextra->literallen + yleng + 1); - // yyextra->literalbuf = (char *) repalloc(yyextra->literalbuf, - // yyextra->literalalloc); - // } - // /* append new data */ - // memcpy(yyextra->literalbuf + yyextra->literallen, ytext, yleng); - // yyextra->literallen += yleng; - self.literal += &self.input[self.index_bytes..][..yyleng]; - } + let s = &self.input[self.index_bytes..]; - pub fn push_yylloc(&mut self) { - self.yylloc_stack.push(self.yylloc_bytes); - } + let (transition, accept) = get_dfa_table(self.state); - pub fn pop_yylloc(&mut self) { - self.yylloc_bytes = self.yylloc_stack.pop().unwrap(); - } + let mut dfa_state_index = 0_u8; + let mut accept_rule = accept[dfa_state_index as usize]; + let mut longest_match = 0; - pub fn process_integer_literal(&mut self, radix: usize) -> Option { - let yytext_original = self.yytext(); - let mut yytext = yytext_original.as_str(); - let mut neg = false; + for (i, byte) in s.as_bytes().iter().enumerate() { + let transition_index = *byte as usize; + dfa_state_index = transition[dfa_state_index as usize][transition_index]; - match yytext.bytes().next() { - Some(b) if b == '-' as u8 => { - neg = true; - yytext = &yytext[1..]; + if dfa_state_index == !0 { + return (longest_match, accept_rule); } - Some(b) if b == '+' as u8 => { - yytext = &yytext[1..]; + + if accept[dfa_state_index as usize] != !0 { + accept_rule = accept[dfa_state_index as usize]; + longest_match = i + 1; } - _ => (), } - let res_parse_as_i32 = match radix { - 8 => i32::from_str_radix(&yytext[2..], 8), - 10 => i32::from_str_radix(yytext, 10), - 16 => i32::from_str_radix(&yytext[2..], 16), - _ => unreachable!(), - }; - - let ok = res_parse_as_i32 - .as_ref() - .map(|res| !neg || *res != i32::MIN) - .unwrap_or_default(); - - if ok { - let res = res_parse_as_i32.unwrap(); - self.yylval = Yylval::I(if neg { -res } else { res }); - Some(TokenKind::ICONST) - } else { - self.yylval = Yylval::Str(yytext_original); - Some(TokenKind::FCONST) + // Check for match against EOF + if transition[dfa_state_index as usize][0] != !0 { + // Currently, EOF is represented by byte value 0 + dfa_state_index = transition[dfa_state_index as usize][0]; + + if accept[dfa_state_index as usize] != !0 { + accept_rule = accept[dfa_state_index as usize]; + longest_match = s.len(); + } } - } - pub fn downcase_truncate_identifier(&self, yyleng: usize, _warn: bool) -> String { - self.yytext()[..yyleng].to_ascii_lowercase() + (longest_match, accept_rule) } - pub fn find_match(&self) -> (Match, RuleKind) { + #[cfg(feature = "regex-match")] + pub fn find_match_len(&self) -> (usize, super::generated::RuleKind) { let rules = self.rules.iter().filter(|rule| rule.state == self.state); let s = &self.input[self.index_bytes..]; - let mut longest_match: Option = None; - let mut kind = RuleKind::INITIAL1; + let mut longest_match = 0; + let mut eof = false; + let mut kind = super::generated::RuleKind::INITIAL1; for rule in rules { if let Some(m) = rule.pattern.find(s.as_bytes()) { - if longest_match.map_or(-1, |m| m.len() as i64) < m.len() as i64 { - longest_match = Some(m); + // treat eof as single null character + let match_len = if rule.eof { 1 } else { m.len() }; + + if longest_match < match_len { + longest_match = match_len; + eof = rule.eof; kind = rule.kind; } } } - (longest_match.unwrap(), kind) + // The match length is treated as 1 in the case of EOF to ensure that the state handling EOF is properly selected. + // Unlike C, strings are not null-terminated, so it's more convenient for subsequent processing to treat the match length as 0, therefore in the case of EOF, it's treated as 0. + if eof { + (0, kind) + } else { + (longest_match, kind) + } + } + + pub fn add_warning(&mut self, report: ScanReport) { + self.reports.push(report); + } + + pub fn lexer_errposition(&self) -> usize { + self.index_bytes } } diff --git a/crates/parser-generator/resources/parser_template.rs b/crates/parser-generator/templates/parser_template.rs similarity index 55% rename from crates/parser-generator/resources/parser_template.rs rename to crates/parser-generator/templates/parser_template.rs index 534818f..547f5d3 100644 --- a/crates/parser-generator/resources/parser_template.rs +++ b/crates/parser-generator/templates/parser_template.rs @@ -1,3 +1,4 @@ +#![allow(dead_code)] use crate::lexer::TokenKind; pub(crate) struct Rule { @@ -13,14 +14,17 @@ pub(crate) enum Action { Error, } -#[rustfmt::skip] -pub(crate) const ACTION_TABLE: &[u8; {action_table_size}] = &[{action_table}]; +pub(crate) static ACTION_CHECK_TABLE: [i16; {action_check_table_size}] = [{action_check_table}]; +pub(crate) static ACTION_TABLE: [i16; {action_table_size}] = [{action_table}]; +pub(crate) static ACTION_TABLE_INDEX: [u32; {action_table_index_size}] = [{action_table_index}]; +pub(crate) static ACTION_DEF_RULE_TABLE: [i16; {def_rules_size}] = [{def_rules_str}]; -#[rustfmt::skip] -pub(crate) const GOTO_TABLE: &[u8; {goto_table_size}] = &[{goto_table}]; +pub(crate) static GOTO_CHECK_TABLE: [i16; {goto_check_table_size}] = [{goto_check_table}]; +pub(crate) static GOTO_TABLE: [i16; {goto_table_size}] = [{goto_table}]; +pub(crate) static GOTO_TABLE_INDEX: [u32; {goto_table_index_size}] = [{goto_table_index}]; #[rustfmt::skip] -pub(crate) const RULES: &[Rule; {num_parse_rules}] = &[{parse_rules}]; +pub(crate) static RULES: [Rule; {num_parse_rules}] = [{parse_rules}]; pub(crate) fn num_terminal_symbol() -> u32 {{num_terminal_symbol}} pub(crate) fn num_non_terminal_symbol() -> u32 {{num_non_terminal_symbol}} diff --git a/crates/postgresql-cst-parser/CHANGELOG b/crates/postgresql-cst-parser/CHANGELOG new file mode 100644 index 0000000..bab99b4 --- /dev/null +++ b/crates/postgresql-cst-parser/CHANGELOG @@ -0,0 +1,14 @@ +# CHANGELOG + +## [0.2.0] - 2025-04-04 + +### Improvements +- Significant performance enhancement + +## [0.1.0] - 2025-03-21 + +### Added +- Initial release +- PostgreSQL 17 syntax support +- CST generation functionality following [gram.y](https://github.com/postgres/postgres/blob/REL_17_0/src/backend/parser/gram.y) structure +- Pure Rust implementation enabling WebAssembly compilation via wasm-bindgen diff --git a/crates/postgresql-cst-parser/Cargo.toml b/crates/postgresql-cst-parser/Cargo.toml index 6f1d1e6..9ee70e6 100644 --- a/crates/postgresql-cst-parser/Cargo.toml +++ b/crates/postgresql-cst-parser/Cargo.toml @@ -1,20 +1,30 @@ [package] name = "postgresql-cst-parser" -version = "0.1.0" +version = "0.2.0" edition = "2021" repository = "https://github.com/tanzaku/postgresql-cst-parser" -description = "PostgreSQL cst parser" -documentation = "" +description = "An unofficial PostgreSQL CST parser written in Pure Rust." +authors = ["tanzaku"] license-file = "../../LICENSE" +exclude = ["tests/**", "examples/**", "benches/**"] +categories = ["parser-implementations"] +keywords = ["postgres", "parser", "sql"] # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -regex = "1.10.2" +regex = { version = "1.10.2", optional = true } cstree = { version = "0.12.0", features = ["derive"] } -miniz_oxide = "0.8.0" [features] default = ["tree-sitter-like"] -tree-sitter-like = ["remove-empty-node"] remove-empty-node = [] +regex-match = ["regex"] +tree-sitter-like = ["remove-empty-node"] + +[[bench]] +name = "test" +harness = false + +[dev-dependencies] +criterion = "0.5.1" diff --git a/crates/postgresql-cst-parser/README.ja.md b/crates/postgresql-cst-parser/README.ja.md new file mode 100644 index 0000000..d622ad6 --- /dev/null +++ b/crates/postgresql-cst-parser/README.ja.md @@ -0,0 +1,158 @@ +# postgresql-cst-parser + +[![Crates.io](https://img.shields.io/crates/v/postgresql-cst-parser.svg)](https://crates.io/crates/postgresql-cst-parser) + +**注意:このパーサーはPostgreSQLの公式プロジェクトではなく、独立した非公式ツールです。** + +## 概要 + +`postgresql-cst-parser`は、Pure Rustで開発されたPostgreSQL専用の具象構文木(CST)パーサーです。このドキュメントでは、パーサーの機能、開発のモチベーション、使用方法、および実装の詳細について説明します。 + +## 主な特徴 + +- **PostgreSQL 17対応**: 最新のPostgreSQL 17の構文をサポートしています。 +- **構造化されたCST出力**: 生成されるCSTは、PostgreSQLの[gram.y](https://github.com/postgres/postgres/blob/REL_17_0/src/backend/parser/gram.y)ファイルで定義された構造に厳密に従います。 +- **`cstree`の利用**: 構文木の構築に`cstree`クレートを使用しています。 +- **wasm-bindgenとの併用**: Pure Rust で書かれているため、wasm-bindgen と併用できます。 +- **PL/pgSQL**: 現在はサポートされていません。 + +## 開発のモチベーション + +Rustから使用可能で、すべての構文をサポートし、(Pure Rust で書かれており) wasm-bindgen が利用可能なライブラリが必要だったため開発しました。 + +## 使用方法 + +以下のように使用することができます: + +```rust +use postgresql_cst_parser::{parse, syntax_kind::SyntaxKind}; + +fn main() { + // Parse SQL query and get the syntax tree + let sql = "SELECT tbl.a as a, tbl.b from TBL tbl WHERE tbl.a > 0;"; + let root = parse(sql).unwrap(); + + // Example 1: Extract all column references from the query + let column_refs: Vec = root + .descendants() + .filter(|node| node.kind() == SyntaxKind::columnref) + .map(|node| node.text().to_string()) + .collect(); + + println!("Column references: {:?}", column_refs); // ["tbl.a", "tbl.b", "tbl.a"] + + // Example 2: Find the WHERE condition + if let Some(where_clause) = root + .descendants() + .find(|node| node.kind() == SyntaxKind::where_clause) + { + println!("WHERE condition: {}", where_clause.text()); + } + + // Example 3: Get the selected table name + if let Some(relation_expr) = root + .descendants() + .find(|node| node.kind() == SyntaxKind::relation_expr) + { + if let Some(name_node) = relation_expr + .descendants() + .find(|node| node.kind() == SyntaxKind::ColId) + { + println!("Table name: {}", name_node.text()); + } + } + + // Example 4: Parse complex SQL and extract specific nodes + let complex_sql = "WITH data AS (SELECT id, value FROM source WHERE value > 10) + SELECT d.id, d.value, COUNT(*) OVER (PARTITION BY d.id) + FROM data d JOIN other o ON d.id = o.id + ORDER BY d.value DESC LIMIT 10;"; + + let complex_root = parse(complex_sql).unwrap(); + + // Extract CTEs (Common Table Expressions) + let ctes: Vec<_> = complex_root + .descendants() + .filter(|node| node.kind() == SyntaxKind::common_table_expr) + .collect(); + + // Extract window functions + let window_funcs: Vec<_> = complex_root + .descendants() + .filter(|node| node.kind() == SyntaxKind::over_clause) + .collect(); + + println!("Number of CTEs: {}", ctes.len()); + println!("Number of window functions: {}", window_funcs.len()); +} +``` + +生成される構文木の例: + +```sql +SELECT tbl.a as a from TBL tbl; +``` + +``` +Root@0..31 + parse_toplevel@0..31 + stmtmulti@0..31 + stmtmulti@0..30 + toplevel_stmt@0..30 + stmt@0..30 + SelectStmt@0..30 + select_no_parens@0..30 + simple_select@0..30 + SELECT@0..6 "SELECT" + Whitespace@6..7 " " + opt_target_list@7..17 + target_list@7..17 + target_el@7..17 + a_expr@7..12 + c_expr@7..12 + columnref@7..12 + ColId@7..10 + IDENT@7..10 "tbl" + indirection@10..12 + indirection_el@10..12 + Dot@10..11 "." + attr_name@11..12 + ColLabel@11..12 + IDENT@11..12 "a" + Whitespace@12..13 " " + AS@13..15 "as" + Whitespace@15..16 " " + ColLabel@16..17 + IDENT@16..17 "a" + Whitespace@17..18 " " + from_clause@18..30 + FROM@18..22 "from" + Whitespace@22..23 " " + from_list@23..30 + table_ref@23..30 + relation_expr@23..26 + qualified_name@23..26 + ColId@23..26 + IDENT@23..26 "TBL" + Whitespace@26..27 " " + opt_alias_clause@27..30 + alias_clause@27..30 + ColId@27..30 + IDENT@27..30 "tbl" + Semicolon@30..31 ";" +``` + +## オンラインデモ + +[こちら](https://tanzaku.github.io/postgresql-cst-parser/)でパーサーを直接試すことができます。SQLクエリを入力して、生成された構文木をリアルタイムで確認できます。 + +## 実装 + +この実装は、PostgreSQLの[scan.l](https://github.com/postgres/postgres/blob/REL_17_0/src/backend/parser/scan.l)と[gram.y](https://github.com/postgres/postgres/blob/REL_17_0/src/backend/parser/gram.y)に対して[libpg_query](https://github.com/pganalyze/libpg_query/tree/17-6.0.0/patches)のパッチを適用したファイルを使用しています。`scan.l`はさらに Rust 用に書き直したうえで、`scan.l`と`gram.y`に基づいて構文解析テーブルを作成し、パーサーを構築しています。 + +## ライセンス + +- `kwlist.h`、`parser.c`、`scan.l`、`gram.y`はPostgreSQLライセンスの下にあります。 +- `lexer_ported.rs`と`generated.rs`はPostgreSQLから移植されたコードを含むため、移植部分はPostgreSQLライセンスの下にあります。 +- このプロジェクトでは、`scan.l`、`gram.y`に対して[libpg_query](https://github.com/pganalyze/libpg_query)のパッチを当てていますが、パッチそのものはこのリポジトリには含まれていません。 +- その他のファイルはMITライセンスの下で公開されています。 diff --git a/crates/postgresql-cst-parser/README.md b/crates/postgresql-cst-parser/README.md new file mode 100644 index 0000000..750120d --- /dev/null +++ b/crates/postgresql-cst-parser/README.md @@ -0,0 +1,158 @@ +# postgresql-cst-parser + +[![Crates.io](https://img.shields.io/crates/v/postgresql-cst-parser.svg)](https://crates.io/crates/postgresql-cst-parser) + +**Note: This parser is not an official PostgreSQL project but an independent, unofficial tool.** + +## Overview + +`postgresql-cst-parser` is a PostgreSQL-specific Concrete Syntax Tree (CST) parser developed in Pure Rust. This document describes the parser's features, development motivation, usage, and implementation details. + +## Key Features + +- **PostgreSQL 17 Support**: Supports the latest PostgreSQL 17 syntax. +- **Structured CST Output**: The generated CST strictly follows the structure defined in PostgreSQL's [gram.y](https://github.com/postgres/postgres/blob/REL_17_0/src/backend/parser/gram.y) file. +- **Utilizing `cstree`**: Uses the `cstree` crate for building syntax trees. +**Compatible with wasm-bindgen**: Being written in Pure Rust, it can be used with wasm-bindgen for WebAssembly integration. +- **PL/pgSQL**: Currently not supported. + +## Development Motivation + +This project was developed because we needed a library that can be used from Rust, supports all syntax, and (being written in Pure Rust) can be used with wasm-bindgen. + +## Usage + +You can use it as follows: + +```rust +use postgresql_cst_parser::{parse, syntax_kind::SyntaxKind}; + +fn main() { + // Parse SQL query and get the syntax tree + let sql = "SELECT tbl.a as a, tbl.b from TBL tbl WHERE tbl.a > 0;"; + let root = parse(sql).unwrap(); + + // Example 1: Extract all column references from the query + let column_refs: Vec = root + .descendants() + .filter(|node| node.kind() == SyntaxKind::columnref) + .map(|node| node.text().to_string()) + .collect(); + + println!("Column references: {:?}", column_refs); // ["tbl.a", "tbl.b", "tbl.a"] + + // Example 2: Find the WHERE condition + if let Some(where_clause) = root + .descendants() + .find(|node| node.kind() == SyntaxKind::where_clause) + { + println!("WHERE condition: {}", where_clause.text()); + } + + // Example 3: Get the selected table name + if let Some(relation_expr) = root + .descendants() + .find(|node| node.kind() == SyntaxKind::relation_expr) + { + if let Some(name_node) = relation_expr + .descendants() + .find(|node| node.kind() == SyntaxKind::ColId) + { + println!("Table name: {}", name_node.text()); + } + } + + // Example 4: Parse complex SQL and extract specific nodes + let complex_sql = "WITH data AS (SELECT id, value FROM source WHERE value > 10) + SELECT d.id, d.value, COUNT(*) OVER (PARTITION BY d.id) + FROM data d JOIN other o ON d.id = o.id + ORDER BY d.value DESC LIMIT 10;"; + + let complex_root = parse(complex_sql).unwrap(); + + // Extract CTEs (Common Table Expressions) + let ctes: Vec<_> = complex_root + .descendants() + .filter(|node| node.kind() == SyntaxKind::common_table_expr) + .collect(); + + // Extract window functions + let window_funcs: Vec<_> = complex_root + .descendants() + .filter(|node| node.kind() == SyntaxKind::over_clause) + .collect(); + + println!("Number of CTEs: {}", ctes.len()); + println!("Number of window functions: {}", window_funcs.len()); +} +``` + +Example of the generated syntax tree: + +```sql +SELECT tbl.a as a from TBL tbl; +``` + +``` +Root@0..31 + parse_toplevel@0..31 + stmtmulti@0..31 + stmtmulti@0..30 + toplevel_stmt@0..30 + stmt@0..30 + SelectStmt@0..30 + select_no_parens@0..30 + simple_select@0..30 + SELECT@0..6 "SELECT" + Whitespace@6..7 " " + opt_target_list@7..17 + target_list@7..17 + target_el@7..17 + a_expr@7..12 + c_expr@7..12 + columnref@7..12 + ColId@7..10 + IDENT@7..10 "tbl" + indirection@10..12 + indirection_el@10..12 + Dot@10..11 "." + attr_name@11..12 + ColLabel@11..12 + IDENT@11..12 "a" + Whitespace@12..13 " " + AS@13..15 "as" + Whitespace@15..16 " " + ColLabel@16..17 + IDENT@16..17 "a" + Whitespace@17..18 " " + from_clause@18..30 + FROM@18..22 "from" + Whitespace@22..23 " " + from_list@23..30 + table_ref@23..30 + relation_expr@23..26 + qualified_name@23..26 + ColId@23..26 + IDENT@23..26 "TBL" + Whitespace@26..27 " " + opt_alias_clause@27..30 + alias_clause@27..30 + ColId@27..30 + IDENT@27..30 "tbl" + Semicolon@30..31 ";" +``` + +## Online Demo + +You can try the parser directly [here](https://tanzaku.github.io/postgresql-cst-parser/). Enter your SQL query and see the generated syntax tree in real-time. + +## Implementation + +This implementation uses PostgreSQL's [scan.l](https://github.com/postgres/postgres/blob/REL_17_0/src/backend/parser/scan.l) and [gram.y](https://github.com/postgres/postgres/blob/REL_17_0/src/backend/parser/gram.y) with patches from [libpg_query](https://github.com/pganalyze/libpg_query/tree/17-6.0.0/patches) applied. `scan.l` has been further rewritten for Rust, and based on `scan.l` and `gram.y`, a syntax parsing table has been created to build the parser. + +## License + +- `kwlist.h`, `parser.c`, `scan.l`, `gram.y` are under the PostgreSQL License. +- `lexer_ported.rs` and `generated.rs` contain code ported from PostgreSQL, so the ported parts are under the PostgreSQL License. +- This project applies patches from [libpg_query](https://github.com/pganalyze/libpg_query) to `scan.l` and `gram.y`, but the patches themselves are not included in this repository. +- Other files are published under the MIT License. \ No newline at end of file diff --git a/crates/postgresql-cst-parser/benches/data/src/create_index.sql b/crates/postgresql-cst-parser/benches/data/src/create_index.sql new file mode 100644 index 0000000..9789c6d --- /dev/null +++ b/crates/postgresql-cst-parser/benches/data/src/create_index.sql @@ -0,0 +1,13 @@ +-- https://www.postgresql.jp/document/10/html/sql-createindex.html +CREATE UNIQUE INDEX title_idx ON films (title); +CREATE INDEX ON films ((lower(title))); +CREATE INDEX title_idx_german ON films (title COLLATE "de_DE"); +CREATE INDEX title_idx_nulls_low ON films (title NULLS FIRST); +CREATE UNIQUE INDEX title_idx ON films (title) WITH (fillfactor = 70); +CREATE INDEX gin_idx ON documents_table USING GIN (locations) WITH (fastupdate = off); +CREATE INDEX code_idx ON films (code) TABLESPACE indexspace; +CREATE INDEX pointloc + ON points USING gist (box(location,location)); +SELECT * FROM points + WHERE box(location,location) && '(0,0),(1,1)'::box; +CREATE INDEX CONCURRENTLY sales_quantity_index ON sales_table (quantity); diff --git a/crates/postgresql-cst-parser/benches/data/src/create_table.sql b/crates/postgresql-cst-parser/benches/data/src/create_table.sql new file mode 100644 index 0000000..cf87643 --- /dev/null +++ b/crates/postgresql-cst-parser/benches/data/src/create_table.sql @@ -0,0 +1,81 @@ +-- https://www.postgresql.jp/document/8.3/html/sql-createtable.html +CREATE TABLE films ( + code char(5) CONSTRAINT firstkey PRIMARY KEY, + title varchar(40) NOT NULL, + did integer NOT NULL, + date_prod date, + kind varchar(10), + len interval hour to minute +); +CREATE TABLE distributors ( + did integer PRIMARY KEY DEFAULT nextval('serial'), + name varchar(40) NOT NULL CHECK (name <> '') +); +CREATE TABLE array_int ( + vector int[][] +); +CREATE TABLE films ( + code char(5), + title varchar(40), + did integer, + date_prod date, + kind varchar(10), + len interval hour to minute, + CONSTRAINT production UNIQUE(date_prod) +); +CREATE TABLE distributors ( + did integer CHECK (did > 100), + name varchar(40) +); +CREATE TABLE distributors ( + did integer, + name varchar(40) + CONSTRAINT con1 CHECK (did > 100 AND name <> '') +); +CREATE TABLE films ( + code char(5), + title varchar(40), + did integer, + date_prod date, + kind varchar(10), + len interval hour to minute, + CONSTRAINT code_title PRIMARY KEY(code,title) +); +CREATE TABLE distributors ( + did integer, + name varchar(40), + PRIMARY KEY(did) +); +CREATE TABLE distributors ( + did integer PRIMARY KEY, + name varchar(40) +); +CREATE TABLE distributors ( + name varchar(40) DEFAULT 'Luso Films', + did integer DEFAULT nextval('distributors_serial'), + modtime timestamp DEFAULT current_timestamp +); +CREATE TABLE distributors ( + did integer CONSTRAINT no_null NOT NULL, + name varchar(40) NOT NULL +); +CREATE TABLE distributors ( + did integer, + name varchar(40) UNIQUE +); +CREATE TABLE distributors ( + did integer, + name varchar(40), + UNIQUE(name) +); +CREATE TABLE distributors ( + did integer, + name varchar(40), + UNIQUE(name) WITH (fillfactor=70) +) +WITH (fillfactor=70); +CREATE TABLE cinemas ( + id serial, + name text, + location text +) TABLESPACE diskvol1; diff --git a/crates/postgresql-cst-parser/benches/data/src/delete.sql b/crates/postgresql-cst-parser/benches/data/src/delete.sql new file mode 100644 index 0000000..e335a1c --- /dev/null +++ b/crates/postgresql-cst-parser/benches/data/src/delete.sql @@ -0,0 +1,11 @@ +-- https://www.postgresql.jp/docs/9.0/sql-delete.html +DELETE FROM films USING producers + WHERE producer_id = producers.id AND producers.name = 'foo'; +DELETE FROM films + WHERE producer_id IN (SELECT id FROM producers WHERE name = 'foo'); +DELETE FROM films WHERE kind <> 'Musical'; +DELETE FROM films; +DELETE FROM tasks WHERE status = 'DONE' RETURNING *; +DELETE FROM tasks WHERE CURRENT OF c_tasks; +DELETE FROM employees + WHERE position = 'Data Analyst' AND salary < 70000; \ No newline at end of file diff --git a/crates/postgresql-cst-parser/benches/data/src/drop_function.sql b/crates/postgresql-cst-parser/benches/data/src/drop_function.sql new file mode 100644 index 0000000..23ecc5f --- /dev/null +++ b/crates/postgresql-cst-parser/benches/data/src/drop_function.sql @@ -0,0 +1,5 @@ +-- https://www.postgresql.jp/docs/11/sql-dropfunction.html +DROP FUNCTION sqrt(integer); +DROP FUNCTION sqrt(integer), sqrt(bigint); +DROP FUNCTION update_employee_salaries; +DROP FUNCTION update_employee_salaries(); diff --git a/crates/postgresql-cst-parser/benches/data/src/drop_table.sql b/crates/postgresql-cst-parser/benches/data/src/drop_table.sql new file mode 100644 index 0000000..95656ff --- /dev/null +++ b/crates/postgresql-cst-parser/benches/data/src/drop_table.sql @@ -0,0 +1,2 @@ +-- https://www.postgresql.jp/docs/9.2/sql-droptable.html +DROP TABLE films, distributors; diff --git a/crates/postgresql-cst-parser/benches/data/src/insert.sql b/crates/postgresql-cst-parser/benches/data/src/insert.sql new file mode 100644 index 0000000..f6ede95 --- /dev/null +++ b/crates/postgresql-cst-parser/benches/data/src/insert.sql @@ -0,0 +1,37 @@ +-- https://www.postgresql.jp/docs/9.2/dml-insert.html +INSERT INTO products VALUES (1, 'Cheese', 9.99); +INSERT INTO products (product_no, name, price) VALUES (1, 'Cheese', 9.99); +INSERT INTO products (name, price, product_no) VALUES ('Cheese', 9.99, 1); +INSERT INTO products (product_no, name) VALUES (1, 'Cheese'); +INSERT INTO products VALUES (1, 'Cheese'); +INSERT INTO products (product_no, name, price) VALUES (1, 'Cheese', DEFAULT); +INSERT INTO products DEFAULT VALUES; +INSERT INTO products (product_no, name, price) VALUES + (1, 'Cheese', 9.99), + (2, 'Bread', 1.99), + (3, 'Milk', 2.99); +-- https://www.postgresql.jp/document/8.4/html/sql-insert.html +INSERT INTO films VALUES + ('UA502', 'Bananas', 105, '1971-07-13', 'Comedy', '82 minutes'); +INSERT INTO films (code, title, did, date_prod, kind) + VALUES ('T_601', 'Yojimbo', 106, '1961-06-16', 'Drama'); +INSERT INTO films VALUES + ('UA502', 'Bananas', 105, DEFAULT, 'Comedy', '82 minutes'); +INSERT INTO films (code, title, did, date_prod, kind) + VALUES ('T_601', 'Yojimbo', 106, DEFAULT, 'Drama'); +INSERT INTO films DEFAULT VALUES; +INSERT INTO films (code, title, did, date_prod, kind) VALUES + ('B6717', 'Tampopo', 110, '1985-02-10', 'Comedy'), + ('HG120', 'The Dinner Game', 140, DEFAULT, 'Comedy'); +INSERT INTO films SELECT * FROM tmp_films WHERE date_prod < '2004-05-07'; +INSERT INTO tictactoe (game, board[1:3][1:3]) + VALUES (1, '{{" "," "," "},{" "," "," "},{" "," "," "}}'); +INSERT INTO tictactoe (game, board) + VALUES (2, '{{X," "," "},{" ",O," "},{" ",X," "}}'); +INSERT INTO distributors (did, dname) VALUES (DEFAULT, 'XYZ Widgets') + RETURNING did; +INSERT INTO employees (id, name, position, salary, department_id) +VALUES +(1, 'John Doe', 'Software Engineer', 70000, 4), +(2, 'Jane Smith', 'Project Manager', 85000, 3), +(3, 'Carlos Gomez', 'Data Analyst', 65000, 2); \ No newline at end of file diff --git a/crates/postgresql-cst-parser/benches/data/src/merge.sql b/crates/postgresql-cst-parser/benches/data/src/merge.sql new file mode 100644 index 0000000..e25ec6a --- /dev/null +++ b/crates/postgresql-cst-parser/benches/data/src/merge.sql @@ -0,0 +1,7 @@ +MERGE INTO products p USING stock_movements s ON p.id = s.product_id + WHEN MATCHED THEN + UPDATE SET + p.stock_quantity = p.stock_quantity + s.quantity + WHEN NOT MATCHED THEN + INSERT (p.id, p.name, p.price, p.stock_quantity) + VALUES (s.product_id, s.product_name, s.price, s.quantity); diff --git a/crates/postgresql-cst-parser/benches/data/src/postgresql_v17.sql b/crates/postgresql-cst-parser/benches/data/src/postgresql_v17.sql new file mode 100644 index 0000000..9bbb9aa --- /dev/null +++ b/crates/postgresql-cst-parser/benches/data/src/postgresql_v17.sql @@ -0,0 +1,6 @@ +SELECT * + FROM + JSON_TABLE( + '[ {"c1": null} ]', + '$[*]' COLUMNS( c1 INT PATH '$.c1' ERROR ON ERROR ) + ) as jt; diff --git a/crates/postgresql-cst-parser/benches/data/src/select.sql b/crates/postgresql-cst-parser/benches/data/src/select.sql new file mode 100644 index 0000000..657beea --- /dev/null +++ b/crates/postgresql-cst-parser/benches/data/src/select.sql @@ -0,0 +1,114 @@ +-- https://www.postgresql.jp/docs/9.2/sql-select.html +SELECT DISTINCT ON (location) location, time, report + FROM weather_reports + ORDER BY location, time DESC; +SELECT name FROM distributors ORDER BY code; +SELECT * FROM (SELECT * FROM mytable FOR UPDATE) ss WHERE col1 = 5; +SELECT * FROM (SELECT * FROM mytable FOR UPDATE) ss ORDER BY column1; +SELECT f.title, f.did, d.name, f.date_prod, f.kind + FROM distributors d, films f + WHERE f.did = d.did; +SELECT kind, sum(len) AS total FROM films GROUP BY kind; +SELECT kind, sum(len) AS total + FROM films + GROUP BY kind + HAVING sum(len) < interval '5 hours'; +SELECT * FROM distributors ORDER BY name; +SELECT * FROM distributors ORDER BY 2; +SELECT distributors.name + FROM distributors + WHERE distributors.name LIKE 'W%' +UNION +SELECT actors.name + FROM actors + WHERE actors.name LIKE 'W%'; +CREATE FUNCTION distributors(int) RETURNS SETOF distributors AS $$ + SELECT * FROM distributors WHERE did = $1; +$$ LANGUAGE SQL; +SELECT * FROM distributors(111); +CREATE FUNCTION distributors_2(int) RETURNS SETOF record AS $$ + SELECT * FROM distributors WHERE did = $1; +$$ LANGUAGE SQL; + +SELECT * FROM distributors_2(111) AS (f1 int, f2 text); +WITH t AS ( + SELECT random() as x FROM generate_series(1, 3) + ) +SELECT * FROM t +UNION ALL +SELECT * FROM t; +WITH RECURSIVE employee_recursive(distance, employee_name, manager_name) AS ( + SELECT 1, employee_name, manager_name + FROM employee + WHERE manager_name = 'Mary' + UNION ALL + SELECT er.distance + 1, e.employee_name, e.manager_name + FROM employee_recursive er, employee e + WHERE er.employee_name = e.manager_name + ) +SELECT distance, employee_name FROM employee_recursive; +SELECT 2+2; +SELECT distributors.* WHERE distributors.name = 'Westward'; +WITH regional_sales AS ( + SELECT region, SUM(amount) AS total_sales + FROM orders + GROUP BY region +), top_regions AS ( + SELECT region + FROM regional_sales + WHERE total_sales > (SELECT SUM(total_sales)*1.1/10 FROM regional_sales) +) +SELECT region, + product, + SUM(quantity) AS product_units, + SUM(amount) AS product_sales +FROM orders +WHERE region IN (SELECT region FROM top_regions) +GROUP BY region, product; +WITH regional_sales AS ( + SELECT region, SUM(amount) AS total_sales + FROM orders + GROUP BY region +), top_regions AS ( + SELECT region + FROM regional_sales + WHERE total_sales > (SELECT SUM(total_sales)/10 FROM regional_sales) +) +SELECT region, + product, + SUM(quantity) AS product_units, + SUM(amount) AS product_sales, + 1*2-3/4 as X +FROM orders +WHERE region IN (SELECT region FROM top_regions) +GROUP BY region, product; +WITH regional_sales AS ( + SELECT region, SUM(amount) AS total_sales + FROM orders + GROUP BY region +), top_regions AS ( + SELECT region + FROM regional_sales + WHERE total_sales > (SELECT SUM(total_sales)/10 FROM regional_sales) +) +-- test +/* test */ +SELECT region, + product, + SUM(quantity) AS product_units, + SUM(amount) AS product_sales, + 1*2-3/4 as X +FROM orders +WHERE region IN (SELECT region FROM top_regions) +GROUP BY region, product; +-- a +/* b */ +SELECT /*$c*/0 as a, -- d +-- e +b b -- f +, c -- g +; -- h +select +-1; +select カラム; +select E'\U0001F600'; +SELECT e'\uD83D\uDC31'; \ No newline at end of file diff --git a/crates/postgresql-cst-parser/benches/data/src/update.sql b/crates/postgresql-cst-parser/benches/data/src/update.sql new file mode 100644 index 0000000..c3371cb --- /dev/null +++ b/crates/postgresql-cst-parser/benches/data/src/update.sql @@ -0,0 +1,12 @@ +-- https://www.postgresql.jp/document/8.0/html/sql-update.html +UPDATE films SET kind = 'Dramatic' WHERE kind = 'Drama'; +UPDATE weather SET temp_lo = temp_lo+1, temp_hi = temp_lo+15, prcp = DEFAULT + WHERE city = 'San Francisco' AND date = '2003-07-03'; +UPDATE employees SET sales_count = sales_count + 1 FROM accounts + WHERE accounts.name = 'Acme Corporation' + AND employees.id = accounts.sales_person; +UPDATE employees SET sales_count = sales_count + 1 WHERE id = + (SELECT sales_person FROM accounts WHERE name = 'Acme Corporation'); +UPDATE employees + SET salary = salary * 1.05 + WHERE department_id = 3; \ No newline at end of file diff --git a/crates/postgresql-cst-parser/benches/test.rs b/crates/postgresql-cst-parser/benches/test.rs new file mode 100644 index 0000000..dc7c049 --- /dev/null +++ b/crates/postgresql-cst-parser/benches/test.rs @@ -0,0 +1,34 @@ +use criterion::{black_box, criterion_group, criterion_main, Criterion}; +use postgresql_cst_parser::parse; + +fn test_all_bench(c: &mut Criterion) { + let mut sqls = Vec::new(); + for e in std::fs::read_dir("./tests/data/src").unwrap() { + let e = e.unwrap(); + + if e.file_type().unwrap().is_file() && e.file_name().into_string().unwrap() != "2way.sql" { + let content = std::fs::read_to_string(e.path()).unwrap(); + sqls.push(content); + } + } + + c.bench_function("bench", |b| { + b.iter(|| { + for sql in &sqls { + parse(black_box(sql)).unwrap(); + } + }) + }); +} + +fn test_single_sql(c: &mut Criterion) { + c.bench_function("bench", |b| { + b.iter(|| { + parse(black_box(r#"select;"#)).unwrap(); + }) + }); +} + +criterion_group!(benches, test_all_bench, test_single_sql); + +criterion_main!(benches); diff --git a/crates/postgresql-cst-parser/examples/sample.rs b/crates/postgresql-cst-parser/examples/sample.rs new file mode 100644 index 0000000..49d9a16 --- /dev/null +++ b/crates/postgresql-cst-parser/examples/sample.rs @@ -0,0 +1,60 @@ +use postgresql_cst_parser::{parse, syntax_kind::SyntaxKind}; + +fn main() { + // Parse SQL query and get the syntax tree + let sql = "SELECT tbl.a as a, tbl.b from TBL tbl WHERE tbl.a > 0;"; + let root = parse(sql).unwrap(); + + // Example 1: Extract all column references from the query + let column_refs: Vec = root + .descendants() + .filter(|node| node.kind() == SyntaxKind::columnref) + .map(|node| node.text().to_string()) + .collect(); + + println!("Column references: {column_refs:?}"); // ["tbl.a", "tbl.b", "tbl.a"] + + // Example 2: Find the WHERE condition + if let Some(where_clause) = root + .descendants() + .find(|node| node.kind() == SyntaxKind::where_clause) + { + println!("WHERE condition: {}", where_clause.text()); + } + + // Example 3: Get the selected table name + if let Some(relation_expr) = root + .descendants() + .find(|node| node.kind() == SyntaxKind::relation_expr) + { + if let Some(name_node) = relation_expr + .descendants() + .find(|node| node.kind() == SyntaxKind::ColId) + { + println!("Table name: {}", name_node.text()); + } + } + + // Example 4: Parse complex SQL and extract specific nodes + let complex_sql = "WITH data AS (SELECT id, value FROM source WHERE value > 10) + SELECT d.id, d.value, COUNT(*) OVER (PARTITION BY d.id) + FROM data d JOIN other o ON d.id = o.id + ORDER BY d.value DESC LIMIT 10;"; + + let complex_root = parse(complex_sql).unwrap(); + + // Extract CTEs (Common Table Expressions) + let ctes: Vec<_> = complex_root + .descendants() + .filter(|node| node.kind() == SyntaxKind::common_table_expr) + .collect(); + + // Extract window functions + let window_funcs: Vec<_> = complex_root + .descendants() + .filter(|node| node.kind() == SyntaxKind::over_clause) + .collect(); + + println!("Number of CTEs: {}", ctes.len()); + println!("Number of window functions: {}", window_funcs.len()); +} diff --git a/crates/postgresql-cst-parser/examples/tree_sitter_like.rs b/crates/postgresql-cst-parser/examples/tree_sitter_like.rs index aca1b23..ce36f68 100644 --- a/crates/postgresql-cst-parser/examples/tree_sitter_like.rs +++ b/crates/postgresql-cst-parser/examples/tree_sitter_like.rs @@ -18,15 +18,15 @@ select "#; - let tree = tree_sitter::parse(&src).unwrap(); + let tree = tree_sitter::parse(src).unwrap(); let root = tree.root_node(); let mut cursor = root.walk(); - visit(&mut cursor, 0, &src); + visit(&mut cursor, 0); } const UNIT: usize = 2; -fn visit(cursor: &mut TreeCursor, depth: usize, src: &str) { +fn visit(cursor: &mut TreeCursor, depth: usize) { (0..(depth * UNIT)).for_each(|_| print!("-")); print!("{}", cursor.node().kind()); @@ -37,9 +37,9 @@ fn visit(cursor: &mut TreeCursor, depth: usize, src: &str) { println!(" {}", cursor.node().range()); if cursor.goto_first_child() { - visit(cursor, depth + 1, src); + visit(cursor, depth + 1); while cursor.goto_next_sibling() { - visit(cursor, depth + 1, src); + visit(cursor, depth + 1); } cursor.goto_parent(); } diff --git a/crates/postgresql-cst-parser/src/bin/parse.rs b/crates/postgresql-cst-parser/src/bin/parse.rs new file mode 100644 index 0000000..e9f46a1 --- /dev/null +++ b/crates/postgresql-cst-parser/src/bin/parse.rs @@ -0,0 +1,11 @@ +use std::io::Read; + +fn main() { + let mut sql = String::new(); + std::io::stdin().read_to_string(&mut sql).unwrap(); + + match postgresql_cst_parser::parse(&sql) { + Ok(tree) => println!("{tree:#?}"), + Err(e) => eprintln!("{e:#?}"), + } +} diff --git a/crates/postgresql-cst-parser/src/cst.rs b/crates/postgresql-cst-parser/src/cst.rs index 0ecd7cc..45301b8 100644 --- a/crates/postgresql-cst-parser/src/cst.rs +++ b/crates/postgresql-cst-parser/src/cst.rs @@ -7,20 +7,23 @@ pub(crate) use lr_parse_state::*; use cstree::{ build::GreenNodeBuilder, green::GreenNode, interning::Resolver, RawSyntaxKind, Syntax, }; -use miniz_oxide::inflate::decompress_to_vec; use crate::{ - lexer::{lex, TokenKind}, + lexer::{lex, lexer_ported::init_tokens, parser_error::ParserError, TokenKind}, parser::{ - end_rule_id, end_rule_kind, num_non_terminal_symbol, num_terminal_symbol, - rule_name_to_component_id, token_kind_to_component_id, Action, ACTION_TABLE, GOTO_TABLE, - RULES, + end_rule_id, end_rule_kind, num_terminal_symbol, rule_name_to_component_id, + token_kind_to_component_id, Action, ACTION_CHECK_TABLE, ACTION_DEF_RULE_TABLE, + ACTION_TABLE, ACTION_TABLE_INDEX, GOTO_CHECK_TABLE, GOTO_TABLE, GOTO_TABLE_INDEX, RULES, }, transform::{ParseTransform, ParseTransformer}, }; use super::{lexer::Token, syntax_kind::SyntaxKind}; +pub(crate) const ERROR_ACTION_CODE: i16 = 0x7FFF; +pub(crate) const DEFAULT_ACTION_CODE: i16 = 0x7FFE; +pub(crate) const INVALID_GOTO_CODE: i16 = -1; + pub(crate) struct Node { token: Option, pub component_id: u32, @@ -57,13 +60,6 @@ struct Parser { builder: GreenNodeBuilder<'static, 'static, PostgreSQLSyntax>, } -#[derive(Debug)] -pub struct ParseError { - pub message: String, - pub start_byte_pos: usize, - pub end_byte_pos: usize, -} - /// ノードがトークンを含むか否かを判定する /// トークンを含まないノードは削除し、ダミートークンを含む補完されたノードは残すために使用する fn contains_token(node: &Node) -> bool { @@ -80,10 +76,11 @@ impl Parser { node: &Node, peekable: &mut std::iter::Peekable>, ) { - if cfg!(feature = "remove-empty-node") { - if node.start_byte_pos == node.end_byte_pos && !contains_token(node) { - return; - } + if cfg!(feature = "remove-empty-node") + && node.start_byte_pos == node.end_byte_pos + && !contains_token(node) + { + return; } while let Some(Extra { @@ -98,7 +95,7 @@ impl Parser { // if *start > node.start_byte_pos { break; } - self.builder.token(*kind, &comment); + self.builder.token(*kind, comment); peekable.next(); } @@ -135,80 +132,36 @@ impl Parser { } } -/// The logic for converting tokens in PostgreSQL's parser.c -/// ref: https://github.com/postgres/postgres/blob/REL_16_STABLE/src/backend/parser/parser.c#L195 -fn init_tokens(tokens: &mut [Token]) { - fn next_token_index(tokens: &[Token], i: usize) -> Option { - for (j, token) in tokens.iter().enumerate().skip(i + 1) { - match token.kind { - TokenKind::C_COMMENT | TokenKind::SQL_COMMENT => continue, - _ => return Some(j), - } +pub(crate) fn lookup_parser_action(state: u32, cid: u32) -> i16 { + let state = state as usize; + let cid = cid as usize; + + let i = ACTION_TABLE_INDEX[state] as usize; + if ACTION_CHECK_TABLE[i + cid] == cid as i16 { + if ACTION_TABLE[i + cid] == DEFAULT_ACTION_CODE { + ACTION_DEF_RULE_TABLE[state] + } else { + ACTION_TABLE[i + cid] } - None + } else { + ERROR_ACTION_CODE } +} - for i in 0..tokens.len() - 1 { - match &tokens[i].kind { - TokenKind::KEYWORD(k) if k == "FORMAT" => { - if let Some(j) = next_token_index(tokens, i) { - if tokens[j].kind == TokenKind::KEYWORD("JSON".to_string()) { - tokens[i].kind = TokenKind::KEYWORD("FORMAT_LA".to_string()); - } - } - } - TokenKind::KEYWORD(k) if k == "NOT" => { - if let Some(j) = next_token_index(tokens, i) { - match &tokens[j].kind { - TokenKind::KEYWORD(k) - if matches!( - k.as_str(), - "BETWEEN" | "IN_P" | "LIKE" | "ILIKE" | "SIMILAR" - ) => - { - tokens[i].kind = TokenKind::KEYWORD("NOT_LA".to_string()); - } - _ => {} - } - } - } - TokenKind::KEYWORD(k) if k == "NULLS_P" => { - if let Some(j) = next_token_index(tokens, i) { - match &tokens[j].kind { - TokenKind::KEYWORD(k) if matches!(k.as_str(), "FIRST_P" | "LAST_P") => { - tokens[i].kind = TokenKind::KEYWORD("NULLS_LA".to_string()); - } - _ => {} - } - } - } - TokenKind::KEYWORD(k) if k == "WITH" => { - if let Some(j) = next_token_index(tokens, i) { - match &tokens[j].kind { - TokenKind::KEYWORD(k) if matches!(k.as_str(), "TIME" | "ORDINALITY") => { - tokens[i].kind = TokenKind::KEYWORD("WITH_LA".to_string()); - } - _ => {} - } - } - } - TokenKind::KEYWORD(k) if k == "WITHOUT" => { - if let Some(j) = next_token_index(tokens, i) { - match &tokens[j].kind { - TokenKind::KEYWORD(k) if matches!(k.as_str(), "TIME") => { - tokens[i].kind = TokenKind::KEYWORD("WITHOUT_LA".to_string()); - } - _ => {} - } - } - } - _ => (), - } +pub(crate) fn lookup_goto_state(state: u32, cid: u32) -> i16 { + let state = state as usize; + let cid = cid as usize; + + let i = GOTO_TABLE_INDEX[state] as usize; + if GOTO_CHECK_TABLE[i + cid] == cid as i16 { + GOTO_TABLE[i + cid] + } else { + INVALID_GOTO_CODE } } /// Parsing a string as PostgreSQL syntax and converting it into a ResolvedNode -pub fn parse(input: &str) -> Result { +pub fn parse(input: &str) -> Result { parse_with_transformer(input, &[]) } @@ -216,8 +169,8 @@ pub fn parse(input: &str) -> Result { pub fn parse_with_transformer( input: &str, transformers: &[&dyn ParseTransformer], -) -> Result { - let mut tokens = lex(input); +) -> Result { + let mut tokens = lex(input)?; if !tokens.is_empty() { init_tokens(&mut tokens); @@ -230,11 +183,6 @@ pub fn parse_with_transformer( end_byte_pos: input.len(), }); - let action_table_u8 = decompress_to_vec(ACTION_TABLE.as_ref()).unwrap(); - let goto_table_u8 = decompress_to_vec(GOTO_TABLE.as_ref()).unwrap(); - let action_table = unsafe { action_table_u8.align_to::().1 }; - let goto_table = unsafe { goto_table_u8.align_to::().1 }; - struct TokenQueue { tokens: std::iter::Peekable>, dummy_token: Option, @@ -250,8 +198,7 @@ pub fn parse_with_transformer( fn next(&mut self) -> Option { if self.dummy_token.is_some() { - let dummy_token = self.dummy_token.take(); - dummy_token + self.dummy_token.take() } else { self.tokens.next() } @@ -292,7 +239,7 @@ pub fn parse_with_transformer( let mut token = match tokens.peek() { Some(token) => token.clone(), None => { - return Err(ParseError { + return Err(ParserError::ParseError { message: "unexpected end of input".to_string(), start_byte_pos: input.len(), end_byte_pos: input.len(), @@ -326,7 +273,7 @@ pub fn parse_with_transformer( continue; } - let mut action = match action_table[(state * num_terminal_symbol() + cid) as usize] { + let mut action = match lookup_parser_action(state, cid) { 0x7FFF => Action::Error, v if v > 0 => Action::Shift((v - 1) as usize), v if v < 0 => Action::Reduce((-v - 1) as usize), @@ -338,8 +285,6 @@ pub fn parse_with_transformer( let lr_parse_state = LRParseState { state, stack: &stack, - action_table, - goto_table, extras: &extras, token: &token, }; @@ -360,8 +305,7 @@ pub fn parse_with_transformer( value: String::new(), }; - action = match action_table[(state * num_terminal_symbol() + cid) as usize] - { + action = match lookup_parser_action(state, cid) { 0x7FFF => Action::Error, v if v > 0 => Action::Shift((v - 1) as usize), v if v < 0 => Action::Reduce((-v - 1) as usize), @@ -459,15 +403,14 @@ pub fn parse_with_transformer( }; let next_state = stack.last().unwrap().0; - let goto = goto_table - [(next_state * num_non_terminal_symbol() + reduced_component_id) as usize]; + let goto = lookup_goto_state(next_state, reduced_component_id); match goto { next_state if next_state >= 0 => { stack.push((next_state as u32, node)); } _ => { - return Err(ParseError { + return Err(ParserError::ParseError { message: format!( "syntax error at byte position {}", token.start_byte_pos @@ -482,7 +425,7 @@ pub fn parse_with_transformer( break; } Action::Error => { - return Err(ParseError { + return Err(ParserError::ParseError { message: format!( "Action::Error: syntax error at byte position {}", token.start_byte_pos @@ -506,7 +449,7 @@ pub fn parse_with_transformer( last_pos = token.end_byte_pos; - // 最後のトークンは$endなので、ここで終了 + // The last token is $end, so exit the loop here if tokens.peek().is_none() { break; } diff --git a/crates/postgresql-cst-parser/src/cst/lr_parse_state.rs b/crates/postgresql-cst-parser/src/cst/lr_parse_state.rs index 54d4882..6cf9269 100644 --- a/crates/postgresql-cst-parser/src/cst/lr_parse_state.rs +++ b/crates/postgresql-cst-parser/src/cst/lr_parse_state.rs @@ -6,8 +6,6 @@ use super::{Extra, Node}; pub struct LRParseState<'a> { pub(crate) state: u32, pub(crate) stack: &'a [(u32, Node)], - pub(crate) action_table: &'a [i16], - pub(crate) goto_table: &'a [i16], pub(crate) extras: &'a [Extra<'a>], pub(crate) token: &'a Token, } @@ -15,21 +13,11 @@ pub struct LRParseState<'a> { impl<'a> LRParseState<'a> { // Determine whether the previous C comment and the token to be processed are adjacent pub fn adjacent_c_comment(&self) -> bool { - match self.extras.last() { - Some(e) - if e.end_byte_pos != self.token.start_byte_pos - && e.kind == SyntaxKind::C_COMMENT => - { - true - } - _ => false, - } + matches!(self.extras.last(), Some(e) if e.end_byte_pos != self.token.start_byte_pos && e.kind == SyntaxKind::C_COMMENT) } pub(crate) fn previous_extra(&self) -> Option<&Extra> { - let Some(last_extra) = self.extras.last() else { - return None; - }; + let last_extra = self.extras.last()?; let stack_end_byte_pos = self .stack diff --git a/crates/postgresql-cst-parser/src/lexer.rs b/crates/postgresql-cst-parser/src/lexer.rs index 9d004ed..d9f895d 100644 --- a/crates/postgresql-cst-parser/src/lexer.rs +++ b/crates/postgresql-cst-parser/src/lexer.rs @@ -1,13 +1,14 @@ +#[macro_use] mod generated; +pub mod lexer_ported; +pub mod parser_error; mod util; use std::collections::HashMap; -use regex::bytes::Regex; +use parser_error::{ParserError, ScanReport}; -use crate::lexer::generated::get_rules; - -use self::generated::{RuleKind, State}; +use self::generated::State; pub const NAMEDATALEN: usize = 64; @@ -34,22 +35,30 @@ pub struct Lexer { pub state_before_str_stop: State, pub yylloc_stack: Vec, pub dolqstart: String, + pub warn_on_first_escape: bool, + pub saw_non_ascii: bool, + pub utf16_first_part: u32, // states pub yylval: Yylval, pub yylloc_bytes: usize, + #[cfg(feature = "regex-match")] pub rules: Vec, pub keyword_map: HashMap<&'static str, &'static str>, + pub reports: Vec, } +#[cfg(feature = "regex-match")] pub struct Rule { pub state: State, - pub pattern: Regex, - pub kind: RuleKind, + pub pattern: regex::bytes::Regex, + pub eof: bool, + pub kind: self::generated::RuleKind, } #[allow(clippy::all)] +// #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, Deserialize)] #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)] pub enum TokenKind { RAW(String), @@ -80,7 +89,7 @@ impl TokenKind { #[allow(dead_code)] pub fn to_id(&self) -> String { match self { - TokenKind::RAW(s) => format!("'{}'", s), + TokenKind::RAW(s) => format!("'{s}'"), TokenKind::IDENT => "IDENT".to_string(), TokenKind::KEYWORD(s) => s.to_string(), TokenKind::C_COMMENT => "C_COMMENT".to_string(), @@ -132,11 +141,13 @@ where "PARAM" => TokenKind::PARAM, "FCONST" => TokenKind::FCONST, "ICONST" => TokenKind::ICONST, - _ => TokenKind::KEYWORD(s.as_ref().to_string()), // TODO check if keyword + s if s.starts_with('\'') => TokenKind::RAW(s.to_string()), // TODO is it necessary? + s => TokenKind::KEYWORD(s.to_string()), // TODO check if keyword } } } +// #[derive(Debug, Clone, Serialize, Deserialize)] #[derive(Debug, Clone)] pub struct Token { pub start_byte_pos: usize, @@ -145,13 +156,11 @@ pub struct Token { pub value: String, } -pub fn lex(input: &str) -> Vec { - let rules = get_rules(); - - let mut lexer = Lexer::new(input, rules); +pub fn lex(input: &str) -> Result, ParserError> { + let mut lexer = Lexer::new(input); let mut tokens = vec![]; - while let Some(kind) = lexer.parse_token() { + while let Some(kind) = lexer.parse_token()? { // dbg!(&kind); if kind == TokenKind::EOF { break; @@ -175,12 +184,11 @@ pub fn lex(input: &str) -> Vec { start_byte_pos, end_byte_pos, kind, - // value: lexer.yytext(), value: input[start_byte_pos..end_byte_pos].to_string(), }); lexer.advance(); } // dbg!(&tokens); - tokens + Ok(tokens) } diff --git a/crates/postgresql-cst-parser/src/lexer/generated.rs b/crates/postgresql-cst-parser/src/lexer/generated.rs index eae65c5..466c3d0 100644 --- a/crates/postgresql-cst-parser/src/lexer/generated.rs +++ b/crates/postgresql-cst-parser/src/lexer/generated.rs @@ -1,22 +1,3679 @@ #![allow(clippy::all)] #![allow(unreachable_code)] +/// This file contains ported sources from PostgreSQL use std::collections::HashMap; -// use regex::{Match, Regex}; -use regex::bytes::Regex; - use super::{ - util::{get_char_by_byte_pos, yyerror}, - {Lexer, Rule, TokenKind, Yylval, NAMEDATALEN}, + lexer_ported::{ + get_char_by_byte_pos, is_highbit_set, is_utf16_surrogate_first, is_utf16_surrogate_second, + surrogate_pair_to_codepoint, + }, + Lexer, ParserError, TokenKind, Yylval, NAMEDATALEN, }; +macro_rules! ereport { + ($lexer:expr, ERROR, (errcode($err_code:expr), errmsg($err_msg:expr), errdetail($err_detail:expr), $err_position:expr)) => { + return Err(ParserError::new_report( + $err_msg, + $err_detail, + $err_position, + )); + }; + ($lexer:expr, ERROR, (errcode($err_code:expr), errmsg($err_msg:expr), errhint($err_detail:expr), $err_position:expr)) => { + return Err(ParserError::new_report( + $err_msg, + $err_detail, + $err_position, + )); + }; + ($lexer:expr, WARNING, (errcode($err_code:expr), errmsg($err_msg:expr), errdetail($err_detail:expr), $err_position:expr)) => { + $lexer.add_warning(ScanReport::new($err_msg, $err_detail, $err_position)); + }; +} + +macro_rules! yyerror { + ($msg:expr) => { + return Err(ParserError::new_error($msg)) + }; +} + macro_rules! yyterminate { () => { - return None; + return Ok(None); }; } +#[cfg(not(feature = "regex-match"))] +pub mod dfa { + use super::State; + + // DFA transition table (state=INITIAL) + pub const TRANSITION_TABLE_0: [[u8; 256]; 116] = [ + [ + 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 3, 4, 5, 6, 7, 8, 6, 9, 10, 10, 8, 8, 10, 11, 12, 13, 14, 15, 15, 15, 15, 15, + 15, 15, 15, 15, 16, 10, 17, 18, 19, 6, 6, 20, 21, 20, 20, 22, 20, 20, 20, 20, 20, 20, + 20, 20, 23, 20, 20, 20, 20, 20, 20, 24, 20, 20, 25, 20, 20, 10, 2, 10, 8, 20, 6, 20, + 21, 20, 20, 22, 20, 20, 20, 20, 20, 20, 20, 20, 23, 20, 20, 20, 20, 20, 20, 24, 20, 20, + 25, 20, 20, 2, 6, 2, 6, 2, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 115, 115, 115, 115, 115, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 115, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 34, + 255, 34, 255, 34, 34, 255, 255, 255, 34, 34, 255, 34, 255, 34, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 34, 114, 34, 34, 34, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 34, + 255, 34, 255, 34, 34, 255, 255, 255, 34, 34, 255, 34, 255, 34, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 34, 34, 34, 34, 34, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 110, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 255, 255, 255, 255, 255, 255, 255, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 255, 255, 255, 255, 112, 255, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 255, 255, 255, 255, 255, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 34, + 255, 34, 255, 34, 34, 255, 255, 255, 34, 34, 255, 34, 255, 34, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 34, 34, 34, 34, 34, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 34, + 255, 34, 255, 34, 34, 255, 255, 255, 34, 34, 255, 107, 255, 34, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 34, 34, 34, 34, 34, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 101, 255, 102, 102, 102, + 102, 102, 102, 102, 102, 102, 102, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 34, + 255, 34, 255, 34, 34, 255, 255, 255, 99, 34, 255, 34, 255, 34, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 34, 34, 34, 34, 34, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 41, 255, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 255, 255, 255, 255, 255, 255, 255, 43, 87, 43, 43, 44, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 88, 43, 43, 43, 43, 43, 43, 43, 43, 89, 43, 43, 255, 255, + 255, 255, 45, 255, 43, 87, 43, 43, 44, 43, 43, 43, 43, 43, 43, 43, 43, 43, 88, 43, 43, + 43, 43, 43, 43, 43, 43, 89, 43, 43, 255, 255, 255, 255, 255, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 41, 255, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 255, 255, 255, 255, 255, 255, 255, 43, 43, 43, 43, 44, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 255, 255, + 255, 255, 45, 255, 43, 43, 43, 43, 44, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 255, 255, 255, 255, 255, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 39, 255, 255, 40, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 34, + 255, 34, 255, 34, 34, 255, 255, 255, 34, 34, 255, 34, 255, 34, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 34, 37, 38, 34, 34, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 34, + 255, 34, 255, 34, 34, 255, 255, 255, 34, 34, 255, 34, 255, 34, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 34, 34, 36, 34, 34, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 34, + 255, 34, 255, 34, 34, 255, 255, 255, 34, 34, 255, 34, 255, 34, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 34, 35, 34, 34, 34, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 26, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 255, 255, 255, 255, 255, 255, 255, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 255, 255, + 255, 255, 26, 255, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 255, 255, 255, 255, 255, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 26, 255, 255, 33, 255, 255, 255, 255, 255, 255, 255, 255, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 255, 255, 255, 255, 255, 255, 255, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 255, 255, 255, + 255, 26, 255, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 255, 255, 255, 255, 255, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 26, 255, 255, 32, 255, 255, 255, 255, 255, 255, 255, 255, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 255, 255, 255, 255, 255, 255, 255, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 255, 255, 255, + 255, 26, 255, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 255, 255, 255, 255, 255, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 26, 255, 255, 31, 255, 255, 255, 255, 255, 255, 255, 255, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 255, 255, 255, 255, 255, 255, 255, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 255, 255, 255, + 255, 26, 255, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 255, 255, 255, 255, 255, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 26, 255, 28, 255, 255, 255, 255, 255, 255, 255, 255, 255, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 255, 255, 255, 255, 255, 255, 255, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 255, 255, 255, + 255, 26, 255, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 255, 255, 255, 255, 255, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 26, 255, 255, 27, 255, 255, 255, 255, 255, 255, 255, 255, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 255, 255, 255, 255, 255, 255, 255, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 255, 255, 255, + 255, 26, 255, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 255, 255, 255, 255, 255, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 26, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 255, 255, 255, 255, 255, 255, 255, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 255, 255, + 255, 255, 26, 255, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 255, 255, 255, 255, 255, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 29, 255, 255, 255, 255, 30, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 34, + 255, 34, 255, 34, 34, 255, 255, 255, 34, 34, 255, 34, 255, 34, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 34, 34, 34, 34, 34, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 34, + 255, 34, 255, 34, 34, 255, 255, 255, 34, 34, 255, 34, 255, 34, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 34, 34, 34, 34, 34, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 34, + 255, 34, 255, 34, 34, 255, 255, 255, 34, 34, 255, 34, 255, 34, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 34, 34, 34, 34, 34, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 34, + 255, 34, 255, 34, 34, 255, 255, 255, 34, 34, 255, 34, 255, 34, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 34, 34, 34, 34, 34, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 34, + 255, 34, 255, 34, 34, 255, 255, 255, 34, 34, 255, 34, 255, 34, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 34, 34, 34, 34, 34, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 68, 255, 69, 69, 69, 69, + 69, 69, 69, 69, 69, 69, 255, 255, 255, 255, 255, 255, 255, 70, 70, 70, 70, 71, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 255, 255, + 255, 255, 70, 255, 70, 70, 70, 70, 71, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 255, 255, 255, 255, 255, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 41, 255, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 255, 255, 255, 255, 255, 255, 255, 43, 43, 43, 43, 44, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 255, 255, + 255, 255, 45, 255, 43, 43, 43, 43, 44, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 255, 255, 255, 255, 255, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 46, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, + 255, 255, 46, 255, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 46, 255, 255, 255, 255, 255, 255, 51, 255, 51, 255, 255, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 255, 255, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, 255, + 255, 46, 255, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 46, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 47, 47, 47, 47, + 47, 47, 47, 47, 47, 47, 255, 255, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, + 255, 255, 46, 255, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 46, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, + 255, 255, 46, 255, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 46, 255, 255, 255, 255, 255, 255, 255, 255, 255, 41, 255, 47, 47, 47, 47, 47, + 47, 47, 47, 47, 47, 255, 255, 255, 255, 255, 255, 255, 48, 48, 48, 48, 49, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 255, 255, 255, + 255, 50, 255, 48, 48, 48, 48, 49, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 255, 255, 255, 255, 255, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 46, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, + 255, 255, 46, 255, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 46, 255, 255, 255, 255, 255, 255, 51, 255, 51, 255, 255, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 255, 255, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, 255, + 255, 46, 255, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 46, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 47, 47, 47, 47, + 47, 47, 47, 47, 47, 47, 255, 255, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, + 255, 255, 46, 255, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 60, 60, 60, 60, + 60, 60, 60, 60, 60, 60, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 46, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 53, 53, 53, 53, + 53, 53, 53, 53, 53, 53, 255, 255, 255, 255, 255, 255, 255, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 255, 255, + 255, 255, 55, 255, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 255, 255, 255, 255, 255, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 46, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 53, 53, 53, 53, + 53, 53, 53, 53, 53, 53, 255, 255, 255, 255, 255, 255, 255, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 255, 255, + 255, 255, 55, 255, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 255, 255, 255, 255, 255, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 56, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 255, 255, 255, 255, 255, 255, 255, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 255, 255, + 255, 255, 56, 255, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 255, 255, 255, 255, 255, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 56, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 255, 255, 255, 255, 255, 255, 255, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 255, 255, + 255, 255, 56, 255, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 255, 255, 255, 255, 255, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 56, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 255, 255, 255, 255, 255, 255, 255, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 255, 255, + 255, 255, 56, 255, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 255, 255, 255, 255, 255, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 56, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 255, 255, 255, 255, 255, 255, 255, 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, 255, 255, + 255, 255, 59, 255, 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, 255, 255, 255, 255, 255, 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, 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, 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, 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, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, + 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 56, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 255, 255, 255, 255, 255, 255, 255, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 255, 255, + 255, 255, 56, 255, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 255, 255, 255, 255, 255, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 56, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 255, 255, 255, 255, 255, 255, 255, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 255, 255, + 255, 255, 56, 255, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 255, 255, 255, 255, 255, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 255, 255, 255, 255, 255, 255, 255, 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, 255, 255, + 255, 255, 63, 255, 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, 255, 255, 255, 255, 255, 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, 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, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 255, 255, 255, 255, 255, 255, 255, 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, 255, 255, + 255, 255, 63, 255, 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, 255, 255, 255, 255, 255, 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, 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, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 64, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 255, 255, 255, 255, 255, 255, 255, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 255, 255, + 255, 255, 64, 255, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 255, 255, 255, 255, 255, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 64, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 255, 255, 255, 255, 255, 255, 255, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 255, 255, + 255, 255, 64, 255, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 255, 255, 255, 255, 255, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 64, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 255, 255, 255, 255, 255, 255, 255, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 255, 255, + 255, 255, 64, 255, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 255, 255, 255, 255, 255, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 64, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 255, 255, 255, 255, 255, 255, 255, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 255, 255, + 255, 255, 67, 255, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 255, 255, 255, 255, 255, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 64, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 255, 255, 255, 255, 255, 255, 255, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 255, 255, + 255, 255, 64, 255, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 255, 255, 255, 255, 255, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 64, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 255, 255, 255, 255, 255, 255, 255, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 255, 255, + 255, 255, 64, 255, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 255, 255, 255, 255, 255, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 81, 81, 81, 81, + 81, 81, 81, 81, 81, 81, 255, 255, 255, 255, 255, 255, 255, 70, 70, 70, 70, 71, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 255, 255, + 255, 255, 82, 255, 70, 70, 70, 70, 71, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 255, 255, 255, 255, 255, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 72, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 255, 255, 255, 255, 255, 255, 255, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 255, 255, + 255, 255, 72, 255, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 255, 255, 255, 255, 255, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 72, 255, 255, 255, 255, 255, 255, 51, 255, 51, 255, 255, 73, 73, 73, 73, 73, + 73, 73, 73, 73, 73, 255, 255, 255, 255, 255, 255, 255, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 255, 255, 255, + 255, 72, 255, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 255, 255, 255, 255, 255, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 72, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 255, 255, 255, 255, 255, 255, 255, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 255, 255, + 255, 255, 72, 255, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 255, 255, 255, 255, 255, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 72, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 255, 255, 255, 255, 255, 255, 255, 75, 75, 75, 75, 75, 75, 75, + 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 255, 255, + 255, 255, 76, 255, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, + 75, 75, 75, 75, 75, 75, 75, 75, 75, 255, 255, 255, 255, 255, 75, 75, 75, 75, 75, 75, + 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, + 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, + 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, + 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, + 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, + 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 72, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 255, 255, 255, 255, 255, 255, 255, 75, 75, 75, 75, 75, 75, 75, + 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 255, 255, + 255, 255, 76, 255, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, + 75, 75, 75, 75, 75, 75, 75, 75, 75, 255, 255, 255, 255, 255, 75, 75, 75, 75, 75, 75, + 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, + 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, + 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, + 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, + 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, + 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 77, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 255, 255, 255, 255, 255, 255, 255, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 255, 255, + 255, 255, 77, 255, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 255, 255, 255, 255, 255, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 77, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 255, 255, 255, 255, 255, 255, 255, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 255, 255, + 255, 255, 77, 255, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 255, 255, 255, 255, 255, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 77, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 255, 255, 255, 255, 255, 255, 255, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 255, 255, + 255, 255, 77, 255, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 255, 255, 255, 255, 255, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 77, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 255, 255, 255, 255, 255, 255, 255, 79, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 255, 255, + 255, 255, 80, 255, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 255, 255, 255, 255, 255, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 77, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 255, 255, 255, 255, 255, 255, 255, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 255, 255, + 255, 255, 77, 255, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 255, 255, 255, 255, 255, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 77, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 255, 255, 255, 255, 255, 255, 255, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 255, 255, + 255, 255, 77, 255, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 255, 255, 255, 255, 255, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 81, 81, 81, 81, + 81, 81, 81, 81, 81, 81, 255, 255, 255, 255, 255, 255, 255, 70, 70, 70, 70, 71, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 255, 255, + 255, 255, 82, 255, 70, 70, 70, 70, 71, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 255, 255, 255, 255, 255, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 72, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 83, 83, 83, 83, + 83, 83, 83, 83, 83, 83, 255, 255, 255, 255, 255, 255, 255, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 255, 255, + 255, 255, 72, 255, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 255, 255, 255, 255, 255, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 72, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 83, 83, 83, 83, + 83, 83, 83, 83, 83, 83, 255, 255, 255, 255, 255, 255, 255, 84, 84, 84, 84, 85, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 255, 255, + 255, 255, 86, 255, 84, 84, 84, 84, 85, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 255, 255, 255, 255, 255, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 72, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 255, 255, 255, 255, 255, 255, 255, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 255, 255, + 255, 255, 72, 255, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 255, 255, 255, 255, 255, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 72, 255, 255, 255, 255, 255, 255, 51, 255, 51, 255, 255, 73, 73, 73, 73, 73, + 73, 73, 73, 73, 73, 255, 255, 255, 255, 255, 255, 255, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 255, 255, 255, + 255, 72, 255, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 255, 255, 255, 255, 255, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 72, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 83, 83, 83, 83, + 83, 83, 83, 83, 83, 83, 255, 255, 255, 255, 255, 255, 255, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 255, 255, + 255, 255, 72, 255, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 255, 255, 255, 255, 255, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 46, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 96, 96, 46, 46, + 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, + 255, 255, 97, 255, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 46, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 93, 93, 93, 93, + 93, 93, 93, 93, 46, 46, 255, 255, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, + 255, 255, 94, 255, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 46, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 90, 90, 90, 90, + 90, 90, 90, 90, 90, 90, 255, 255, 255, 255, 255, 255, 255, 90, 90, 90, 90, 90, 90, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, + 255, 255, 91, 255, 90, 90, 90, 90, 90, 90, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 46, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 90, 90, 90, 90, + 90, 90, 90, 90, 90, 90, 255, 255, 255, 255, 255, 255, 255, 90, 90, 90, 90, 90, 90, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, + 255, 255, 92, 255, 90, 90, 90, 90, 90, 90, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 46, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 90, 90, 90, 90, + 90, 90, 90, 90, 90, 90, 255, 255, 255, 255, 255, 255, 255, 90, 90, 90, 90, 90, 90, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, + 255, 255, 46, 255, 90, 90, 90, 90, 90, 90, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 46, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 90, 90, 90, 90, + 90, 90, 90, 90, 90, 90, 255, 255, 255, 255, 255, 255, 255, 90, 90, 90, 90, 90, 90, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, + 255, 255, 46, 255, 90, 90, 90, 90, 90, 90, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 46, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 93, 93, 93, 93, + 93, 93, 93, 93, 46, 46, 255, 255, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, + 255, 255, 95, 255, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 46, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 93, 93, 93, 93, + 93, 93, 93, 93, 46, 46, 255, 255, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, + 255, 255, 46, 255, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 46, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 93, 93, 93, 93, + 93, 93, 93, 93, 46, 46, 255, 255, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, + 255, 255, 46, 255, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 46, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 96, 96, 46, 46, + 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, + 255, 255, 98, 255, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 46, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 96, 96, 46, 46, + 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, + 255, 255, 46, 255, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 46, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 96, 96, 46, 46, + 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, + 255, 255, 46, 255, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 255, 255, 255, 255, 255, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 100, + 255, 100, 255, 100, 100, 255, 255, 255, 100, 100, 255, 100, 255, 100, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 100, 100, 100, 100, 100, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 100, 255, 100, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 100, 255, 100, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 100, + 255, 100, 255, 100, 100, 255, 255, 255, 100, 100, 255, 100, 255, 100, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 100, 100, 100, 100, 100, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 100, 255, 100, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 100, 255, 100, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 103, 103, 103, + 103, 103, 103, 103, 103, 103, 103, 255, 255, 255, 255, 255, 255, 255, 70, 70, 70, 70, + 71, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 255, 255, 255, 255, 104, 255, 70, 70, 70, 70, 71, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 255, 255, 255, 255, 255, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 103, 103, 103, + 103, 103, 103, 103, 103, 103, 103, 255, 255, 255, 255, 255, 255, 255, 70, 70, 70, 70, + 71, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 255, 255, 255, 255, 104, 255, 70, 70, 70, 70, 71, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 255, 255, 255, 255, 255, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 72, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 105, 105, 105, + 105, 105, 105, 105, 105, 105, 105, 255, 255, 255, 255, 255, 255, 255, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 255, 255, 255, 255, 72, 255, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 255, 255, 255, 255, 255, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 72, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 105, 105, 105, + 105, 105, 105, 105, 105, 105, 105, 255, 255, 255, 255, 255, 255, 255, 84, 84, 84, 84, + 85, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 255, 255, 255, 255, 106, 255, 84, 84, 84, 84, 85, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 255, 255, 255, 255, 255, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 72, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 105, 105, 105, + 105, 105, 105, 105, 105, 105, 105, 255, 255, 255, 255, 255, 255, 255, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 255, 255, 255, 255, 72, 255, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 255, 255, 255, 255, 255, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + ], + [ + 255, 108, 108, 108, 108, 108, 108, 108, 108, 108, 255, 108, 108, 255, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 109, + 108, 109, 108, 109, 109, 108, 108, 108, 109, 109, 108, 109, 108, 109, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 109, 109, 109, 109, 109, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 109, 108, 109, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 109, 108, 109, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, + ], + [ + 255, 108, 108, 108, 108, 108, 108, 108, 108, 108, 255, 108, 108, 255, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, + ], + [ + 255, 108, 108, 108, 108, 108, 108, 108, 108, 108, 255, 108, 108, 255, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 109, + 108, 109, 108, 109, 109, 108, 108, 108, 109, 109, 108, 109, 108, 109, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 109, 109, 109, 109, 109, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 109, 108, 109, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 109, 108, 109, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 110, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 255, 255, 255, 255, 255, 255, 255, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 255, 255, 255, 255, 113, 255, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 255, 255, 255, 255, 255, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 110, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 255, 255, 255, 255, 255, 255, 255, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 255, 255, 255, 255, 113, 255, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 255, 255, 255, 255, 255, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 34, + 255, 34, 255, 34, 34, 255, 255, 255, 34, 34, 255, 34, 255, 34, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 34, 34, 34, 34, 34, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 34, 255, 34, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 115, 115, 115, 115, 115, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 115, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + ]; + + // DFA accept table (state=INITIAL) + pub const ACCEPT_TABLE_0: [u8; 116] = [ + 255, 80, 79, 0, 62, 45, 62, 79, 61, 16, 61, 61, 61, 61, 64, 64, 61, 61, 61, 61, 78, 78, 78, + 78, 78, 78, 78, 13, 52, 46, 18, 15, 17, 9, 62, 58, 56, 57, 59, 53, 55, 71, 64, 75, 75, 75, + 75, 64, 75, 75, 75, 74, 73, 73, 75, 75, 75, 73, 75, 75, 73, 73, 77, 77, 77, 73, 77, 77, 72, + 71, 76, 76, 76, 73, 73, 76, 76, 76, 73, 76, 76, 71, 76, 71, 76, 76, 76, 70, 69, 68, 65, 68, + 75, 66, 69, 75, 67, 70, 75, 2, 2, 54, 71, 71, 76, 71, 76, 1, 1, 1, 38, 63, 39, 39, 60, 0, + ]; + + // DFA transition table (state=xb) + pub const TRANSITION_TABLE_1: [[u8; 256]; 4] = [ + [ + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 255, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + ]; + + // DFA accept table (state=xb) + pub const ACCEPT_TABLE_1: [u8; 4] = [11, 12, 11, 19]; + + // DFA transition table (state=xc) + pub const TRANSITION_TABLE_2: [[u8; 256]; 10] = [ + [ + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 3, 2, 3, 2, 3, 3, 2, 2, 2, 4, 3, 2, 3, 2, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 3, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 255, 2, 2, 2, 2, 255, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, + ], + [ + 255, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 255, 2, 2, 2, 2, 255, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 8, 255, 255, 255, 255, 9, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 6, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 7, 255, + 7, 255, 7, 7, 255, 255, 255, 7, 7, 255, 7, 255, 7, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 7, 7, 7, 7, 7, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 7, 255, 7, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 7, 255, 7, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 7, 255, + 7, 255, 7, 7, 255, 255, 255, 7, 7, 255, 7, 255, 7, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 7, 7, 7, 7, 7, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 7, 255, 7, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 7, 255, 7, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 8, 255, 255, 255, 255, 9, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + ]; + + // DFA accept table (state=xc) + pub const ACCEPT_TABLE_2: [u8; 10] = [255, 8, 5, 5, 6, 6, 3, 3, 7, 4]; + + // DFA transition table (state=xd) + pub const TRANSITION_TABLE_3: [[u8; 256]; 5] = [ + [ + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 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, 255, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 4, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + ]; + + // DFA accept table (state=xd) + pub const ACCEPT_TABLE_3: [u8; 5] = [255, 51, 50, 47, 49]; + + // DFA transition table (state=xh) + pub const TRANSITION_TABLE_4: [[u8; 256]; 4] = [ + [ + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 255, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + ]; + + // DFA accept table (state=xh) + pub const ACCEPT_TABLE_4: [u8; 4] = [10, 14, 10, 19]; + + // DFA transition table (state=xq) + pub const TRANSITION_TABLE_5: [[u8; 256]; 5] = [ + [ + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 255, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 4, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + ]; + + // DFA accept table (state=xq) + pub const ACCEPT_TABLE_5: [u8; 5] = [255, 37, 25, 19, 24]; + + // DFA transition table (state=xqs) + pub const TRANSITION_TABLE_6: [[u8; 256]; 11] = [ + [ + 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 4, 3, 3, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 9, 10, 9, 9, 10, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 9, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 8, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 6, 6, 6, 6, 6, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 6, 255, 255, 255, 255, + 255, 255, 7, 255, 255, 255, 255, 255, 8, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 6, 6, 6, 6, 6, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 6, 255, 255, 255, 255, + 255, 255, 7, 255, 255, 255, 255, 255, 8, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 9, 10, 9, 9, 10, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 9, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 8, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 6, 6, 6, 6, 6, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 6, 255, 255, 255, 255, + 255, 255, 7, 255, 255, 255, 255, 255, 8, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + ]; + + // DFA accept table (state=xqs) + pub const ACCEPT_TABLE_6: [u8; 11] = [21, 23, 22, 21, 21, 21, 21, 20, 21, 21, 21]; + + // DFA transition table (state=xe) + pub const TRANSITION_TABLE_7: [[u8; 256]; 28] = [ + [ + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 255, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 255, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 26, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 7, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 8, 5, 5, 9, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 24, 24, 24, 24, + 24, 24, 24, 24, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 255, 255, 255, 255, 255, 255, 255, 16, 16, 16, 16, 16, 16, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 16, 16, 16, 16, 16, 16, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 12, 12, 12, 12, + 12, 12, 12, 12, 12, 12, 255, 255, 255, 255, 255, 255, 255, 12, 12, 12, 12, 12, 12, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 12, 12, 12, 12, 12, 12, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 255, 255, 255, 255, 255, 255, 255, 10, 10, 10, 10, 10, 10, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 10, 10, 10, 10, 10, 10, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 11, 11, 11, 11, + 11, 11, 11, 11, 11, 11, 255, 255, 255, 255, 255, 255, 255, 11, 11, 11, 11, 11, 11, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 11, 11, 11, 11, 11, 11, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 255, 255, 255, 255, 255, 255, 255, 13, 13, 13, 13, 13, 13, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 13, 13, 13, 13, 13, 13, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 255, 255, 255, 255, 255, 255, 255, 14, 14, 14, 14, 14, 14, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 14, 14, 14, 14, 14, 14, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 15, 15, 15, 15, + 15, 15, 15, 15, 15, 15, 255, 255, 255, 255, 255, 255, 255, 15, 15, 15, 15, 15, 15, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 15, 15, 15, 15, 15, 15, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 17, 17, 17, 17, + 17, 17, 17, 17, 17, 17, 255, 255, 255, 255, 255, 255, 255, 17, 17, 17, 17, 17, 17, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 17, 17, 17, 17, 17, 17, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 255, 255, 255, 255, 255, 255, 255, 18, 18, 18, 18, 18, 18, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 18, 18, 18, 18, 18, 18, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 255, 255, 255, 255, 255, 255, 255, 19, 19, 19, 19, 19, 19, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 19, 19, 19, 19, 19, 19, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 255, 255, 255, 255, 255, 255, 255, 20, 20, 20, 20, 20, 20, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 20, 20, 20, 20, 20, 20, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 21, 21, 21, 21, + 21, 21, 21, 21, 21, 21, 255, 255, 255, 255, 255, 255, 255, 21, 21, 21, 21, 21, 21, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 21, 21, 21, 21, 21, 21, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 22, 22, 22, 22, + 22, 22, 22, 22, 22, 22, 255, 255, 255, 255, 255, 255, 255, 22, 22, 22, 22, 22, 22, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 22, 22, 22, 22, 22, 22, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 23, 23, 23, 23, + 23, 23, 23, 23, 23, 23, 255, 255, 255, 255, 255, 255, 255, 23, 23, 23, 23, 23, 23, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 23, 23, 23, 23, 23, 23, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 25, 25, 25, 25, + 25, 25, 25, 25, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 255, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 255, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + ], + ]; + + // DFA accept table (state=xe) + pub const ACCEPT_TABLE_7: [u8; 28] = [ + 255, 37, 26, 19, 36, 33, 34, 32, 32, 33, 35, 35, 32, 32, 32, 27, 32, 32, 32, 32, 32, 32, + 32, 27, 34, 34, 24, 26, + ]; + + // DFA transition table (state=xdolq) + pub const TRANSITION_TABLE_8: [[u8; 256]; 8] = [ + [ + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 255, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 4, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 255, 255, 255, 255, 5, 255, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 255, 255, + 255, 255, 255, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 4, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 255, 255, 255, 255, 255, 255, 255, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 255, 255, 255, 255, 6, 255, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 255, 255, 255, 255, 255, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 4, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 255, 255, 255, 255, 255, 255, 255, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 255, 255, 255, 255, 6, 255, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 255, 255, 255, 255, 255, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + ], + [ + 255, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 255, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + ], + ]; + + // DFA accept table (state=xdolq) + pub const ACCEPT_TABLE_8: [u8; 8] = [255, 44, 41, 43, 40, 42, 42, 41]; + + // DFA transition table (state=xui) + pub const TRANSITION_TABLE_9: [[u8; 256]; 5] = [ + [ + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 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, 255, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 4, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + ]; + + // DFA accept table (state=xui) + pub const ACCEPT_TABLE_9: [u8; 5] = [255, 51, 50, 48, 49]; + + // DFA transition table (state=xus) + pub const TRANSITION_TABLE_10: [[u8; 256]; 5] = [ + [ + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 255, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 4, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + ]; + + // DFA accept table (state=xus) + pub const ACCEPT_TABLE_10: [u8; 5] = [255, 37, 25, 19, 24]; + + // DFA transition table (state=xeu) + pub const TRANSITION_TABLE_11: [[u8; 256]; 19] = [ + [ + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 5, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 6, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 11, 11, 11, 11, + 11, 11, 11, 11, 11, 11, 255, 255, 255, 255, 255, 255, 255, 11, 11, 11, 11, 11, 11, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 11, 11, 11, 11, 11, 11, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 255, 255, 255, 255, 255, 255, 255, 7, 7, 7, 7, 7, 7, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 7, 7, 7, 7, 7, 7, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 255, 255, 255, 255, 255, 255, 255, 8, 8, 8, 8, 8, 8, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 8, 8, 8, 8, 8, 8, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 255, 255, 255, 255, 255, 255, 255, 9, 9, 9, 9, 9, 9, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 9, 9, 9, 9, 9, 9, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 255, 255, 255, 255, 255, 255, 255, 10, 10, 10, 10, 10, 10, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 10, 10, 10, 10, 10, 10, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 12, 12, 12, 12, + 12, 12, 12, 12, 12, 12, 255, 255, 255, 255, 255, 255, 255, 12, 12, 12, 12, 12, 12, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 12, 12, 12, 12, 12, 12, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 255, 255, 255, 255, 255, 255, 255, 13, 13, 13, 13, 13, 13, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 13, 13, 13, 13, 13, 13, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 255, 255, 255, 255, 255, 255, 255, 14, 14, 14, 14, 14, 14, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 14, 14, 14, 14, 14, 14, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 15, 15, 15, 15, + 15, 15, 15, 15, 15, 15, 255, 255, 255, 255, 255, 255, 255, 15, 15, 15, 15, 15, 15, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 15, 15, 15, 15, 15, 15, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 255, 255, 255, 255, 255, 255, 255, 16, 16, 16, 16, 16, 16, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 16, 16, 16, 16, 16, 16, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 17, 17, 17, 17, + 17, 17, 17, 17, 17, 17, 255, 255, 255, 255, 255, 255, 255, 17, 17, 17, 17, 17, 17, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 17, 17, 17, 17, 17, 17, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 255, 255, 255, 255, 255, 255, 255, 18, 18, 18, 18, 18, 18, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 18, 18, 18, 18, 18, 18, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + ], + [ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, + ], + ]; + + // DFA accept table (state=xeu) + pub const ACCEPT_TABLE_11: [u8; 19] = [ + 255, 31, 29, 29, 29, 32, 32, 32, 32, 32, 28, 32, 32, 32, 32, 32, 32, 32, 28, + ]; + + pub fn get_dfa_table(state: State) -> (&'static [[u8; 256]], &'static [u8]) { + let state_id = state as u8; + + match state_id { + 0 => (TRANSITION_TABLE_0.as_slice(), ACCEPT_TABLE_0.as_slice()), + 1 => (TRANSITION_TABLE_1.as_slice(), ACCEPT_TABLE_1.as_slice()), + 2 => (TRANSITION_TABLE_2.as_slice(), ACCEPT_TABLE_2.as_slice()), + 3 => (TRANSITION_TABLE_3.as_slice(), ACCEPT_TABLE_3.as_slice()), + 4 => (TRANSITION_TABLE_4.as_slice(), ACCEPT_TABLE_4.as_slice()), + 5 => (TRANSITION_TABLE_5.as_slice(), ACCEPT_TABLE_5.as_slice()), + 6 => (TRANSITION_TABLE_6.as_slice(), ACCEPT_TABLE_6.as_slice()), + 7 => (TRANSITION_TABLE_7.as_slice(), ACCEPT_TABLE_7.as_slice()), + 8 => (TRANSITION_TABLE_8.as_slice(), ACCEPT_TABLE_8.as_slice()), + 9 => (TRANSITION_TABLE_9.as_slice(), ACCEPT_TABLE_9.as_slice()), + 10 => (TRANSITION_TABLE_10.as_slice(), ACCEPT_TABLE_10.as_slice()), + 11 => (TRANSITION_TABLE_11.as_slice(), ACCEPT_TABLE_11.as_slice()), + _ => unreachable!(), + } + } +} + +#[cfg(feature = "regex-match")] #[derive(Debug, PartialEq, Eq, Clone, Copy)] pub enum RuleKind { INITIAL1, @@ -113,9 +3770,6 @@ pub enum RuleKind { INITIAL40, INITIAL41, INITIAL42, - INITIAL43, - INITIAL44, - INITIAL45, } #[derive(Debug, PartialEq, Eq, Clone, Copy)] @@ -134,12 +3788,1358 @@ pub enum State { xeu, } -impl Lexer { - pub fn parse_token(&mut self) -> Option { +const STANDARD_CONFORMING_STRINGS: bool = true; + +impl Lexer { + #[cfg(not(feature = "regex-match"))] + pub fn parse_token(&mut self) -> Result, ParserError> { + loop { + let (match_len, pattern_index) = self.find_match_len(); + + self.yyleng = match_len; + let yytext = self.yytext(); + + match pattern_index { + 0 => { + { /* ignore */ } + } + 1 => { + { + // SET_YYLLOC(); + // return SQL_COMMENT; + + self.set_yylloc(); + return Ok(Some(TokenKind::SQL_COMMENT)); + } + } + 2 => { + { + // /* Set location in case of syntax error in comment */ + // SET_YYLLOC(); + // yyextra->xcdepth = 0; + // BEGIN(xc); + // /* Put back any characters past slash-star; see above */ + // yyless(2); + + /* Set location in case of syntax error in comment */ + self.set_yylloc(); + self.xcdepth = 0; + self.begin(State::xc); + /* Put back any characters past slash-star; see above */ + self.yyless(2); + } + } + 3 => { + { + // (yyextra->xcdepth)++; + // /* Put back any characters past slash-star; see above */ + // yyless(2); + + self.xcdepth += 1; + /* Put back any characters past slash-star; see above */ + self.yyless(2); + } + } + 4 => { + { + // if (yyextra->xcdepth <= 0) + // { + // BEGIN(INITIAL); + // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; + // return C_COMMENT; + // } + // else + // (yyextra->xcdepth)--; + + if self.xcdepth <= 0 { + self.begin(State::INITIAL); + self.set_yyllocend(); + return Ok(Some(TokenKind::C_COMMENT)); + } else { + self.xcdepth -= 1; + } + } + } + 5 => { + { /* ignore */ } + } + 6 => { + { /* ignore */ } + } + 7 => { + { /* ignore */ } + } + 8 => { + yyerror!("unterminated /* comment"); + } + 9 => { + { + // /* Binary bit type. + // * At some point we should simply pass the string + // * forward to the parser and label it there. + // * In the meantime, place a leading "b" on the string + // * to mark it for the input routine as a binary string. + // */ + // SET_YYLLOC(); + // BEGIN(xb); + // startlit(); + // addlitchar('b', yyscanner); + + /* Binary bit type. + * At some point we should simply pass the string + * forward to the parser and label it there. + * In the meantime, place a leading "b" on the string + * to mark it for the input routine as a binary string. + */ + self.set_yylloc(); + self.begin(State::xb); + self.literal.clear(); + self.addlitchar('b'); + } + } + 10 | 11 => { + { + // addlit(yytext, yyleng, yyscanner); + + self.addlit(self.yyleng); + } + } + 12 => { + yyerror!("unterminated bit string literal"); + } + 13 => { + { + // /* Hexadecimal bit type. + // * At some point we should simply pass the string + // * forward to the parser and label it there. + // * In the meantime, place a leading "x" on the string + // * to mark it for the input routine as a hex string. + // */ + // SET_YYLLOC(); + // BEGIN(xh); + // startlit(); + // addlitchar('x', yyscanner); + + /* Hexadecimal bit type. + * At some point we should simply pass the string + * forward to the parser and label it there. + * In the meantime, place a leading "x" on the string + * to mark it for the input routine as a hex string. + */ + self.set_yylloc(); + self.begin(State::xh); + self.literal.clear(); + self.addlitchar('x'); + } + } + 14 => { + yyerror!("unterminated hexadecimal string literal"); + } + 15 => { + { + // /* National character. + // * We will pass this along as a normal character string, + // * but preceded with an internally-generated "NCHAR". + // */ + // int kwnum; + // + // SET_YYLLOC(); + // yyless(1); /* eat only 'n' this time */ + // + // kwnum = ScanKeywordLookup("nchar", + // yyextra->keywordlist); + // if (kwnum >= 0) + // { + // yylval->keyword = GetScanKeyword(kwnum, + // yyextra->keywordlist); + // return yyextra->keyword_tokens[kwnum]; + // } + // else + // { + // /* If NCHAR isn't a keyword, just return "n" */ + // yylval->str = pstrdup("n"); + // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; + // return IDENT; + // } + + self.set_yylloc(); + self.yyless(1); /* eat only 'n' this time */ + + if let Some((kw, kw_token)) = self.get_keyword("nchar") { + self.yylval = Yylval::Keyword(kw); + return Ok(Some(TokenKind::KEYWORD(kw_token))); + } else { + /* If NCHAR isn't a keyword, just return "n" */ + self.yylval = Yylval::Str("n".to_string()); + self.set_yyllocend(); + return Ok(Some(TokenKind::IDENT)); + } + } + } + 16 => { + { + // yyextra->warn_on_first_escape = true; + // yyextra->saw_non_ascii = false; + // SET_YYLLOC(); + // if (yyextra->standard_conforming_strings) + // BEGIN(xq); + // else + // BEGIN(xe); + // startlit(); + + self.warn_on_first_escape = true; + self.saw_non_ascii = false; + self.set_yylloc(); + if STANDARD_CONFORMING_STRINGS { + self.begin(State::xq); + } else { + self.begin(State::xe); + } + self.literal.clear(); + } + } + 17 => { + { + // yyextra->warn_on_first_escape = false; + // yyextra->saw_non_ascii = false; + // SET_YYLLOC(); + // BEGIN(xe); + // startlit(); + + self.warn_on_first_escape = false; + self.saw_non_ascii = false; + self.set_yylloc(); + self.begin(State::xe); + self.literal.clear(); + } + } + 18 => { + { + // SET_YYLLOC(); + // if (!yyextra->standard_conforming_strings) + // ereport(ERROR, + // (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + // errmsg("unsafe use of string constant with Unicode escapes"), + // errdetail("String constants with Unicode escapes cannot be used when \"standard_conforming_strings\" is off."), + // lexer_errposition())); + // BEGIN(xus); + // startlit(); + + self.set_yylloc(); + if !STANDARD_CONFORMING_STRINGS { + ereport!(self, ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("unsafe use of string constant with Unicode escapes"), + errdetail("String constants with Unicode escapes cannot be used when standard_conforming_strings is off."), + self.lexer_errposition())); + } + self.begin(State::xus); + self.literal.clear(); + } + } + 19 => { + { + // /* + // * When we are scanning a quoted string and see an end + // * quote, we must look ahead for a possible continuation. + // * If we don't see one, we know the end quote was in fact + // * the end of the string. To reduce the lexer table size, + // * we use a single "xqs" state to do the lookahead for all + // * types of strings. + // */ + // yyextra->state_before_str_stop = YYSTATE; + // BEGIN(xqs); + + /* + * When we are scanning a quoted string and see an end + * quote, we must look ahead for a possible continuation. + * If we don't see one, we know the end quote was in fact + * the end of the string. To reduce the lexer table size, + * we use a single "xqs" state to do the lookahead for all + * types of strings. + */ + self.state_before_str_stop = self.state; + self.begin(State::xqs); + } + } + 20 => { + { + // /* + // * Found a quote continuation, so return to the in-quote + // * state and continue scanning the literal. Nothing is + // * added to the literal's contents. + // */ + // BEGIN(yyextra->state_before_str_stop); + + /* + * Found a quote continuation, so return to the in-quote + * state and continue scanning the literal. Nothing is + * added to the literal's contents. + */ + self.begin(self.state_before_str_stop); + } + } + 21 | 22 | 23 => { + { + // /* + // * Failed to see a quote continuation. Throw back + // * everything after the end quote, and handle the string + // * according to the state we were in previously. + // */ + // yyless(0); + // BEGIN(INITIAL); + // + // switch (yyextra->state_before_str_stop) + // { + // case xb: + // yylval->str = litbufdup(yyscanner); + // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; + // return BCONST; + // case xh: + // yylval->str = litbufdup(yyscanner); + // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; + // return XCONST; + // case xq: + // case xe: + // /* + // * Check that the data remains valid, if it might + // * have been made invalid by unescaping any chars. + // */ + // if (yyextra->saw_non_ascii) + // pg_verifymbstr(yyextra->literalbuf, + // yyextra->literallen, + // false); + // yylval->str = litbufdup(yyscanner); + // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; + // return SCONST; + // case xus: + // yylval->str = litbufdup(yyscanner); + // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; + // return USCONST; + // default: + // yyerror("unhandled previous state in xqs"); + // } + + /* + * Failed to see a quote continuation. Throw back + * everything after the end quote, and handle the string + * according to the state we were in previously. + */ + self.yyless(0); + self.begin(State::INITIAL); + + match self.state_before_str_stop { + State::xb => { + self.yylval = Yylval::Str(self.literal.clone()); + self.set_yyllocend(); + return Ok(Some(TokenKind::BCONST)); + } + State::xh => { + self.yylval = Yylval::Str(self.literal.clone()); + self.set_yyllocend(); + return Ok(Some(TokenKind::XCONST)); + } + State::xq | State::xe => { + /* + * Check that the data remains valid, if it might + * have been made invalid by unescaping any chars. + */ + // TODO verify + // if (yyextra->saw_non_ascii) + // pg_verifymbstr(yyextra->literalbuf, + // yyextra->literallen, + // false); + self.yylval = Yylval::Str(self.literal.clone()); + self.set_yyllocend(); + return Ok(Some(TokenKind::SCONST)); + } + State::xus => { + self.yylval = Yylval::Str(self.literal.clone()); + self.set_yyllocend(); + return Ok(Some(TokenKind::USCONST)); + } + _ => yyerror!("unhandled previous state in xqs"), + } + } + } + 24 => { + { + // self.literal += '\''; + + self.addlitchar('\''); + } + } + 25 => { + { + // addlit(yytext, yyleng, yyscanner); + + self.addlit(self.yyleng); + } + } + 26 => { + { + // addlit(yytext, yyleng, yyscanner); + + self.addlit(self.yyleng); + } + } + 27 => { + { + // pg_wchar c = strtoul(yytext + 2, NULL, 16); + // + // /* + // * For consistency with other productions, issue any + // * escape warning with cursor pointing to start of string. + // * We might want to change that, someday. + // */ + // check_escape_warning(yyscanner); + // + // /* Remember start of overall string token ... */ + // PUSH_YYLLOC(); + // /* ... and set the error cursor to point at this esc seq */ + // SET_YYLLOC(); + // + // if (is_utf16_surrogate_first(c)) + // { + // yyextra->utf16_first_part = c; + // BEGIN(xeu); + // } + // else if (is_utf16_surrogate_second(c)) + // yyerror("invalid Unicode surrogate pair"); + // else + // addunicode(c, yyscanner); + // + // /* Restore yylloc to be start of string token */ + // POP_YYLLOC(); + + let c = u32::from_str_radix( + &self.input[self.index_bytes + 2..self.index_bytes + self.yyleng], + 16, + ) + .unwrap(); + + self.push_yylloc(); + self.set_yylloc(); + + if is_utf16_surrogate_first(c) { + self.utf16_first_part = c; + self.begin(State::xeu); + } else if is_utf16_surrogate_second(c) { + yyerror!("invalid Unicode surrogate pair"); + } else { + self.addunicode(char::from_u32(c as u32).unwrap())?; + } + + self.pop_yylloc(); + } + } + 28 => { + { + // pg_wchar c = strtoul(yytext + 2, NULL, 16); + // + // /* Remember start of overall string token ... */ + // PUSH_YYLLOC(); + // /* ... and set the error cursor to point at this esc seq */ + // SET_YYLLOC(); + // + // if (!is_utf16_surrogate_second(c)) + // yyerror("invalid Unicode surrogate pair"); + // + // c = surrogate_pair_to_codepoint(yyextra->utf16_first_part, c); + // + // addunicode(c, yyscanner); + // + // /* Restore yylloc to be start of string token */ + // POP_YYLLOC(); + // + // BEGIN(xe); + + let c = u32::from_str_radix( + &self.input[self.index_bytes + 2..self.index_bytes + self.yyleng], + 16, + ) + .unwrap(); + + self.push_yylloc(); + self.set_yylloc(); + + if !is_utf16_surrogate_second(c) { + yyerror!("invalid Unicode surrogate pair"); + } + + let c = surrogate_pair_to_codepoint(self.utf16_first_part, c); + self.addunicode(c)?; + + self.pop_yylloc(); + self.begin(State::xe); + } + } + 29 | 30 | 31 => { + { + // /* Set the error cursor to point at missing esc seq */ + // SET_YYLLOC(); + // yyerror("invalid Unicode surrogate pair"); + + /* Set the error cursor to point at missing esc seq */ + self.set_yylloc(); + yyerror!("invalid Unicode surrogate pair"); + } + } + 32 => { + { + // /* Set the error cursor to point at malformed esc seq */ + // SET_YYLLOC(); + // ereport(ERROR, + // (errcode(ERRCODE_INVALID_ESCAPE_SEQUENCE), + // errmsg("invalid Unicode escape"), + // errhint("Unicode escapes must be \\uXXXX or \\UXXXXXXXX."), + // lexer_errposition())); + + self.set_yylloc(); + ereport!( + self, + ERROR, + ( + errcode(ERRCODE_INVALID_ESCAPE_SEQUENCE), + errmsg("invalid Unicode escape"), + errhint("Unicode escapes must be \\uXXXX or \\UXXXXXXXX."), + self.lexer_errposition() + ) + ); + } + } + 33 => { + { + // if (yytext[1] == '\'') + // { + // if (yyextra->backslash_quote == BACKSLASH_QUOTE_OFF || + // (yyextra->backslash_quote == BACKSLASH_QUOTE_SAFE_ENCODING && + // PG_ENCODING_IS_CLIENT_ONLY(pg_get_client_encoding()))) + // ereport(ERROR, + // (errcode(ERRCODE_NONSTANDARD_USE_OF_ESCAPE_CHARACTER), + // errmsg("unsafe use of \\' in a string literal"), + // errhint("Use '' to write quotes in strings. \\' is insecure in client-only encodings."), + // lexer_errposition())); + // } + // check_string_escape_warning(yytext[1], yyscanner); + // addlitchar(unescape_single_char(yytext[1], yyscanner), + // yyscanner); + + let c = self.yytext().chars().nth(1).unwrap(); + // if c == '\'' { + // if self.backslash_quote == BACKSLASH_QUOTE_OFF || + // (self.backslash_quote == BACKSLASH_QUOTE_SAFE_ENCODING && + // PG_ENCODING_IS_CLIENT_ONLY(pg_get_client_encoding())) { + // ereport!(self, ERROR, + // (errcode(ERRCODE_NONSTANDARD_USE_OF_ESCAPE_CHARACTER), + // errmsg("unsafe use of \\' in a string literal"), + // errhint("Use '' to write quotes in strings. \\' is insecure in client-only encodings."), + // self.lexer_errposition())); + // } + // } + + // self.check_string_escape_warning(c); + let c = self.unescape_single_char(c); + self.addlitchar(c); + } + } + 34 => { + { + // unsigned char c = strtoul(yytext + 1, NULL, 8); + // + // check_escape_warning(yyscanner); + // addlitchar(c, yyscanner); + // if (c == '\0' || IS_HIGHBIT_SET(c)) + // yyextra->saw_non_ascii = true; + + let c = u32::from_str_radix( + &self.input[self.index_bytes + 1..self.index_bytes + self.yyleng], + 8, + ) + .unwrap(); + let c = char::from_u32(c).unwrap(); + + // self.check_escape_warning(); + self.addlitchar(c); + if c == '\0' || is_highbit_set(c) != 0 { + self.saw_non_ascii = true; + } + } + } + 35 => { + { + // unsigned char c = strtoul(yytext + 2, NULL, 16); + // + // check_escape_warning(yyscanner); + // addlitchar(c, yyscanner); + // if (c == '\0' || IS_HIGHBIT_SET(c)) + // yyextra->saw_non_ascii = true; + + let c = u32::from_str_radix( + &self.input[self.index_bytes + 1..self.index_bytes + self.yyleng], + 16, + ) + .unwrap(); + let c = char::from_u32(c).unwrap(); + + // self.check_escape_warning(); + self.addlitchar(c); + if c == '\0' || is_highbit_set(c) != 0 { + self.saw_non_ascii = true; + } + } + } + 36 => { + { + // /* This is only needed for \ just before EOF */ + // addlitchar(yytext[0], yyscanner); + + /* This is only needed for \ just before EOF */ + let c = self.input[self.index_bytes..].chars().next().unwrap(); + self.addlitchar(c); + } + } + 37 => { + yyerror!("unterminated quoted string"); + } + 38 => { + { + // SET_YYLLOC(); + // yyextra->dolqstart = pstrdup(yytext); + // BEGIN(xdolq); + // startlit(); + + self.set_yylloc(); + self.dolqstart = self.yytext(); + self.begin(State::xdolq); + self.literal.clear(); + } + } + 39 => { + { + // SET_YYLLOC(); + // /* throw back all but the initial "$" */ + // yyless(1); + // /* and treat it as {other} */ + // return yytext[0]; + + self.set_yylloc(); + /* throw back all but the initial "$" */ + self.yyless(1); + /* and treat it as {other} */ + return Ok(Some(TokenKind::RAW(self.yytext()))); + } + } + 40 => { + { + // if (strcmp(yytext, yyextra->dolqstart) == 0) + // { + // pfree(yyextra->dolqstart); + // yyextra->dolqstart = NULL; + // BEGIN(INITIAL); + // yylval->str = litbufdup(yyscanner); + // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; + // return SCONST; + // } + // else + // { + // /* + // * When we fail to match $...$ to dolqstart, transfer + // * the $... part to the output, but put back the final + // * $ for rescanning. Consider $delim$...$junk$delim$ + // */ + // addlit(yytext, yyleng - 1, yyscanner); + // yyless(yyleng - 1); + // } + + if self.yytext() == self.dolqstart { + self.dolqstart = "".to_string(); + self.begin(State::INITIAL); + self.yylval = Yylval::Str(self.literal.clone()); + self.set_yyllocend(); + return Ok(Some(TokenKind::SCONST)); + } else { + /* + * When we fail to match $...$ to dolqstart, transfer + * the $... part to the output, but put back the final + * $ for rescanning. Consider $delim$...$junk$delim$ + */ + self.addlit(self.yyleng - 1); + self.yyless(self.yyleng - 1); + } + } + } + 41 => { + { + // addlit(yytext, yyleng, yyscanner); + + self.addlit(self.yyleng); + } + } + 42 => { + { + // addlit(yytext, yyleng, yyscanner); + + self.addlit(self.yyleng); + } + } + 43 => { + { + // /* This is only needed for $ inside the quoted text */ + // addlitchar(yytext[0], yyscanner); + + let c = self.yytext().chars().next().unwrap(); + self.addlitchar(c); + } + } + 44 => { + yyerror!("unterminated dollar-quoted string"); + } + 45 => { + { + // SET_YYLLOC(); + // BEGIN(xd); + // startlit(); + + self.set_yylloc(); + self.begin(State::xd); + self.literal.clear(); + } + } + 46 => { + { + // SET_YYLLOC(); + // BEGIN(xui); + // startlit(); + + self.set_yylloc(); + self.begin(State::xui); + self.literal.clear(); + } + } + 47 => { + { + // char *ident; + // + // BEGIN(INITIAL); + // if (yyextra->literallen == 0) + // yyerror("zero-length delimited identifier"); + // ident = litbufdup(yyscanner); + // if (yyextra->literallen >= NAMEDATALEN) + // truncate_identifier(ident, yyextra->literallen, true); + // yylval->str = ident; + // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; + // return IDENT; + + self.begin(State::INITIAL); + if self.literal.len() == 0 { + yyerror!("zero-length delimited identifier"); + } + let ident = self.literal.clone(); + if self.literal.len() >= NAMEDATALEN { + // TODO + // panic!(); + } + self.yylval = Yylval::Str(ident); + self.set_yyllocend(); + return Ok(Some(TokenKind::IDENT)); + } + } + 48 => { + { + // BEGIN(INITIAL); + // if (yyextra->literallen == 0) + // yyerror("zero-length delimited identifier"); + // /* can't truncate till after we de-escape the ident */ + // yylval->str = litbufdup(yyscanner); + // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; + // return UIDENT; + + self.begin(State::INITIAL); + if self.literal.len() == 0 { + yyerror!("zero-length delimited identifier"); + } + /* can't truncate till after we de-escape the ident */ + self.yylval = Yylval::Str(self.yytext()); + self.set_yyllocend(); + return Ok(Some(TokenKind::UIDENT)); + } + } + 49 => { + { + // addlitchar('"', yyscanner); + + self.addlitchar('"'); + } + } + 50 => { + { + // addlit(yytext, yyleng, yyscanner); + + self.addlit(self.yyleng); + } + } + 51 => { + yyerror!("unterminated quoted identifier"); + } + 52 => { + { + // char *ident; + // + // SET_YYLLOC(); + // /* throw back all but the initial u/U */ + // yyless(1); + // /* and treat it as {identifier} */ + // ident = downcase_truncate_identifier(yytext, yyleng, true); + // yylval->str = ident; + // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; + // return IDENT; + + self.set_yylloc(); + self.yyless(1); + // FIXME + // let ident = downcase_truncate_identifier(yytext, yyleng, true); + let ident = self.yytext(); + self.yylval = Yylval::Str(ident); + self.set_yyllocend(); + return Ok(Some(TokenKind::IDENT)); + } + } + 53 => { + { + // SET_YYLLOC(); + // return TYPECAST; + + self.set_yylloc(); + return Ok(Some(TokenKind::TYPECAST)); + } + } + 54 => { + { + // SET_YYLLOC(); + // return DOT_DOT; + + self.set_yylloc(); + return Ok(Some(TokenKind::DOT_DOT)); + } + } + 55 => { + { + // SET_YYLLOC(); + // return COLON_EQUALS; + + self.set_yylloc(); + return Ok(Some(TokenKind::COLON_EQUALS)); + } + } + 56 => { + { + // SET_YYLLOC(); + // return EQUALS_GREATER; + + self.set_yylloc(); + return Ok(Some(TokenKind::EQUALS_GREATER)); + } + } + 57 => { + { + // SET_YYLLOC(); + // return LESS_EQUALS; + + self.set_yylloc(); + return Ok(Some(TokenKind::LESS_EQUALS)); + } + } + 58 => { + { + // SET_YYLLOC(); + // return GREATER_EQUALS; + + self.set_yylloc(); + return Ok(Some(TokenKind::GREATER_EQUALS)); + } + } + 59 => { + { + // /* We accept both "<>" and "!=" as meaning NOT_EQUALS */ + // SET_YYLLOC(); + // return NOT_EQUALS; + + /* We accept both "<>" and "!=" as meaning NOT_EQUALS */ + self.set_yylloc(); + return Ok(Some(TokenKind::NOT_EQUALS)); + } + } + 60 => { + { + // /* We accept both "<>" and "!=" as meaning NOT_EQUALS */ + // SET_YYLLOC(); + // return NOT_EQUALS; + + /* We accept both "<>" and "!=" as meaning NOT_EQUALS */ + self.set_yylloc(); + return Ok(Some(TokenKind::NOT_EQUALS)); + } + } + 61 => { + { + // SET_YYLLOC(); + // return yytext[0]; + + self.set_yylloc(); + return Ok(Some(TokenKind::RAW(self.yytext()[0..1].to_string()))); + } + } + 62 => { + { + // /* + // * Check for embedded slash-star or dash-dash; those + // * are comment starts, so operator must stop there. + // * Note that slash-star or dash-dash at the first + // * character will match a prior rule, not this one. + // */ + // int nchars = yyleng; + // char *slashstar = strstr(yytext, "/*"); + // char *dashdash = strstr(yytext, "--"); + // + // if (slashstar && dashdash) + // { + // /* if both appear, take the first one */ + // if (slashstar > dashdash) + // slashstar = dashdash; + // } + // else if (!slashstar) + // slashstar = dashdash; + // if (slashstar) + // nchars = slashstar - yytext; + // + // /* + // * For SQL compatibility, '+' and '-' cannot be the + // * last char of a multi-char operator unless the operator + // * contains chars that are not in SQL operators. + // * The idea is to lex '=-' as two operators, but not + // * to forbid operator names like '?-' that could not be + // * sequences of SQL operators. + // */ + // if (nchars > 1 && + // (yytext[nchars - 1] == '+' || + // yytext[nchars - 1] == '-')) + // { + // int ic; + // + // for (ic = nchars - 2; ic >= 0; ic--) + // { + // char c = yytext[ic]; + // if (c == '~' || c == '!' || c == '@' || + // c == '#' || c == '^' || c == '&' || + // c == '|' || c == '`' || c == '?' || + // c == '%') + // break; + // } + // if (ic < 0) + // { + // /* + // * didn't find a qualifying character, so remove + // * all trailing [+-] + // */ + // do { + // nchars--; + // } while (nchars > 1 && + // (yytext[nchars - 1] == '+' || + // yytext[nchars - 1] == '-')); + // } + // } + // + // SET_YYLLOC(); + // + // if (nchars < yyleng) + // { + // /* Strip the unwanted chars from the token */ + // yyless(nchars); + // /* + // * If what we have left is only one char, and it's + // * one of the characters matching "self", then + // * return it as a character token the same way + // * that the "self" rule would have. + // */ + // if (nchars == 1 && + // strchr(",()[].;:+-*/%^<>=", yytext[0])) + // return yytext[0]; + // /* + // * Likewise, if what we have left is two chars, and + // * those match the tokens ">=", "<=", "=>", "<>" or + // * "!=", then we must return the appropriate token + // * rather than the generic Op. + // */ + // if (nchars == 2) + // { + // if (yytext[0] == '=' && yytext[1] == '>') + // return EQUALS_GREATER; + // if (yytext[0] == '>' && yytext[1] == '=') + // return GREATER_EQUALS; + // if (yytext[0] == '<' && yytext[1] == '=') + // return LESS_EQUALS; + // if (yytext[0] == '<' && yytext[1] == '>') + // return NOT_EQUALS; + // if (yytext[0] == '!' && yytext[1] == '=') + // return NOT_EQUALS; + // } + // } + // + // /* + // * Complain if operator is too long. Unlike the case + // * for identifiers, we make this an error not a notice- + // * and-truncate, because the odds are we are looking at + // * a syntactic mistake anyway. + // */ + // if (nchars >= NAMEDATALEN) + // yyerror("operator too long"); + // + // yylval->str = pstrdup(yytext); + // return Op; + + /* + * Check for embedded slash-star or dash-dash; those + * are comment starts, so operator must stop there. + * Note that slash-star or dash-dash at the first + * character will match a prior rule, not this one. + */ + let mut nchars = self.yyleng; + let yytext = self.yytext(); + let mut slashstar = yytext.find("/*"); + let dashdash = yytext.find("--"); + + let dashdash_first = match (&slashstar, &dashdash) { + (Some(slashstar_index), Some(dashdash_index)) + if slashstar_index > dashdash_index => + { + true + } + (None, Some(_)) => true, + _ => false, + }; + + if dashdash_first { + slashstar = dashdash; + } + + if let Some(i) = slashstar { + nchars = i; + } + + /* + * For SQL compatibility, '+' and '-' cannot be the + * last char of a multi-char operator unless the operator + * contains chars that are not in SQL operators. + * The idea is to lex '=-' as two operators, but not + * to forbid operator names like '?-' that could not be + * sequences of SQL operators. + */ + if nchars > 1 + && (get_char_by_byte_pos(&yytext, nchars - 1) == '+' + || get_char_by_byte_pos(&yytext, nchars - 1) == '-') + { + let b = (0..nchars - 1).any(|ic| { + matches!( + get_char_by_byte_pos(&yytext, ic), + '~' | '!' | '@' | '#' | '^' | '&' | '|' | '`' | '?' | '%' + ) + }); + if !b { + loop { + nchars -= 1; + + if !(nchars > 1 + && (get_char_by_byte_pos(&yytext, nchars - 1) == '+' + || get_char_by_byte_pos(&yytext, nchars - 1) == '-')) + { + break; + } + } + } + } + + self.set_yylloc(); + + if nchars < self.yyleng { + /* Strip the unwanted chars from the token */ + self.yyless(nchars); + /* + * If what we have left is only one char, and it's + * one of the characters matching "self", then + * return it as a character token the same way + * that the "self" rule would have. + */ + if nchars == 1 + && ",()[].;:+-*/%^<>=" + .find(get_char_by_byte_pos(&yytext, 0)) + .is_some() + { + return Ok(Some(TokenKind::RAW(yytext[0..1].to_string()))); + } + /* + * Likewise, if what we have left is two chars, and + * those match the tokens ">=", "<=", "=>", "<>" or + * "!=", then we must return the appropriate token + * rather than the generic Op. + */ + if nchars == 2 { + if &yytext[0..2] == "=>" { + return Ok(Some(TokenKind::EQUALS_GREATER)); + } + if &yytext[0..2] == ">=" { + return Ok(Some(TokenKind::GREATER_EQUALS)); + } + if &yytext[0..2] == "<=" { + return Ok(Some(TokenKind::LESS_EQUALS)); + } + if &yytext[0..2] == "<>" { + return Ok(Some(TokenKind::NOT_EQUALS)); + } + if &yytext[0..2] == "!=" { + return Ok(Some(TokenKind::NOT_EQUALS)); + } + } + } + + /* + * Complain if operator is too long. Unlike the case + * for identifiers, we make this an error not a notice- + * and-truncate, because the odds are we are looking at + * a syntactic mistake anyway. + */ + if nchars >= NAMEDATALEN { + yyerror!("operator too long"); + } + + self.yylval = Yylval::Str(yytext); + return Ok(Some(TokenKind::Op)); + } + } + 63 => { + { + // SET_YYLLOC(); + // yylval->ival = atol(yytext + 1); + // return PARAM; + + self.set_yylloc(); + self.yylval = + Yylval::I(i32::from_str_radix(&self.yytext()[1..], 10).unwrap()); + return Ok(Some(TokenKind::PARAM)); + } + } + 64 => { + { + // SET_YYLLOC(); + // return process_integer_literal(yytext, yylval, 10); + + self.set_yylloc(); + return Ok(self.process_integer_literal(10)); + } + } + 65 => { + { + // SET_YYLLOC(); + // return process_integer_literal(yytext, yylval, 16); + + self.set_yylloc(); + return Ok(self.process_integer_literal(16)); + } + } + 66 => { + { + // SET_YYLLOC(); + // return process_integer_literal(yytext, yylval, 8); + + self.set_yylloc(); + return Ok(self.process_integer_literal(8)); + } + } + 67 => { + { + // SET_YYLLOC(); + // return process_integer_literal(yytext, yylval, 2); + + self.set_yylloc(); + return Ok(self.process_integer_literal(2)); + } + } + 68 => { + { + // SET_YYLLOC(); + // yyerror("invalid hexadecimal integer"); + + self.set_yylloc(); + yyerror!("invalid hexadecimal integer"); + } + } + 69 => { + { + // SET_YYLLOC(); + // yyerror("invalid octal integer"); + + self.set_yylloc(); + yyerror!("invalid octal integer"); + } + } + 70 => { + { + // SET_YYLLOC(); + // yyerror("invalid binary integer"); + + self.set_yylloc(); + yyerror!("invalid binary integer"); + } + } + 71 => { + { + // SET_YYLLOC(); + // yylval->str = pstrdup(yytext); + // return FCONST; + + self.set_yylloc(); + self.yylval = Yylval::Str(self.yytext()); + return Ok(Some(TokenKind::FCONST)); + } + } + 72 => { + { + // /* throw back the .., and treat as integer */ + // yyless(yyleng - 2); + // SET_YYLLOC(); + // return process_integer_literal(yytext, yylval, 10); + + /* throw back the .., and treat as integer */ + self.yyless(self.yyleng - 2); + self.set_yylloc(); + return Ok(self.process_integer_literal(10)); + } + } + 73 => { + { + // SET_YYLLOC(); + // yylval->str = pstrdup(yytext); + // return FCONST; + + self.set_yylloc(); + self.yylval = Yylval::Str(self.yytext()); + return Ok(Some(TokenKind::FCONST)); + } + } + 74 => { + { + // SET_YYLLOC(); + // yyerror("trailing junk after numeric literal"); + + self.set_yylloc(); + yyerror!("trailing junk after numeric literal"); + } + } + 75 => { + { + // SET_YYLLOC(); + // yyerror("trailing junk after numeric literal"); + + self.set_yylloc(); + yyerror!("trailing junk after numeric literal"); + } + } + 76 => { + { + // SET_YYLLOC(); + // yyerror("trailing junk after numeric literal"); + + self.set_yylloc(); + yyerror!("trailing junk after numeric literal"); + } + } + 77 => { + { + // SET_YYLLOC(); + // yyerror("trailing junk after numeric literal"); + + self.set_yylloc(); + yyerror!("trailing junk after numeric literal"); + } + } + 78 => { + { + // int kwnum; + // char *ident; + // + // SET_YYLLOC(); + // + // /* Is it a keyword? */ + // kwnum = ScanKeywordLookup(yytext, + // yyextra->keywordlist); + // if (kwnum >= 0) + // { + // yylval->keyword = GetScanKeyword(kwnum, + // yyextra->keywordlist); + // return yyextra->keyword_tokens[kwnum]; + // } + // + // /* + // * No. Convert the identifier to lower case, and truncate + // * if necessary. + // */ + // ident = downcase_truncate_identifier(yytext, yyleng, true); + // yylval->str = ident; + // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; + // return IDENT; + + self.set_yylloc(); + + /* Is it a keyword? */ + let yytext = self.yytext(); + if let Some((kw, kw_token)) = self.get_keyword(&yytext) { + self.yylval = Yylval::Keyword(kw); + return Ok(Some(TokenKind::KEYWORD(kw_token))); + } + + /* + * No. Convert the identifier to lower case, and truncate + * if necessary. + */ + let ident = self.downcase_truncate_identifier(self.yyleng, true); + self.yylval = Yylval::Str(ident); + self.set_yyllocend(); + return Ok(Some(TokenKind::IDENT)); + } + } + 79 => { + { + // SET_YYLLOC(); + // return yytext[0]; + + self.set_yylloc(); + return Ok(Some(TokenKind::RAW(yytext[0..1].to_string()))); + } + } + 80 => { + { + // SET_YYLLOC(); + // yyterminate(); + + self.set_yylloc(); + yyterminate!(); + } + } + 255 => {} + _ => { + unreachable!() + } + } + self.advance(); + } + } + + #[cfg(feature = "regex-match")] + pub fn parse_token(&mut self) -> Result, ParserError> { loop { - let (m, kind) = self.find_match(); + let (match_len, kind) = self.find_match_len(); - self.yyleng = m.len(); + self.yyleng = match_len; let yytext = self.yytext(); match kind { @@ -147,11 +5147,23 @@ impl Lexer { { /* ignore */ } } RuleKind::INITIAL2 => { - self.set_yylloc(); - return Some(TokenKind::SQL_COMMENT); + { + // SET_YYLLOC(); + // return SQL_COMMENT; + + self.set_yylloc(); + return Ok(Some(TokenKind::SQL_COMMENT)); + } } RuleKind::INITIAL3 => { { + // /* Set location in case of syntax error in comment */ + // SET_YYLLOC(); + // yyextra->xcdepth = 0; + // BEGIN(xc); + // /* Put back any characters past slash-star; see above */ + // yyless(2); + /* Set location in case of syntax error in comment */ self.set_yylloc(); self.xcdepth = 0; @@ -162,18 +5174,33 @@ impl Lexer { } RuleKind::xc1 => { { + // (yyextra->xcdepth)++; + // /* Put back any characters past slash-star; see above */ + // yyless(2); + self.xcdepth += 1; /* Put back any characters past slash-star; see above */ self.yyless(2); } } RuleKind::xc2 => { - if self.xcdepth <= 0 { - self.begin(State::INITIAL); - self.set_yyllocend(); - return Some(TokenKind::C_COMMENT); - } else { - self.xcdepth -= 1; + { + // if (yyextra->xcdepth <= 0) + // { + // BEGIN(INITIAL); + // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; + // return C_COMMENT; + // } + // else + // (yyextra->xcdepth)--; + + if self.xcdepth <= 0 { + self.begin(State::INITIAL); + self.set_yyllocend(); + return Ok(Some(TokenKind::C_COMMENT)); + } else { + self.xcdepth -= 1; + } } } RuleKind::xc3 => { @@ -186,10 +5213,21 @@ impl Lexer { { /* ignore */ } } RuleKind::xc6 => { - yyerror("unterminated /* comment"); + yyerror!("unterminated /* comment"); } RuleKind::INITIAL4 => { { + // /* Binary bit type. + // * At some point we should simply pass the string + // * forward to the parser and label it there. + // * In the meantime, place a leading "b" on the string + // * to mark it for the input routine as a binary string. + // */ + // SET_YYLLOC(); + // BEGIN(xb); + // startlit(); + // addlitchar('b', yyscanner); + /* Binary bit type. * At some point we should simply pass the string * forward to the parser and label it there. @@ -199,21 +5237,32 @@ impl Lexer { self.set_yylloc(); self.begin(State::xb); self.literal.clear(); - // self.literal += 'b'; self.addlitchar('b'); } } RuleKind::xh1 | RuleKind::xb1 => { { // addlit(yytext, yyleng, yyscanner); + self.addlit(self.yyleng); } } RuleKind::xb2 => { - yyerror("unterminated bit string literal"); + yyerror!("unterminated bit string literal"); } RuleKind::INITIAL5 => { { + // /* Hexadecimal bit type. + // * At some point we should simply pass the string + // * forward to the parser and label it there. + // * In the meantime, place a leading "x" on the string + // * to mark it for the input routine as a hex string. + // */ + // SET_YYLLOC(); + // BEGIN(xh); + // startlit(); + // addlitchar('x', yyscanner); + /* Hexadecimal bit type. * At some point we should simply pass the string * forward to the parser and label it there. @@ -223,31 +5272,29 @@ impl Lexer { self.set_yylloc(); self.begin(State::xh); self.literal.clear(); - // self.literal += 'x'; self.addlitchar('x'); } } RuleKind::xh2 => { - yyerror("unterminated hexadecimal string literal"); + yyerror!("unterminated hexadecimal string literal"); } RuleKind::INITIAL6 => { { - /* National character. - * We will pass this along as a normal character string, - * but preceded with an internally-generated "NCHAR". - */ - self.set_yylloc(); - self.yyless(1); /* eat only 'n' this time */ - - // kwnumは文字列のキーワード位置のオフセット + // /* National character. + // * We will pass this along as a normal character string, + // * but preceded with an internally-generated "NCHAR". + // */ + // int kwnum; + // + // SET_YYLLOC(); + // yyless(1); /* eat only 'n' this time */ + // // kwnum = ScanKeywordLookup("nchar", // yyextra->keywordlist); // if (kwnum >= 0) // { - // キーワードの文字列をセット // yylval->keyword = GetScanKeyword(kwnum, // yyextra->keywordlist); - // キーワードのIDを返す。IDはbison grammarのtoken typeの数値で返す // return yyextra->keyword_tokens[kwnum]; // } // else @@ -258,22 +5305,35 @@ impl Lexer { // return IDENT; // } + self.set_yylloc(); + self.yyless(1); /* eat only 'n' this time */ + if let Some((kw, kw_token)) = self.get_keyword("nchar") { self.yylval = Yylval::Keyword(kw); - return Some(TokenKind::KEYWORD(kw_token)); + return Ok(Some(TokenKind::KEYWORD(kw_token))); } else { /* If NCHAR isn't a keyword, just return "n" */ self.yylval = Yylval::Str("n".to_string()); self.set_yyllocend(); - return Some(TokenKind::IDENT); + return Ok(Some(TokenKind::IDENT)); } } } RuleKind::INITIAL7 => { { - self.set_yylloc(); + // yyextra->warn_on_first_escape = true; + // yyextra->saw_non_ascii = false; + // SET_YYLLOC(); // if (yyextra->standard_conforming_strings) - if true { + // BEGIN(xq); + // else + // BEGIN(xe); + // startlit(); + + self.warn_on_first_escape = true; + self.saw_non_ascii = false; + self.set_yylloc(); + if STANDARD_CONFORMING_STRINGS { self.begin(State::xq); } else { self.begin(State::xe); @@ -282,20 +5342,39 @@ impl Lexer { } } RuleKind::INITIAL8 => { - self.set_yylloc(); - self.begin(State::xe); - self.literal.clear(); + { + // yyextra->warn_on_first_escape = false; + // yyextra->saw_non_ascii = false; + // SET_YYLLOC(); + // BEGIN(xe); + // startlit(); + + self.warn_on_first_escape = false; + self.saw_non_ascii = false; + self.set_yylloc(); + self.begin(State::xe); + self.literal.clear(); + } } RuleKind::INITIAL9 => { { - self.set_yylloc(); + // SET_YYLLOC(); // if (!yyextra->standard_conforming_strings) - if false { - // ereport(ERROR, - // (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - // errmsg("unsafe use of string constant with Unicode escapes"), - // errdetail("String constants with Unicode escapes cannot be used when standard_conforming_strings is off."), - // lexer_errposition())); + // ereport(ERROR, + // (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + // errmsg("unsafe use of string constant with Unicode escapes"), + // errdetail("String constants with Unicode escapes cannot be used when \"standard_conforming_strings\" is off."), + // lexer_errposition())); + // BEGIN(xus); + // startlit(); + + self.set_yylloc(); + if !STANDARD_CONFORMING_STRINGS { + ereport!(self, ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("unsafe use of string constant with Unicode escapes"), + errdetail("String constants with Unicode escapes cannot be used when standard_conforming_strings is off."), + self.lexer_errposition())); } self.begin(State::xus); self.literal.clear(); @@ -303,6 +5382,17 @@ impl Lexer { } RuleKind::xb3 => { { + // /* + // * When we are scanning a quoted string and see an end + // * quote, we must look ahead for a possible continuation. + // * If we don't see one, we know the end quote was in fact + // * the end of the string. To reduce the lexer table size, + // * we use a single "xqs" state to do the lookahead for all + // * types of strings. + // */ + // yyextra->state_before_str_stop = YYSTATE; + // BEGIN(xqs); + /* * When we are scanning a quoted string and see an end * quote, we must look ahead for a possible continuation. @@ -317,6 +5407,17 @@ impl Lexer { } RuleKind::xh3 => { { + // /* + // * When we are scanning a quoted string and see an end + // * quote, we must look ahead for a possible continuation. + // * If we don't see one, we know the end quote was in fact + // * the end of the string. To reduce the lexer table size, + // * we use a single "xqs" state to do the lookahead for all + // * types of strings. + // */ + // yyextra->state_before_str_stop = YYSTATE; + // BEGIN(xqs); + /* * When we are scanning a quoted string and see an end * quote, we must look ahead for a possible continuation. @@ -331,6 +5432,17 @@ impl Lexer { } RuleKind::xq1 => { { + // /* + // * When we are scanning a quoted string and see an end + // * quote, we must look ahead for a possible continuation. + // * If we don't see one, we know the end quote was in fact + // * the end of the string. To reduce the lexer table size, + // * we use a single "xqs" state to do the lookahead for all + // * types of strings. + // */ + // yyextra->state_before_str_stop = YYSTATE; + // BEGIN(xqs); + /* * When we are scanning a quoted string and see an end * quote, we must look ahead for a possible continuation. @@ -345,6 +5457,17 @@ impl Lexer { } RuleKind::xe1 => { { + // /* + // * When we are scanning a quoted string and see an end + // * quote, we must look ahead for a possible continuation. + // * If we don't see one, we know the end quote was in fact + // * the end of the string. To reduce the lexer table size, + // * we use a single "xqs" state to do the lookahead for all + // * types of strings. + // */ + // yyextra->state_before_str_stop = YYSTATE; + // BEGIN(xqs); + /* * When we are scanning a quoted string and see an end * quote, we must look ahead for a possible continuation. @@ -359,6 +5482,17 @@ impl Lexer { } RuleKind::xus1 => { { + // /* + // * When we are scanning a quoted string and see an end + // * quote, we must look ahead for a possible continuation. + // * If we don't see one, we know the end quote was in fact + // * the end of the string. To reduce the lexer table size, + // * we use a single "xqs" state to do the lookahead for all + // * types of strings. + // */ + // yyextra->state_before_str_stop = YYSTATE; + // BEGIN(xqs); + /* * When we are scanning a quoted string and see an end * quote, we must look ahead for a possible continuation. @@ -373,6 +5507,13 @@ impl Lexer { } RuleKind::xqs1 => { { + // /* + // * Found a quote continuation, so return to the in-quote + // * state and continue scanning the literal. Nothing is + // * added to the literal's contents. + // */ + // BEGIN(yyextra->state_before_str_stop); + /* * Found a quote continuation, so return to the in-quote * state and continue scanning the literal. Nothing is @@ -383,14 +5524,14 @@ impl Lexer { } RuleKind::xqs2 | RuleKind::xqs3 | RuleKind::xqs4 => { { - /* - * Failed to see a quote continuation. Throw back - * everything after the end quote, and handle the string - * according to the state we were in previously. - */ - self.yyless(0); - self.begin(State::INITIAL); - + // /* + // * Failed to see a quote continuation. Throw back + // * everything after the end quote, and handle the string + // * according to the state we were in previously. + // */ + // yyless(0); + // BEGIN(INITIAL); + // // switch (yyextra->state_before_str_stop) // { // case xb: @@ -422,207 +5563,282 @@ impl Lexer { // yyerror("unhandled previous state in xqs"); // } + /* + * Failed to see a quote continuation. Throw back + * everything after the end quote, and handle the string + * according to the state we were in previously. + */ + self.yyless(0); + self.begin(State::INITIAL); + match self.state_before_str_stop { State::xb => { self.yylval = Yylval::Str(self.literal.clone()); self.set_yyllocend(); - return Some(TokenKind::BCONST); + return Ok(Some(TokenKind::BCONST)); } State::xh => { self.yylval = Yylval::Str(self.literal.clone()); self.set_yyllocend(); - return Some(TokenKind::XCONST); + return Ok(Some(TokenKind::XCONST)); } State::xq | State::xe => { /* * Check that the data remains valid, if it might * have been made invalid by unescaping any chars. */ + // TODO verify // if (yyextra->saw_non_ascii) // pg_verifymbstr(yyextra->literalbuf, // yyextra->literallen, // false); self.yylval = Yylval::Str(self.literal.clone()); self.set_yyllocend(); - return Some(TokenKind::SCONST); + return Ok(Some(TokenKind::SCONST)); } State::xus => { self.yylval = Yylval::Str(self.literal.clone()); self.set_yyllocend(); - return Some(TokenKind::USCONST); + return Ok(Some(TokenKind::USCONST)); } - _ => yyerror("unhandled previous state in xqs"), + _ => yyerror!("unhandled previous state in xqs"), } } } RuleKind::xq2 => { { // self.literal += '\''; + self.addlitchar('\''); } } RuleKind::xe2 => { { // self.literal += '\''; + self.addlitchar('\''); } } RuleKind::xus2 => { { // self.literal += '\''; + self.addlitchar('\''); } } RuleKind::xq3 => { { // addlit(yytext, yyleng, yyscanner); - // self.literal += self.input[self.index_bytes..self.index_bytes + self.yyleng]; + self.addlit(self.yyleng); } } RuleKind::xus3 => { { // addlit(yytext, yyleng, yyscanner); - // self.literal += self.input[self.index_bytes..self.index_bytes + self.yyleng]; + self.addlit(self.yyleng); } } RuleKind::xe3 => { { // addlit(yytext, yyleng, yyscanner); - // self.literal += self.input[self.index_bytes..self.index_bytes + self.yyleng]; + self.addlit(self.yyleng); } } RuleKind::xe4 => { { // pg_wchar c = strtoul(yytext + 2, NULL, 16); - // let c = u32::from_str_radix(&self.input[self.index_bytes+2..self.index_bytes + self.yyleng], 16).unwrap(); - // let c = char::from_u32(c).unwrap(); - - /* - * For consistency with other productions, issue any - * escape warning with cursor pointing to start of string. - * We might want to change that, someday. - */ + // + // /* + // * For consistency with other productions, issue any + // * escape warning with cursor pointing to start of string. + // * We might want to change that, someday. + // */ // check_escape_warning(yyscanner); - - /* Remember start of overall string token ... */ + // + // /* Remember start of overall string token ... */ // PUSH_YYLLOC(); - // self.push_yylloc(); - /* ... and set the error cursor to point at this esc seq */ + // /* ... and set the error cursor to point at this esc seq */ // SET_YYLLOC(); - // self.set_yylloc(); - - // TODO - // if is_utf16_surrogate_first(c) { - // // yyextra->utf16_first_part = c; - // self.utf16_first_part = c; - // self.begin(State::xeu); - // } else if (is_utf16_surrogate_second(c)) { - // yyerror("invalid Unicode surrogate pair"); - // } else { - // // addunicode(c, yyscanner); - // self.addunicode(c); + // + // if (is_utf16_surrogate_first(c)) + // { + // yyextra->utf16_first_part = c; + // BEGIN(xeu); // } - panic!(); - - /* Restore yylloc to be start of string token */ + // else if (is_utf16_surrogate_second(c)) + // yyerror("invalid Unicode surrogate pair"); + // else + // addunicode(c, yyscanner); + // + // /* Restore yylloc to be start of string token */ // POP_YYLLOC(); - // self.pop_yylloc(); + + let c = u32::from_str_radix( + &self.input[self.index_bytes + 2..self.index_bytes + self.yyleng], + 16, + ) + .unwrap(); + + self.push_yylloc(); + self.set_yylloc(); + + if is_utf16_surrogate_first(c) { + self.utf16_first_part = c; + self.begin(State::xeu); + } else if is_utf16_surrogate_second(c) { + yyerror!("invalid Unicode surrogate pair"); + } else { + self.addunicode(char::from_u32(c as u32).unwrap())?; + } + + self.pop_yylloc(); } } RuleKind::xeu1 => { { // pg_wchar c = strtoul(yytext + 2, NULL, 16); - // let c = u32::from_str_radix(&self.input[self.index_bytes+2..self.index_bytes + self.yyleng], 16).unwrap(); - // let c = char::from_u32(c).unwrap(); - - /* Remember start of overall string token ... */ + // + // /* Remember start of overall string token ... */ // PUSH_YYLLOC(); - // self.push_yylloc(); - /* ... and set the error cursor to point at this esc seq */ - // self.set_yylloc(); - - // TODO - // if !is_utf16_surrogate_second(c) { + // /* ... and set the error cursor to point at this esc seq */ + // SET_YYLLOC(); + // + // if (!is_utf16_surrogate_second(c)) // yyerror("invalid Unicode surrogate pair"); - // } + // + // c = surrogate_pair_to_codepoint(yyextra->utf16_first_part, c); + // + // addunicode(c, yyscanner); + // + // /* Restore yylloc to be start of string token */ + // POP_YYLLOC(); + // + // BEGIN(xe); + + let c = u32::from_str_radix( + &self.input[self.index_bytes + 2..self.index_bytes + self.yyleng], + 16, + ) + .unwrap(); - // // c = surrogate_pair_to_codepoint(yyextra->utf16_first_part, c); - // let c = surrogate_pair_to_codepoint(self.utf16_first_part, c); + self.push_yylloc(); + self.set_yylloc(); - // // addunicode(c, yyscanner); - // self.addunicode(c); - panic!(); + if !is_utf16_surrogate_second(c) { + yyerror!("invalid Unicode surrogate pair"); + } - /* Restore yylloc to be start of string token */ - // POP_YYLLOC(); - // self.pop_yylloc(); + let c = surrogate_pair_to_codepoint(self.utf16_first_part, c); + self.addunicode(c)?; - // self.begin(State::xe); + self.pop_yylloc(); + self.begin(State::xe); } } RuleKind::xeu2 | RuleKind::xeu3 | RuleKind::xeu4 => { { + // /* Set the error cursor to point at missing esc seq */ + // SET_YYLLOC(); + // yyerror("invalid Unicode surrogate pair"); + /* Set the error cursor to point at missing esc seq */ self.set_yylloc(); - yyerror("invalid Unicode surrogate pair"); + yyerror!("invalid Unicode surrogate pair"); } } RuleKind::xe5 => { { - /* Set the error cursor to point at malformed esc seq */ - self.set_yylloc(); - + // /* Set the error cursor to point at malformed esc seq */ + // SET_YYLLOC(); // ereport(ERROR, // (errcode(ERRCODE_INVALID_ESCAPE_SEQUENCE), // errmsg("invalid Unicode escape"), // errhint("Unicode escapes must be \\uXXXX or \\UXXXXXXXX."), // lexer_errposition())); - panic!(); + + self.set_yylloc(); + ereport!( + self, + ERROR, + ( + errcode(ERRCODE_INVALID_ESCAPE_SEQUENCE), + errmsg("invalid Unicode escape"), + errhint("Unicode escapes must be \\uXXXX or \\UXXXXXXXX."), + self.lexer_errposition() + ) + ); } } RuleKind::xeu5 => { { - /* Set the error cursor to point at malformed esc seq */ - self.set_yylloc(); - + // /* Set the error cursor to point at malformed esc seq */ + // SET_YYLLOC(); // ereport(ERROR, // (errcode(ERRCODE_INVALID_ESCAPE_SEQUENCE), // errmsg("invalid Unicode escape"), // errhint("Unicode escapes must be \\uXXXX or \\UXXXXXXXX."), // lexer_errposition())); - panic!(); + + self.set_yylloc(); + ereport!( + self, + ERROR, + ( + errcode(ERRCODE_INVALID_ESCAPE_SEQUENCE), + errmsg("invalid Unicode escape"), + errhint("Unicode escapes must be \\uXXXX or \\UXXXXXXXX."), + self.lexer_errposition() + ) + ); } } RuleKind::xe6 => { { - /* - if (yytext[1] == '\'') - { - if (self.backslash_quote == BACKSLASH_QUOTE_OFF || - (self.backslash_quote == BACKSLASH_QUOTE_SAFE_ENCODING && - PG_ENCODING_IS_CLIENT_ONLY(pg_get_client_encoding()))) - // ereport(ERROR, - // (errcode(ERRCODE_NONSTANDARD_USE_OF_ESCAPE_CHARACTER), - // errmsg("unsafe use of \\' in a string literal"), - // errhint("Use '' to write quotes in strings. \\' is insecure in client-only encodings."), - // lexer_errposition())); - } - check_string_escape_warning(yytext[1], yyscanner); - */ + // if (yytext[1] == '\'') + // { + // if (yyextra->backslash_quote == BACKSLASH_QUOTE_OFF || + // (yyextra->backslash_quote == BACKSLASH_QUOTE_SAFE_ENCODING && + // PG_ENCODING_IS_CLIENT_ONLY(pg_get_client_encoding()))) + // ereport(ERROR, + // (errcode(ERRCODE_NONSTANDARD_USE_OF_ESCAPE_CHARACTER), + // errmsg("unsafe use of \\' in a string literal"), + // errhint("Use '' to write quotes in strings. \\' is insecure in client-only encodings."), + // lexer_errposition())); + // } + // check_string_escape_warning(yytext[1], yyscanner); // addlitchar(unescape_single_char(yytext[1], yyscanner), // yyscanner); - // let c = unescape_single_char(self.input[self.index_bytes + 1]); - // self.addlitchar(unescape_single_char(c)); - // TODO - panic!(); + + let c = self.yytext().chars().nth(1).unwrap(); + // if c == '\'' { + // if self.backslash_quote == BACKSLASH_QUOTE_OFF || + // (self.backslash_quote == BACKSLASH_QUOTE_SAFE_ENCODING && + // PG_ENCODING_IS_CLIENT_ONLY(pg_get_client_encoding())) { + // ereport!(self, ERROR, + // (errcode(ERRCODE_NONSTANDARD_USE_OF_ESCAPE_CHARACTER), + // errmsg("unsafe use of \\' in a string literal"), + // errhint("Use '' to write quotes in strings. \\' is insecure in client-only encodings."), + // self.lexer_errposition())); + // } + // } + + // self.check_string_escape_warning(c); + let c = self.unescape_single_char(c); + self.addlitchar(c); } } RuleKind::xe7 => { { // unsigned char c = strtoul(yytext + 1, NULL, 8); + // + // check_escape_warning(yyscanner); + // addlitchar(c, yyscanner); + // if (c == '\0' || IS_HIGHBIT_SET(c)) + // yyextra->saw_non_ascii = true; + let c = u32::from_str_radix( &self.input[self.index_bytes + 1..self.index_bytes + self.yyleng], 8, @@ -630,16 +5846,22 @@ impl Lexer { .unwrap(); let c = char::from_u32(c).unwrap(); - // check_escape_warning(yyscanner); - // addlitchar(c, yyscanner); + // self.check_escape_warning(); self.addlitchar(c); - // if (c == '\0' || IS_HIGHBIT_SET(c)) - // yyextra->saw_non_ascii = true; + if c == '\0' || is_highbit_set(c) != 0 { + self.saw_non_ascii = true; + } } } RuleKind::xe8 => { { // unsigned char c = strtoul(yytext + 2, NULL, 16); + // + // check_escape_warning(yyscanner); + // addlitchar(c, yyscanner); + // if (c == '\0' || IS_HIGHBIT_SET(c)) + // yyextra->saw_non_ascii = true; + let c = u32::from_str_radix( &self.input[self.index_bytes + 1..self.index_bytes + self.yyleng], 16, @@ -647,69 +5869,94 @@ impl Lexer { .unwrap(); let c = char::from_u32(c).unwrap(); - // check_escape_warning(yyscanner); - // addlitchar(c, yyscanner); + // self.check_escape_warning(); self.addlitchar(c); - // if (c == '\0' || IS_HIGHBIT_SET(c)) - // yyextra->saw_non_ascii = true; + if c == '\0' || is_highbit_set(c) != 0 { + self.saw_non_ascii = true; + } } } RuleKind::xe9 => { { - /* This is only needed for \ just before EOF */ + // /* This is only needed for \ just before EOF */ // addlitchar(yytext[0], yyscanner); + + /* This is only needed for \ just before EOF */ let c = self.input[self.index_bytes..].chars().next().unwrap(); self.addlitchar(c); } } RuleKind::xq4 => { - yyerror("unterminated quoted string"); + yyerror!("unterminated quoted string"); } RuleKind::xe10 => { - yyerror("unterminated quoted string"); + yyerror!("unterminated quoted string"); } RuleKind::xus4 => { - yyerror("unterminated quoted string"); + yyerror!("unterminated quoted string"); } RuleKind::INITIAL10 => { { + // SET_YYLLOC(); + // yyextra->dolqstart = pstrdup(yytext); + // BEGIN(xdolq); + // startlit(); + self.set_yylloc(); self.dolqstart = self.yytext(); - // yyextra->dolqstart = pstrdup(yytext); self.begin(State::xdolq); self.literal.clear(); } } RuleKind::INITIAL11 => { { + // SET_YYLLOC(); + // /* throw back all but the initial "$" */ + // yyless(1); + // /* and treat it as {other} */ + // return yytext[0]; + self.set_yylloc(); /* throw back all but the initial "$" */ self.yyless(1); /* and treat it as {other} */ - // これ何だろう - return Some(TokenKind::RAW(self.yytext())); + return Ok(Some(TokenKind::RAW(self.yytext()))); } } RuleKind::xdolq1 => { { // if (strcmp(yytext, yyextra->dolqstart) == 0) + // { + // pfree(yyextra->dolqstart); + // yyextra->dolqstart = NULL; + // BEGIN(INITIAL); + // yylval->str = litbufdup(yyscanner); + // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; + // return SCONST; + // } + // else + // { + // /* + // * When we fail to match $...$ to dolqstart, transfer + // * the $... part to the output, but put back the final + // * $ for rescanning. Consider $delim$...$junk$delim$ + // */ + // addlit(yytext, yyleng - 1, yyscanner); + // yyless(yyleng - 1); + // } + if self.yytext() == self.dolqstart { - // pfree(yyextra->dolqstart); - // yyextra->dolqstart = NULL; self.dolqstart = "".to_string(); self.begin(State::INITIAL); - // yylval->str = litbufdup(yyscanner); self.yylval = Yylval::Str(self.literal.clone()); - // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; self.set_yyllocend(); - return Some(TokenKind::SCONST); + return Ok(Some(TokenKind::SCONST)); } else { /* * When we fail to match $...$ to dolqstart, transfer * the $... part to the output, but put back the final * $ for rescanning. Consider $delim$...$junk$delim$ */ - // addlit(yytext, yyleng - 1, yyscanner); self.addlit(self.yyleng - 1); self.yyless(self.yyleng - 1); } @@ -718,180 +5965,253 @@ impl Lexer { RuleKind::xdolq2 => { { // addlit(yytext, yyleng, yyscanner); + self.addlit(self.yyleng); } } RuleKind::xdolq3 => { { // addlit(yytext, yyleng, yyscanner); + self.addlit(self.yyleng); } } RuleKind::xdolq4 => { { - /* This is only needed for $ inside the quoted text */ + // /* This is only needed for $ inside the quoted text */ // addlitchar(yytext[0], yyscanner); + let c = self.yytext().chars().next().unwrap(); self.addlitchar(c); } } RuleKind::xdolq5 => { - yyerror("unterminated dollar-quoted string"); + yyerror!("unterminated dollar-quoted string"); } RuleKind::INITIAL12 => { - self.set_yylloc(); - self.begin(State::xd); - self.literal.clear(); + { + // SET_YYLLOC(); + // BEGIN(xd); + // startlit(); + + self.set_yylloc(); + self.begin(State::xd); + self.literal.clear(); + } } RuleKind::INITIAL13 => { - self.set_yylloc(); - self.begin(State::xui); - self.literal.clear(); + { + // SET_YYLLOC(); + // BEGIN(xui); + // startlit(); + + self.set_yylloc(); + self.begin(State::xui); + self.literal.clear(); + } } RuleKind::xd1 => { { // char *ident; + // + // BEGIN(INITIAL); + // if (yyextra->literallen == 0) + // yyerror("zero-length delimited identifier"); + // ident = litbufdup(yyscanner); + // if (yyextra->literallen >= NAMEDATALEN) + // truncate_identifier(ident, yyextra->literallen, true); + // yylval->str = ident; + // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; + // return IDENT; self.begin(State::INITIAL); - // if (yyextra->literallen == 0) if self.literal.len() == 0 { - yyerror("zero-length delimited identifier"); + yyerror!("zero-length delimited identifier"); } - // ident = litbufdup(yyscanner); let ident = self.literal.clone(); - // if (yyextra->literallen >= NAMEDATALEN) if self.literal.len() >= NAMEDATALEN { - // truncate_identifier(ident, yyextra->literallen, true); - // truncate_identifier(&mut ident, self.literal.len(), true); - panic!(); + // TODO + // panic!(); } - // yylval->str = ident; self.yylval = Yylval::Str(ident); - // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; self.set_yyllocend(); - return Some(TokenKind::IDENT); + return Ok(Some(TokenKind::IDENT)); } } RuleKind::xui1 => { { + // BEGIN(INITIAL); + // if (yyextra->literallen == 0) + // yyerror("zero-length delimited identifier"); + // /* can't truncate till after we de-escape the ident */ + // yylval->str = litbufdup(yyscanner); + // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; + // return UIDENT; + self.begin(State::INITIAL); if self.literal.len() == 0 { - yyerror("zero-length delimited identifier"); + yyerror!("zero-length delimited identifier"); } /* can't truncate till after we de-escape the ident */ - // yylval->str = litbufdup(yyscanner); self.yylval = Yylval::Str(self.yytext()); - // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; self.set_yyllocend(); - return Some(TokenKind::UIDENT); + return Ok(Some(TokenKind::UIDENT)); } } RuleKind::xd2 => { { // addlitchar('"', yyscanner); + self.addlitchar('"'); } } RuleKind::xui2 => { { // addlitchar('"', yyscanner); + self.addlitchar('"'); } } RuleKind::xd3 => { { // addlit(yytext, yyleng, yyscanner); + self.addlit(self.yyleng); } } RuleKind::xui3 => { { // addlit(yytext, yyleng, yyscanner); + self.addlit(self.yyleng); } } RuleKind::xd4 => { - yyerror("unterminated quoted identifier"); + yyerror!("unterminated quoted identifier"); } RuleKind::xui4 => { - yyerror("unterminated quoted identifier"); + yyerror!("unterminated quoted identifier"); } RuleKind::INITIAL14 => { { // char *ident; + // + // SET_YYLLOC(); + // /* throw back all but the initial u/U */ + // yyless(1); + // /* and treat it as {identifier} */ + // ident = downcase_truncate_identifier(yytext, yyleng, true); + // yylval->str = ident; + // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; + // return IDENT; self.set_yylloc(); - /* throw back all but the initial u/U */ self.yyless(1); - /* and treat it as {identifier} */ - // ident = downcase_truncate_identifier(yytext, yyleng, true); - // let ident = self.downcase_truncate_identifier(self.yyleng, true); - // // yylval->str = ident; - // self.yylval = Yylval::Str(ident); - // // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; - // self.set_yyllocend(); - // return Some(TokenKind::IDENT); - panic!(); + // FIXME + // let ident = downcase_truncate_identifier(yytext, yyleng, true); + let ident = self.yytext(); + self.yylval = Yylval::Str(ident); + self.set_yyllocend(); + return Ok(Some(TokenKind::IDENT)); } } RuleKind::INITIAL15 => { - self.set_yylloc(); - return Some(TokenKind::TYPECAST); + { + // SET_YYLLOC(); + // return TYPECAST; + + self.set_yylloc(); + return Ok(Some(TokenKind::TYPECAST)); + } } RuleKind::INITIAL16 => { - self.set_yylloc(); - return Some(TokenKind::DOT_DOT); + { + // SET_YYLLOC(); + // return DOT_DOT; + + self.set_yylloc(); + return Ok(Some(TokenKind::DOT_DOT)); + } } RuleKind::INITIAL17 => { - self.set_yylloc(); - return Some(TokenKind::COLON_EQUALS); + { + // SET_YYLLOC(); + // return COLON_EQUALS; + + self.set_yylloc(); + return Ok(Some(TokenKind::COLON_EQUALS)); + } } RuleKind::INITIAL18 => { - self.set_yylloc(); - return Some(TokenKind::EQUALS_GREATER); + { + // SET_YYLLOC(); + // return EQUALS_GREATER; + + self.set_yylloc(); + return Ok(Some(TokenKind::EQUALS_GREATER)); + } } RuleKind::INITIAL19 => { - self.set_yylloc(); - return Some(TokenKind::LESS_EQUALS); + { + // SET_YYLLOC(); + // return LESS_EQUALS; + + self.set_yylloc(); + return Ok(Some(TokenKind::LESS_EQUALS)); + } } RuleKind::INITIAL20 => { - self.set_yylloc(); - return Some(TokenKind::GREATER_EQUALS); + { + // SET_YYLLOC(); + // return GREATER_EQUALS; + + self.set_yylloc(); + return Ok(Some(TokenKind::GREATER_EQUALS)); + } } RuleKind::INITIAL21 => { { + // /* We accept both "<>" and "!=" as meaning NOT_EQUALS */ + // SET_YYLLOC(); + // return NOT_EQUALS; + /* We accept both "<>" and "!=" as meaning NOT_EQUALS */ self.set_yylloc(); - return Some(TokenKind::NOT_EQUALS); + return Ok(Some(TokenKind::NOT_EQUALS)); } } RuleKind::INITIAL22 => { { + // /* We accept both "<>" and "!=" as meaning NOT_EQUALS */ + // SET_YYLLOC(); + // return NOT_EQUALS; + /* We accept both "<>" and "!=" as meaning NOT_EQUALS */ self.set_yylloc(); - return Some(TokenKind::NOT_EQUALS); + return Ok(Some(TokenKind::NOT_EQUALS)); } } RuleKind::INITIAL23 => { - self.set_yylloc(); - return Some(TokenKind::RAW(self.yytext()[0..1].to_string())); + { + // SET_YYLLOC(); + // return yytext[0]; + + self.set_yylloc(); + return Ok(Some(TokenKind::RAW(self.yytext()[0..1].to_string()))); + } } RuleKind::INITIAL24 => { { - /* - * Check for embedded slash-star or dash-dash; those - * are comment starts, so operator must stop there. - * Note that slash-star or dash-dash at the first - * character will match a prior rule, not this one. - */ + // /* + // * Check for embedded slash-star or dash-dash; those + // * are comment starts, so operator must stop there. + // * Note that slash-star or dash-dash at the first + // * character will match a prior rule, not this one. + // */ // int nchars = yyleng; - let mut nchars = self.yyleng; // char *slashstar = strstr(yytext, "/*"); // char *dashdash = strstr(yytext, "--"); - let yytext = self.yytext(); - let mut slashstar = yytext.find("/*"); - let dashdash = yytext.find("--"); - + // // if (slashstar && dashdash) // { // /* if both appear, take the first one */ @@ -902,6 +6222,102 @@ impl Lexer { // slashstar = dashdash; // if (slashstar) // nchars = slashstar - yytext; + // + // /* + // * For SQL compatibility, '+' and '-' cannot be the + // * last char of a multi-char operator unless the operator + // * contains chars that are not in SQL operators. + // * The idea is to lex '=-' as two operators, but not + // * to forbid operator names like '?-' that could not be + // * sequences of SQL operators. + // */ + // if (nchars > 1 && + // (yytext[nchars - 1] == '+' || + // yytext[nchars - 1] == '-')) + // { + // int ic; + // + // for (ic = nchars - 2; ic >= 0; ic--) + // { + // char c = yytext[ic]; + // if (c == '~' || c == '!' || c == '@' || + // c == '#' || c == '^' || c == '&' || + // c == '|' || c == '`' || c == '?' || + // c == '%') + // break; + // } + // if (ic < 0) + // { + // /* + // * didn't find a qualifying character, so remove + // * all trailing [+-] + // */ + // do { + // nchars--; + // } while (nchars > 1 && + // (yytext[nchars - 1] == '+' || + // yytext[nchars - 1] == '-')); + // } + // } + // + // SET_YYLLOC(); + // + // if (nchars < yyleng) + // { + // /* Strip the unwanted chars from the token */ + // yyless(nchars); + // /* + // * If what we have left is only one char, and it's + // * one of the characters matching "self", then + // * return it as a character token the same way + // * that the "self" rule would have. + // */ + // if (nchars == 1 && + // strchr(",()[].;:+-*/%^<>=", yytext[0])) + // return yytext[0]; + // /* + // * Likewise, if what we have left is two chars, and + // * those match the tokens ">=", "<=", "=>", "<>" or + // * "!=", then we must return the appropriate token + // * rather than the generic Op. + // */ + // if (nchars == 2) + // { + // if (yytext[0] == '=' && yytext[1] == '>') + // return EQUALS_GREATER; + // if (yytext[0] == '>' && yytext[1] == '=') + // return GREATER_EQUALS; + // if (yytext[0] == '<' && yytext[1] == '=') + // return LESS_EQUALS; + // if (yytext[0] == '<' && yytext[1] == '>') + // return NOT_EQUALS; + // if (yytext[0] == '!' && yytext[1] == '=') + // return NOT_EQUALS; + // } + // } + // + // /* + // * Complain if operator is too long. Unlike the case + // * for identifiers, we make this an error not a notice- + // * and-truncate, because the odds are we are looking at + // * a syntactic mistake anyway. + // */ + // if (nchars >= NAMEDATALEN) + // yyerror("operator too long"); + // + // yylval->str = pstrdup(yytext); + // return Op; + + /* + * Check for embedded slash-star or dash-dash; those + * are comment starts, so operator must stop there. + * Note that slash-star or dash-dash at the first + * character will match a prior rule, not this one. + */ + let mut nchars = self.yyleng; + let yytext = self.yytext(); + let mut slashstar = yytext.find("/*"); + let dashdash = yytext.find("--"); let dashdash_first = match (&slashstar, &dashdash) { (Some(slashstar_index), Some(dashdash_index)) @@ -929,35 +6345,6 @@ impl Lexer { * to forbid operator names like '?-' that could not be * sequences of SQL operators. */ - // if (nchars > 1 && - // (yytext[nchars - 1] == '+' || - // yytext[nchars - 1] == '-')) - // { - // int ic; - // - // for (ic = nchars - 2; ic >= 0; ic--) - // { - // char c = yytext[ic]; - // if (c == '~' || c == '!' || c == '@' || - // c == '#' || c == '^' || c == '&' || - // c == '|' || c == '`' || c == '?' || - // c == '%') - // break; - // } - // if (ic < 0) - // { - // /* - // * didn't find a qualifying character, so remove - // * all trailing [+-] - // */ - // do { - // nchars--; - // } while (nchars > 1 && - // (yytext[nchars - 1] == '+' || - // yytext[nchars - 1] == '-')); - // } - // } - if nchars > 1 && (get_char_by_byte_pos(&yytext, nchars - 1) == '+' || get_char_by_byte_pos(&yytext, nchars - 1) == '-') @@ -984,40 +6371,6 @@ impl Lexer { self.set_yylloc(); - // if (nchars < yyleng) - // { - // /* Strip the unwanted chars from the token */ - // yyless(nchars); - // /* - // * If what we have left is only one char, and it's - // * one of the characters matching "self", then - // * return it as a character token the same way - // * that the "self" rule would have. - // */ - // if (nchars == 1 && - // strchr(",()[].;:+-*/%^<>=", yytext[0])) - // return yytext[0]; - // /* - // * Likewise, if what we have left is two chars, and - // * those match the tokens ">=", "<=", "=>", "<>" or - // * "!=", then we must return the appropriate token - // * rather than the generic Op. - // */ - // if (nchars == 2) - // { - // if (yytext[0] == '=' && yytext[1] == '>') - // return EQUALS_GREATER; - // if (yytext[0] == '>' && yytext[1] == '=') - // return GREATER_EQUALS; - // if (yytext[0] == '<' && yytext[1] == '=') - // return LESS_EQUALS; - // if (yytext[0] == '<' && yytext[1] == '>') - // return NOT_EQUALS; - // if (yytext[0] == '!' && yytext[1] == '=') - // return NOT_EQUALS; - // } - // } - if nchars < self.yyleng { /* Strip the unwanted chars from the token */ self.yyless(nchars); @@ -1032,7 +6385,7 @@ impl Lexer { .find(get_char_by_byte_pos(&yytext, 0)) .is_some() { - return Some(TokenKind::RAW(yytext[0..1].to_string())); + return Ok(Some(TokenKind::RAW(yytext[0..1].to_string()))); } /* * Likewise, if what we have left is two chars, and @@ -1042,19 +6395,19 @@ impl Lexer { */ if nchars == 2 { if &yytext[0..2] == "=>" { - return Some(TokenKind::EQUALS_GREATER); + return Ok(Some(TokenKind::EQUALS_GREATER)); } if &yytext[0..2] == ">=" { - return Some(TokenKind::GREATER_EQUALS); + return Ok(Some(TokenKind::GREATER_EQUALS)); } if &yytext[0..2] == "<=" { - return Some(TokenKind::LESS_EQUALS); + return Ok(Some(TokenKind::LESS_EQUALS)); } if &yytext[0..2] == "<>" { - return Some(TokenKind::NOT_EQUALS); + return Ok(Some(TokenKind::NOT_EQUALS)); } if &yytext[0..2] == "!=" { - return Some(TokenKind::NOT_EQUALS); + return Ok(Some(TokenKind::NOT_EQUALS)); } } } @@ -1066,157 +6419,221 @@ impl Lexer { * a syntactic mistake anyway. */ if nchars >= NAMEDATALEN { - yyerror("operator too long"); + yyerror!("operator too long"); } - // yylval->str = pstrdup(yytext); - // return Op; self.yylval = Yylval::Str(yytext); - return Some(TokenKind::Op); + return Ok(Some(TokenKind::Op)); } } RuleKind::INITIAL25 => { - self.set_yylloc(); - self.yylval = Yylval::I(i32::from_str_radix(&self.yytext()[1..], 10).unwrap()); - return Some(TokenKind::PARAM); + { + // SET_YYLLOC(); + // yylval->ival = atol(yytext + 1); + // return PARAM; + + self.set_yylloc(); + self.yylval = + Yylval::I(i32::from_str_radix(&self.yytext()[1..], 10).unwrap()); + return Ok(Some(TokenKind::PARAM)); + } } RuleKind::INITIAL26 => { { + // SET_YYLLOC(); + // return process_integer_literal(yytext, yylval, 10); + self.set_yylloc(); - // return self.process_integer_literal(yytext, yylval, 10); - return self.process_integer_literal(10); + return Ok(self.process_integer_literal(10)); } } RuleKind::INITIAL27 => { { + // SET_YYLLOC(); + // return process_integer_literal(yytext, yylval, 16); + self.set_yylloc(); - // return self.process_integer_literal(yytext, yylval, 16); - return self.process_integer_literal(16); + return Ok(self.process_integer_literal(16)); } } RuleKind::INITIAL28 => { { - self.set_yylloc(); + // SET_YYLLOC(); // return process_integer_literal(yytext, yylval, 8); - return self.process_integer_literal(8); + + self.set_yylloc(); + return Ok(self.process_integer_literal(8)); } } RuleKind::INITIAL29 => { { - self.set_yylloc(); + // SET_YYLLOC(); // return process_integer_literal(yytext, yylval, 2); - return self.process_integer_literal(2); + + self.set_yylloc(); + return Ok(self.process_integer_literal(2)); } } RuleKind::INITIAL30 => { - self.set_yylloc(); - yyerror("invalid hexadecimal integer"); + { + // SET_YYLLOC(); + // yyerror("invalid hexadecimal integer"); + + self.set_yylloc(); + yyerror!("invalid hexadecimal integer"); + } } RuleKind::INITIAL31 => { - self.set_yylloc(); - yyerror("invalid octal integer"); + { + // SET_YYLLOC(); + // yyerror("invalid octal integer"); + + self.set_yylloc(); + yyerror!("invalid octal integer"); + } } RuleKind::INITIAL32 => { - self.set_yylloc(); - yyerror("invalid binary integer"); + { + // SET_YYLLOC(); + // yyerror("invalid binary integer"); + + self.set_yylloc(); + yyerror!("invalid binary integer"); + } } RuleKind::INITIAL33 => { { - self.set_yylloc(); + // SET_YYLLOC(); // yylval->str = pstrdup(yytext); + // return FCONST; + + self.set_yylloc(); self.yylval = Yylval::Str(self.yytext()); - return Some(TokenKind::FCONST); + return Ok(Some(TokenKind::FCONST)); } } RuleKind::INITIAL34 => { { - /* throw back the .., and treat as integer */ + // /* throw back the .., and treat as integer */ // yyless(yyleng - 2); + // SET_YYLLOC(); + // return process_integer_literal(yytext, yylval, 10); + + /* throw back the .., and treat as integer */ self.yyless(self.yyleng - 2); self.set_yylloc(); - // return process_integer_literal(yytext, yylval, 10); - return self.process_integer_literal(10); + return Ok(self.process_integer_literal(10)); } } RuleKind::INITIAL35 => { { - self.set_yylloc(); + // SET_YYLLOC(); // yylval->str = pstrdup(yytext); + // return FCONST; + + self.set_yylloc(); self.yylval = Yylval::Str(self.yytext()); - return Some(TokenKind::FCONST); + return Ok(Some(TokenKind::FCONST)); } } RuleKind::INITIAL36 => { - self.set_yylloc(); - yyerror("trailing junk after numeric literal"); + { + // SET_YYLLOC(); + // yyerror("trailing junk after numeric literal"); + + self.set_yylloc(); + yyerror!("trailing junk after numeric literal"); + } } RuleKind::INITIAL37 => { - self.set_yylloc(); - yyerror("trailing junk after numeric literal"); + { + // SET_YYLLOC(); + // yyerror("trailing junk after numeric literal"); + + self.set_yylloc(); + yyerror!("trailing junk after numeric literal"); + } } RuleKind::INITIAL38 => { - self.set_yylloc(); - yyerror("trailing junk after numeric literal"); + { + // SET_YYLLOC(); + // yyerror("trailing junk after numeric literal"); + + self.set_yylloc(); + yyerror!("trailing junk after numeric literal"); + } } RuleKind::INITIAL39 => { - self.set_yylloc(); - yyerror("trailing junk after numeric literal"); + { + // SET_YYLLOC(); + // yyerror("trailing junk after numeric literal"); + + self.set_yylloc(); + yyerror!("trailing junk after numeric literal"); + } } RuleKind::INITIAL40 => { - self.set_yylloc(); - yyerror("trailing junk after numeric literal"); - } - RuleKind::INITIAL41 => { - self.set_yylloc(); - yyerror("trailing junk after numeric literal"); - } - RuleKind::INITIAL42 => { - self.set_yylloc(); - yyerror("trailing junk after numeric literal"); - } - RuleKind::INITIAL43 => { { // int kwnum; // char *ident; - - self.set_yylloc(); - - /* Is it a keyword? */ + // + // SET_YYLLOC(); + // + // /* Is it a keyword? */ // kwnum = ScanKeywordLookup(yytext, // yyextra->keywordlist); // if (kwnum >= 0) // { - // yylval->keyword = GetScanKeyword(kwnum, - // yyextra->keywordlist); - // return yyextra->keyword_tokens[kwnum]; + // yylval->keyword = GetScanKeyword(kwnum, + // yyextra->keywordlist); + // return yyextra->keyword_tokens[kwnum]; // } + // + // /* + // * No. Convert the identifier to lower case, and truncate + // * if necessary. + // */ + // ident = downcase_truncate_identifier(yytext, yyleng, true); + // yylval->str = ident; + // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; + // return IDENT; + + self.set_yylloc(); + /* Is it a keyword? */ let yytext = self.yytext(); if let Some((kw, kw_token)) = self.get_keyword(&yytext) { self.yylval = Yylval::Keyword(kw); - return Some(TokenKind::KEYWORD(kw_token)); + return Ok(Some(TokenKind::KEYWORD(kw_token))); } /* * No. Convert the identifier to lower case, and truncate * if necessary. */ - // ident = downcase_truncate_identifier(yytext, yyleng, true); - // yylval->str = ident; - // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; let ident = self.downcase_truncate_identifier(self.yyleng, true); self.yylval = Yylval::Str(ident); self.set_yyllocend(); - return Some(TokenKind::IDENT); + return Ok(Some(TokenKind::IDENT)); } } - RuleKind::INITIAL44 => { - self.set_yylloc(); - return Some(TokenKind::RAW(yytext[0..1].to_string())); + RuleKind::INITIAL41 => { + { + // SET_YYLLOC(); + // return yytext[0]; + + self.set_yylloc(); + return Ok(Some(TokenKind::RAW(yytext[0..1].to_string()))); + } } - RuleKind::INITIAL45 => { - self.set_yylloc(); - yyterminate!(); + RuleKind::INITIAL42 => { + { + // SET_YYLLOC(); + // yyterminate(); + + self.set_yylloc(); + yyterminate!(); + } } } self.advance(); @@ -1224,685 +6641,762 @@ impl Lexer { } } -pub fn get_rules() -> Vec { +#[cfg(feature = "regex-match")] +pub fn get_rules() -> Vec { + use super::generated::RuleKind; + use crate::lexer::Rule; + vec![ // {whitespace} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^(((([ \t\n\r\f])+)))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(((([ \t\n\r\f\v])+)))"#).unwrap(), kind: RuleKind::INITIAL1, + eof: false, }, // {comment} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^(((--([^\n\r])*)))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(((--([^\n\r])*)))"#).unwrap(), kind: RuleKind::INITIAL2, + eof: false, }, // {xcstart} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((\/\*([\~\!\@\#\^\&\|\`\?\+\-\*\/\%<>\=])*))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((\/\*([\~\!\@\#\^\&\|\`\?\+\-\*\/\%<>\=])*))"#).unwrap(), kind: RuleKind::INITIAL3, + eof: false, }, // {xcstart} Rule { state: State::xc, - pattern: Regex::new(r#"(?-u)^((\/\*([\~\!\@\#\^\&\|\`\?\+\-\*\/\%<>\=])*))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((\/\*([\~\!\@\#\^\&\|\`\?\+\-\*\/\%<>\=])*))"#).unwrap(), kind: RuleKind::xc1, + eof: false, }, // {xcstop} Rule { state: State::xc, - pattern: Regex::new(r#"(?-u)^((\*+\/))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((\*+\/))"#).unwrap(), kind: RuleKind::xc2, + eof: false, }, // {xcinside} Rule { state: State::xc, - pattern: Regex::new(r#"(?-u)^(([^*/]+))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(([^*/]+))"#).unwrap(), kind: RuleKind::xc3, + eof: false, }, // {op_chars} Rule { state: State::xc, - pattern: Regex::new(r#"(?-u)^(([\~\!\@\#\^\&\|\`\?\+\-\*\/\%<>\=]))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(([\~\!\@\#\^\&\|\`\?\+\-\*\/\%<>\=]))"#).unwrap(), kind: RuleKind::xc4, + eof: false, }, // \*+ Rule { state: State::xc, - pattern: Regex::new(r#"(?-u)^(\*+)"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(\*+)"#).unwrap(), kind: RuleKind::xc5, + eof: false, }, // <> Rule { state: State::xc, - pattern: Regex::new(r#"(?-u)^(^$)"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(^$)"#).unwrap(), kind: RuleKind::xc6, + eof: true, }, // {xbstart} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^(([bB](')))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(([bB](')))"#).unwrap(), kind: RuleKind::INITIAL4, + eof: false, }, // {xhinside} Rule { state: State::xh, - pattern: Regex::new(r#"(?-u)^(([^']*))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(([^']*))"#).unwrap(), kind: RuleKind::xh1, + eof: false, }, // {xbinside} Rule { state: State::xb, - pattern: Regex::new(r#"(?-u)^(([^']*))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(([^']*))"#).unwrap(), kind: RuleKind::xb1, + eof: false, }, // <> Rule { state: State::xb, - pattern: Regex::new(r#"(?-u)^(^$)"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(^$)"#).unwrap(), kind: RuleKind::xb2, + eof: true, }, // {xhstart} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^(([xX](')))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(([xX](')))"#).unwrap(), kind: RuleKind::INITIAL5, + eof: false, }, // <> Rule { state: State::xh, - pattern: Regex::new(r#"(?-u)^(^$)"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(^$)"#).unwrap(), kind: RuleKind::xh2, + eof: true, }, // {xnstart} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^(([nN](')))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(([nN](')))"#).unwrap(), kind: RuleKind::INITIAL6, + eof: false, }, // {xqstart} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^(((')))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(((')))"#).unwrap(), kind: RuleKind::INITIAL7, + eof: false, }, // {xestart} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^(([eE](')))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(([eE](')))"#).unwrap(), kind: RuleKind::INITIAL8, + eof: false, }, // {xusstart} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^(([uU]&(')))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(([uU]&(')))"#).unwrap(), kind: RuleKind::INITIAL9, + eof: false, }, // {quote} Rule { state: State::xb, - pattern: Regex::new(r#"(?-u)^(('))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(('))"#).unwrap(), kind: RuleKind::xb3, + eof: false, }, // {quote} Rule { state: State::xh, - pattern: Regex::new(r#"(?-u)^(('))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(('))"#).unwrap(), kind: RuleKind::xh3, + eof: false, }, // {quote} Rule { state: State::xq, - pattern: Regex::new(r#"(?-u)^(('))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(('))"#).unwrap(), kind: RuleKind::xq1, + eof: false, }, // {quote} Rule { state: State::xe, - pattern: Regex::new(r#"(?-u)^(('))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(('))"#).unwrap(), kind: RuleKind::xe1, + eof: false, }, // {quote} Rule { state: State::xus, - pattern: Regex::new(r#"(?-u)^(('))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(('))"#).unwrap(), kind: RuleKind::xus1, + eof: false, }, // {quotecontinue} Rule { state: State::xqs, - pattern: Regex::new(r#"(?-u)^((((((([ \t\f])))*([\n\r])((([ \t\n\r\f])+))*))(')))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((((((([ \t\f\v])))*([\n\r])((([ \t\n\r\f\v])+))*))(')))"#).unwrap(), kind: RuleKind::xqs1, + eof: false, }, // {quotecontinuefail} Rule { state: State::xqs, - pattern: Regex::new(r#"(?-u)^((((([ \t\n\r\f])+))*-?))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((((([ \t\n\r\f\v])+))*-?))"#).unwrap(), kind: RuleKind::xqs2, + eof: false, }, // {other} Rule { state: State::xqs, - pattern: Regex::new(r#"(?-u)^((.))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((.))"#).unwrap(), kind: RuleKind::xqs3, + eof: false, }, // <> Rule { state: State::xqs, - pattern: Regex::new(r#"(?-u)^(^$)"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(^$)"#).unwrap(), kind: RuleKind::xqs4, + eof: true, }, // {xqdouble} Rule { state: State::xq, - pattern: Regex::new(r#"(?-u)^(((')(')))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(((')(')))"#).unwrap(), kind: RuleKind::xq2, + eof: false, }, // {xqdouble} Rule { state: State::xe, - pattern: Regex::new(r#"(?-u)^(((')(')))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(((')(')))"#).unwrap(), kind: RuleKind::xe2, + eof: false, }, // {xqdouble} Rule { state: State::xus, - pattern: Regex::new(r#"(?-u)^(((')(')))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(((')(')))"#).unwrap(), kind: RuleKind::xus2, + eof: false, }, // {xqinside} Rule { state: State::xq, - pattern: Regex::new(r#"(?-u)^(([^']+))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(([^']+))"#).unwrap(), kind: RuleKind::xq3, + eof: false, }, // {xqinside} Rule { state: State::xus, - pattern: Regex::new(r#"(?-u)^(([^']+))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(([^']+))"#).unwrap(), kind: RuleKind::xus3, + eof: false, }, // {xeinside} Rule { state: State::xe, - pattern: Regex::new(r#"(?-u)^(([^\\']+))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(([^\\']+))"#).unwrap(), kind: RuleKind::xe3, + eof: false, }, // {xeunicode} Rule { state: State::xe, - pattern: Regex::new(r#"(?-u)^(([\\](u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(([\\](u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})))"#).unwrap(), kind: RuleKind::xe4, + eof: false, }, // {xeunicode} Rule { state: State::xeu, - pattern: Regex::new(r#"(?-u)^(([\\](u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(([\\](u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})))"#).unwrap(), kind: RuleKind::xeu1, + eof: false, }, // . Rule { state: State::xeu, - pattern: Regex::new(r#"(?-u)^(.)"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(.)"#).unwrap(), kind: RuleKind::xeu2, + eof: false, }, // \n Rule { state: State::xeu, - pattern: Regex::new(r#"(?-u)^(\n)"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(\n)"#).unwrap(), kind: RuleKind::xeu3, + eof: false, }, // <> Rule { state: State::xeu, - pattern: Regex::new(r#"(?-u)^(^$)"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(^$)"#).unwrap(), kind: RuleKind::xeu4, + eof: true, }, // {xeunicodefail} Rule { state: State::xe, - pattern: Regex::new(r#"(?-u)^(([\\](u[0-9A-Fa-f]{0,3}|U[0-9A-Fa-f]{0,7})))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(([\\](u[0-9A-Fa-f]{0,3}|U[0-9A-Fa-f]{0,7})))"#).unwrap(), kind: RuleKind::xe5, + eof: false, }, // {xeunicodefail} Rule { state: State::xeu, - pattern: Regex::new(r#"(?-u)^(([\\](u[0-9A-Fa-f]{0,3}|U[0-9A-Fa-f]{0,7})))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(([\\](u[0-9A-Fa-f]{0,3}|U[0-9A-Fa-f]{0,7})))"#).unwrap(), kind: RuleKind::xeu5, + eof: false, }, // {xeescape} Rule { state: State::xe, - pattern: Regex::new(r#"(?-u)^(([\\][^0-7]))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(([\\][^0-7]))"#).unwrap(), kind: RuleKind::xe6, + eof: false, }, // {xeoctesc} Rule { state: State::xe, - pattern: Regex::new(r#"(?-u)^(([\\][0-7]{1,3}))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(([\\][0-7]{1,3}))"#).unwrap(), kind: RuleKind::xe7, + eof: false, }, // {xehexesc} Rule { state: State::xe, - pattern: Regex::new(r#"(?-u)^(([\\]x[0-9A-Fa-f]{1,2}))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(([\\]x[0-9A-Fa-f]{1,2}))"#).unwrap(), kind: RuleKind::xe8, + eof: false, }, // . Rule { state: State::xe, - pattern: Regex::new(r#"(?-u)^(.)"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(.)"#).unwrap(), kind: RuleKind::xe9, + eof: false, }, // <> Rule { state: State::xq, - pattern: Regex::new(r#"(?-u)^(^$)"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(^$)"#).unwrap(), kind: RuleKind::xq4, + eof: true, }, // <> Rule { state: State::xe, - pattern: Regex::new(r#"(?-u)^(^$)"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(^$)"#).unwrap(), kind: RuleKind::xe10, + eof: true, }, // <> Rule { state: State::xus, - pattern: Regex::new(r#"(?-u)^(^$)"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(^$)"#).unwrap(), kind: RuleKind::xus4, + eof: true, }, // {dolqdelim} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((\$(([A-Za-z\x80-\xFF_])([A-Za-z\x80-\xFF_0-9])*)?\$))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((\$(([A-Za-z\x80-\xFF_])([A-Za-z\x80-\xFF_0-9])*)?\$))"#).unwrap(), kind: RuleKind::INITIAL10, + eof: false, }, // {dolqfailed} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((\$([A-Za-z\x80-\xFF_])([A-Za-z\x80-\xFF_0-9])*))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((\$([A-Za-z\x80-\xFF_])([A-Za-z\x80-\xFF_0-9])*))"#).unwrap(), kind: RuleKind::INITIAL11, + eof: false, }, // {dolqdelim} Rule { state: State::xdolq, - pattern: Regex::new(r#"(?-u)^((\$(([A-Za-z\x80-\xFF_])([A-Za-z\x80-\xFF_0-9])*)?\$))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((\$(([A-Za-z\x80-\xFF_])([A-Za-z\x80-\xFF_0-9])*)?\$))"#).unwrap(), kind: RuleKind::xdolq1, + eof: false, }, // {dolqinside} Rule { state: State::xdolq, - pattern: Regex::new(r#"(?-u)^(([^$]+))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(([^$]+))"#).unwrap(), kind: RuleKind::xdolq2, + eof: false, }, // {dolqfailed} Rule { state: State::xdolq, - pattern: Regex::new(r#"(?-u)^((\$([A-Za-z\x80-\xFF_])([A-Za-z\x80-\xFF_0-9])*))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((\$([A-Za-z\x80-\xFF_])([A-Za-z\x80-\xFF_0-9])*))"#).unwrap(), kind: RuleKind::xdolq3, + eof: false, }, // . Rule { state: State::xdolq, - pattern: Regex::new(r#"(?-u)^(.)"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(.)"#).unwrap(), kind: RuleKind::xdolq4, + eof: false, }, // <> Rule { state: State::xdolq, - pattern: Regex::new(r#"(?-u)^(^$)"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(^$)"#).unwrap(), kind: RuleKind::xdolq5, + eof: true, }, // {xdstart} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^(((\")))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(((\")))"#).unwrap(), kind: RuleKind::INITIAL12, + eof: false, }, // {xuistart} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^(([uU]&(\")))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(([uU]&(\")))"#).unwrap(), kind: RuleKind::INITIAL13, + eof: false, }, // {xdstop} Rule { state: State::xd, - pattern: Regex::new(r#"(?-u)^(((\")))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(((\")))"#).unwrap(), kind: RuleKind::xd1, + eof: false, }, // {dquote} Rule { state: State::xui, - pattern: Regex::new(r#"(?-u)^((\"))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((\"))"#).unwrap(), kind: RuleKind::xui1, + eof: false, }, // {xddouble} Rule { state: State::xd, - pattern: Regex::new(r#"(?-u)^(((\")(\")))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(((\")(\")))"#).unwrap(), kind: RuleKind::xd2, + eof: false, }, // {xddouble} Rule { state: State::xui, - pattern: Regex::new(r#"(?-u)^(((\")(\")))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(((\")(\")))"#).unwrap(), kind: RuleKind::xui2, + eof: false, }, // {xdinside} Rule { state: State::xd, - pattern: Regex::new(r#"(?-u)^(([^"]+))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(([^"]+))"#).unwrap(), kind: RuleKind::xd3, + eof: false, }, // {xdinside} Rule { state: State::xui, - pattern: Regex::new(r#"(?-u)^(([^"]+))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(([^"]+))"#).unwrap(), kind: RuleKind::xui3, + eof: false, }, // <> Rule { state: State::xd, - pattern: Regex::new(r#"(?-u)^(^$)"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(^$)"#).unwrap(), kind: RuleKind::xd4, + eof: true, }, // <> Rule { state: State::xui, - pattern: Regex::new(r#"(?-u)^(^$)"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(^$)"#).unwrap(), kind: RuleKind::xui4, + eof: true, }, // {xufailed} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^(([uU]&))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(([uU]&))"#).unwrap(), kind: RuleKind::INITIAL14, + eof: false, }, // {typecast} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((::))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((::))"#).unwrap(), kind: RuleKind::INITIAL15, + eof: false, }, // {dot_dot} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((\.\.))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((\.\.))"#).unwrap(), kind: RuleKind::INITIAL16, + eof: false, }, // {colon_equals} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((:=))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((:=))"#).unwrap(), kind: RuleKind::INITIAL17, + eof: false, }, // {equals_greater} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((=>))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((=>))"#).unwrap(), kind: RuleKind::INITIAL18, + eof: false, }, // {less_equals} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((<=))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((<=))"#).unwrap(), kind: RuleKind::INITIAL19, + eof: false, }, // {greater_equals} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((>=))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((>=))"#).unwrap(), kind: RuleKind::INITIAL20, + eof: false, }, // {less_greater} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((<>))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((<>))"#).unwrap(), kind: RuleKind::INITIAL21, + eof: false, }, // {not_equals} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((!=))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((!=))"#).unwrap(), kind: RuleKind::INITIAL22, + eof: false, }, // {self} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^(([,()\[\].;\:\+\-\*\/\%\^<>\=]))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(([,()\[\].;\:\+\-\*\/\%\^<>\=]))"#).unwrap(), kind: RuleKind::INITIAL23, + eof: false, }, // {operator} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((([\~\!\@\#\^\&\|\`\?\+\-\*\/\%<>\=])+))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((([\~\!\@\#\^\&\|\`\?\+\-\*\/\%<>\=])+))"#).unwrap(), kind: RuleKind::INITIAL24, + eof: false, }, // {param} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((\$([0-9])+))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((\$([0-9])+))"#).unwrap(), kind: RuleKind::INITIAL25, + eof: false, }, // {decinteger} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((([0-9])(_?([0-9]))*))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((([0-9])(_?([0-9]))*))"#).unwrap(), kind: RuleKind::INITIAL26, + eof: false, }, // {hexinteger} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((0[xX](_?([0-9A-Fa-f]))+))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((0[xX](_?([0-9A-Fa-f]))+))"#).unwrap(), kind: RuleKind::INITIAL27, + eof: false, }, // {octinteger} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((0[oO](_?([0-7]))+))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((0[oO](_?([0-7]))+))"#).unwrap(), kind: RuleKind::INITIAL28, + eof: false, }, // {bininteger} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((0[bB](_?([0-1]))+))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((0[bB](_?([0-1]))+))"#).unwrap(), kind: RuleKind::INITIAL29, + eof: false, }, // {hexfail} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((0[xX]_?))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((0[xX]_?))"#).unwrap(), kind: RuleKind::INITIAL30, + eof: false, }, // {octfail} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((0[oO]_?))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((0[oO]_?))"#).unwrap(), kind: RuleKind::INITIAL31, + eof: false, }, // {binfail} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((0[bB]_?))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((0[bB]_?))"#).unwrap(), kind: RuleKind::INITIAL32, + eof: false, }, // {numeric} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^(((((([0-9])(_?([0-9]))*)\.(([0-9])(_?([0-9]))*)?)|(\.(([0-9])(_?([0-9]))*)))))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(((((([0-9])(_?([0-9]))*)\.(([0-9])(_?([0-9]))*)?)|(\.(([0-9])(_?([0-9]))*)))))"#).unwrap(), kind: RuleKind::INITIAL33, + eof: false, }, // {numericfail} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((([0-9])+\.\.))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(((([0-9])(_?([0-9]))*)\.\.))"#).unwrap(), kind: RuleKind::INITIAL34, + eof: false, }, // {real} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((((([0-9])(_?([0-9]))*)|((((([0-9])(_?([0-9]))*)\.(([0-9])(_?([0-9]))*)?)|(\.(([0-9])(_?([0-9]))*)))))[Ee][-+]?(([0-9])(_?([0-9]))*)))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((((([0-9])(_?([0-9]))*)|((((([0-9])(_?([0-9]))*)\.(([0-9])(_?([0-9]))*)?)|(\.(([0-9])(_?([0-9]))*)))))[Ee][-+]?(([0-9])(_?([0-9]))*)))"#).unwrap(), kind: RuleKind::INITIAL35, + eof: false, }, // {realfail} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((((([0-9])(_?([0-9]))*)|((((([0-9])(_?([0-9]))*)\.(([0-9])(_?([0-9]))*)?)|(\.(([0-9])(_?([0-9]))*)))))[Ee][-+]))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^((((([0-9])(_?([0-9]))*)|((((([0-9])(_?([0-9]))*)\.(([0-9])(_?([0-9]))*)?)|(\.(([0-9])(_?([0-9]))*)))))[Ee][-+]))"#).unwrap(), kind: RuleKind::INITIAL36, + eof: false, }, - // {decinteger_junk} + // {integer_junk} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^(((([0-9])(_?([0-9]))*)([A-Za-z\x80-\xFF_])))"#).unwrap(), + pattern: regex::bytes::Regex::new(r#"(?-u)^(((([0-9])(_?([0-9]))*)(([A-Za-z\x80-\xFF_])([A-Za-z\x80-\xFF_0-9\$])*)))"#).unwrap(), kind: RuleKind::INITIAL37, - }, - - // {hexinteger_junk} - Rule { - state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^(((0[xX](_?([0-9A-Fa-f]))+)([A-Za-z\x80-\xFF_])))"#).unwrap(), - kind: RuleKind::INITIAL38, - }, - - // {octinteger_junk} - Rule { - state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^(((0[oO](_?([0-7]))+)([A-Za-z\x80-\xFF_])))"#).unwrap(), - kind: RuleKind::INITIAL39, - }, - - // {bininteger_junk} - Rule { - state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^(((0[bB](_?([0-1]))+)([A-Za-z\x80-\xFF_])))"#).unwrap(), - kind: RuleKind::INITIAL40, + eof: false, }, // {numeric_junk} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((((((([0-9])(_?([0-9]))*)\.(([0-9])(_?([0-9]))*)?)|(\.(([0-9])(_?([0-9]))*))))([A-Za-z\x80-\xFF_])))"#).unwrap(), - kind: RuleKind::INITIAL41, + pattern: regex::bytes::Regex::new(r#"(?-u)^((((((([0-9])(_?([0-9]))*)\.(([0-9])(_?([0-9]))*)?)|(\.(([0-9])(_?([0-9]))*))))(([A-Za-z\x80-\xFF_])([A-Za-z\x80-\xFF_0-9\$])*)))"#).unwrap(), + kind: RuleKind::INITIAL38, + eof: false, }, // {real_junk} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^(((((([0-9])(_?([0-9]))*)|((((([0-9])(_?([0-9]))*)\.(([0-9])(_?([0-9]))*)?)|(\.(([0-9])(_?([0-9]))*)))))[Ee][-+]?(([0-9])(_?([0-9]))*))([A-Za-z\x80-\xFF_])))"#).unwrap(), - kind: RuleKind::INITIAL42, + pattern: regex::bytes::Regex::new(r#"(?-u)^(((((([0-9])(_?([0-9]))*)|((((([0-9])(_?([0-9]))*)\.(([0-9])(_?([0-9]))*)?)|(\.(([0-9])(_?([0-9]))*)))))[Ee][-+]?(([0-9])(_?([0-9]))*))(([A-Za-z\x80-\xFF_])([A-Za-z\x80-\xFF_0-9\$])*)))"#).unwrap(), + kind: RuleKind::INITIAL39, + eof: false, }, // {identifier} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((([A-Za-z\x80-\xFF_])([A-Za-z\x80-\xFF_0-9\$])*))"#).unwrap(), - kind: RuleKind::INITIAL43, + pattern: regex::bytes::Regex::new(r#"(?-u)^((([A-Za-z\x80-\xFF_])([A-Za-z\x80-\xFF_0-9\$])*))"#).unwrap(), + kind: RuleKind::INITIAL40, + eof: false, }, // {other} Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^((.))"#).unwrap(), - kind: RuleKind::INITIAL44, + pattern: regex::bytes::Regex::new(r#"(?-u)^((.))"#).unwrap(), + kind: RuleKind::INITIAL41, + eof: false, }, // <> Rule { state: State::INITIAL, - pattern: Regex::new(r#"(?-u)^(^$)"#).unwrap(), - kind: RuleKind::INITIAL45, + pattern: regex::bytes::Regex::new(r#"(?-u)^(^$)"#).unwrap(), + kind: RuleKind::INITIAL42, + eof: true, }] } @@ -1977,6 +7471,7 @@ pub fn get_keyword_map() -> HashMap<&'static str, &'static str> { ("committed", "COMMITTED"), ("compression", "COMPRESSION"), ("concurrently", "CONCURRENTLY"), + ("conditional", "CONDITIONAL"), ("configuration", "CONFIGURATION"), ("conflict", "CONFLICT"), ("connection", "CONNECTION"), @@ -2031,11 +7526,13 @@ pub fn get_keyword_map() -> HashMap<&'static str, &'static str> { ("drop", "DROP"), ("each", "EACH"), ("else", "ELSE"), + ("empty", "EMPTY_P"), ("enable", "ENABLE_P"), ("encoding", "ENCODING"), ("encrypted", "ENCRYPTED"), ("end", "END_P"), ("enum", "ENUM_P"), + ("error", "ERROR_P"), ("escape", "ESCAPE"), ("event", "EVENT"), ("except", "EXCEPT"), @@ -2117,10 +7614,15 @@ pub fn get_keyword_map() -> HashMap<&'static str, &'static str> { ("json", "JSON"), ("json_array", "JSON_ARRAY"), ("json_arrayagg", "JSON_ARRAYAGG"), + ("json_exists", "JSON_EXISTS"), ("json_object", "JSON_OBJECT"), ("json_objectagg", "JSON_OBJECTAGG"), + ("json_query", "JSON_QUERY"), ("json_scalar", "JSON_SCALAR"), ("json_serialize", "JSON_SERIALIZE"), + ("json_table", "JSON_TABLE"), + ("json_value", "JSON_VALUE"), + ("keep", "KEEP"), ("key", "KEY"), ("keys", "KEYS"), ("label", "LABEL"), @@ -2150,6 +7652,7 @@ pub fn get_keyword_map() -> HashMap<&'static str, &'static str> { ("materialized", "MATERIALIZED"), ("maxvalue", "MAXVALUE"), ("merge", "MERGE"), + ("merge_action", "MERGE_ACTION"), ("method", "METHOD"), ("minute", "MINUTE_P"), ("minvalue", "MINVALUE"), @@ -2161,6 +7664,7 @@ pub fn get_keyword_map() -> HashMap<&'static str, &'static str> { ("national", "NATIONAL"), ("natural", "NATURAL"), ("nchar", "NCHAR"), + ("nested", "NESTED"), ("new", "NEW"), ("next", "NEXT"), ("nfc", "NFC"), @@ -2186,6 +7690,7 @@ pub fn get_keyword_map() -> HashMap<&'static str, &'static str> { ("offset", "OFFSET"), ("oids", "OIDS"), ("old", "OLD"), + ("omit", "OMIT"), ("on", "ON"), ("only", "ONLY"), ("operator", "OPERATOR"), @@ -2210,7 +7715,9 @@ pub fn get_keyword_map() -> HashMap<&'static str, &'static str> { ("partition", "PARTITION"), ("passing", "PASSING"), ("password", "PASSWORD"), + ("path", "PATH"), ("placing", "PLACING"), + ("plan", "PLAN"), ("plans", "PLANS"), ("policy", "POLICY"), ("position", "POSITION"), @@ -2228,6 +7735,7 @@ pub fn get_keyword_map() -> HashMap<&'static str, &'static str> { ("program", "PROGRAM"), ("publication", "PUBLICATION"), ("quote", "QUOTE"), + ("quotes", "QUOTES"), ("range", "RANGE"), ("read", "READ"), ("real", "REAL"), @@ -2287,6 +7795,7 @@ pub fn get_keyword_map() -> HashMap<&'static str, &'static str> { ("smallint", "SMALLINT"), ("snapshot", "SNAPSHOT"), ("some", "SOME"), + ("source", "SOURCE"), ("sql", "SQL_P"), ("stable", "STABLE"), ("standalone", "STANDALONE_P"), @@ -2298,6 +7807,7 @@ pub fn get_keyword_map() -> HashMap<&'static str, &'static str> { ("storage", "STORAGE"), ("stored", "STORED"), ("strict", "STRICT_P"), + ("string", "STRING_P"), ("strip", "STRIP_P"), ("subscription", "SUBSCRIPTION"), ("substring", "SUBSTRING"), @@ -2310,6 +7820,7 @@ pub fn get_keyword_map() -> HashMap<&'static str, &'static str> { ("tables", "TABLES"), ("tablesample", "TABLESAMPLE"), ("tablespace", "TABLESPACE"), + ("target", "TARGET"), ("temp", "TEMP"), ("template", "TEMPLATE"), ("temporary", "TEMPORARY"), @@ -2333,6 +7844,7 @@ pub fn get_keyword_map() -> HashMap<&'static str, &'static str> { ("uescape", "UESCAPE"), ("unbounded", "UNBOUNDED"), ("uncommitted", "UNCOMMITTED"), + ("unconditional", "UNCONDITIONAL"), ("unencrypted", "UNENCRYPTED"), ("union", "UNION"), ("unique", "UNIQUE"), diff --git a/crates/postgresql-cst-parser/src/lexer/lexer_ported.rs b/crates/postgresql-cst-parser/src/lexer/lexer_ported.rs new file mode 100644 index 0000000..0d1ed6b --- /dev/null +++ b/crates/postgresql-cst-parser/src/lexer/lexer_ported.rs @@ -0,0 +1,219 @@ +/// Ported sources from PostgreSQL +use super::{Lexer, Token, TokenKind, Yylval, parser_error::ParserError}; + +pub fn is_highbit_set(c: char) -> u8 { + (c as u8) & 0x80 +} + +pub fn get_char_by_byte_pos(s: &str, byte_pos: usize) -> char { + // s.bytes().nth(byte_pos).unwrap() as char + s.as_bytes()[byte_pos] as char +} + +pub fn is_valid_unicode_codepoint(c: char) -> bool { + let c = c as u32; + (1..=0x10FFFF).contains(&c) +} + +pub fn is_utf16_surrogate_first(c: u32) -> bool { + (0xD800..=0xDBFF).contains(&c) +} + +pub fn is_utf16_surrogate_second(c: u32) -> bool { + (0xDC00..=0xDFFF).contains(&c) +} + +pub fn surrogate_pair_to_codepoint(first: u32, second: u32) -> char { + char::from_u32(((first & 0x3FF) << 10) + 0x10000 + (second & 0x3FF)).unwrap() +} + +impl Lexer { + pub fn set_yylloc(&mut self) { + self.yylloc_bytes = self.index_bytes; + } + + pub fn set_yyllocend(&mut self) { + self.yyllocend_bytes = self.index_bytes + self.yyleng; + } + + pub fn addlitchar(&mut self, ychar: char) { + // /* enlarge buffer if needed */ + // if ((yyextra->literallen + 1) >= yyextra->literalalloc) + // { + // yyextra->literalalloc *= 2; + // yyextra->literalbuf = (char *) repalloc(yyextra->literalbuf, + // yyextra->literalalloc); + // } + // /* append new data */ + // yyextra->literalbuf[yyextra->literallen] = ychar; + // yyextra->literallen += 1; + self.literal.push(ychar); + } + + pub fn addlit(&mut self, yyleng: usize) { + // /* enlarge buffer if needed */ + // if ((yyextra->literallen + yleng) >= yyextra->literalalloc) + // { + // yyextra->literalalloc = pg_nextpower2_32(yyextra->literallen + yleng + 1); + // yyextra->literalbuf = (char *) repalloc(yyextra->literalbuf, + // yyextra->literalalloc); + // } + // /* append new data */ + // memcpy(yyextra->literalbuf + yyextra->literallen, ytext, yleng); + // yyextra->literallen += yleng; + self.literal += &self.input[self.index_bytes..][..yyleng]; + } + + pub fn addunicode(&mut self, c: char) -> Result<(), ParserError> { + if !is_valid_unicode_codepoint(c) { + yyerror!("invalid Unicode escape value"); + } + + self.addlit(c.len_utf8()); + Ok(()) + } + + pub fn unescape_single_char(&mut self, c: char) -> char { + match c { + // 'b' => '\b', + 'b' => 0x08 as char, + // 'f' => '\f', + 'f' => 0x0c as char, + 'n' => '\n', + 'r' => '\r', + 't' => '\t', + // 'v'=>'\v', + 'v' => 0x0b as char, + _ => { + /* check for backslash followed by non-7-bit-ASCII */ + if c == '\0' || is_highbit_set(c) != 0 { + self.saw_non_ascii = true; + } + + c + } + } + } + + pub fn push_yylloc(&mut self) { + self.yylloc_stack.push(self.yylloc_bytes); + } + + pub fn pop_yylloc(&mut self) { + self.yylloc_bytes = self.yylloc_stack.pop().unwrap(); + } + + pub fn process_integer_literal(&mut self, radix: usize) -> Option { + let yytext_original = self.yytext(); + let mut yytext = yytext_original.as_str(); + let mut neg = false; + + match yytext.bytes().next() { + Some(b'-') => { + neg = true; + yytext = &yytext[1..]; + } + Some(b'+') => { + yytext = &yytext[1..]; + } + _ => (), + } + + let res_parse_as_i32 = match radix { + 8 => i32::from_str_radix(&yytext[2..], 8), + 10 => yytext.parse::(), + 16 => i32::from_str_radix(&yytext[2..], 16), + _ => unreachable!(), + }; + + let ok = res_parse_as_i32 + .as_ref() + .map(|res| !neg || *res != i32::MIN) + .unwrap_or_default(); + + if ok { + let res = res_parse_as_i32.unwrap(); + self.yylval = Yylval::I(if neg { -res } else { res }); + Some(TokenKind::ICONST) + } else { + self.yylval = Yylval::Str(yytext_original); + Some(TokenKind::FCONST) + } + } + + pub fn downcase_truncate_identifier(&self, yyleng: usize, _warn: bool) -> String { + self.yytext()[..yyleng].to_ascii_lowercase() + } +} + +/// The logic for converting tokens in PostgreSQL's parser.c +/// ref: https://github.com/postgres/postgres/blob/REL_16_STABLE/src/backend/parser/parser.c#L195 +pub fn init_tokens(tokens: &mut [Token]) { + fn next_token_index(tokens: &[Token], i: usize) -> Option { + for (j, token) in tokens.iter().enumerate().skip(i + 1) { + match token.kind { + TokenKind::C_COMMENT | TokenKind::SQL_COMMENT => continue, + _ => return Some(j), + } + } + None + } + + for i in 0..tokens.len() - 1 { + match &tokens[i].kind { + TokenKind::KEYWORD(k) if k == "FORMAT" => { + if let Some(j) = next_token_index(tokens, i) { + if tokens[j].kind == TokenKind::KEYWORD("JSON".to_string()) { + tokens[i].kind = TokenKind::KEYWORD("FORMAT_LA".to_string()); + } + } + } + TokenKind::KEYWORD(k) if k == "NOT" => { + if let Some(j) = next_token_index(tokens, i) { + match &tokens[j].kind { + TokenKind::KEYWORD(k) + if matches!( + k.as_str(), + "BETWEEN" | "IN_P" | "LIKE" | "ILIKE" | "SIMILAR" + ) => + { + tokens[i].kind = TokenKind::KEYWORD("NOT_LA".to_string()); + } + _ => {} + } + } + } + TokenKind::KEYWORD(k) if k == "NULLS_P" => { + if let Some(j) = next_token_index(tokens, i) { + match &tokens[j].kind { + TokenKind::KEYWORD(k) if matches!(k.as_str(), "FIRST_P" | "LAST_P") => { + tokens[i].kind = TokenKind::KEYWORD("NULLS_LA".to_string()); + } + _ => {} + } + } + } + TokenKind::KEYWORD(k) if k == "WITH" => { + if let Some(j) = next_token_index(tokens, i) { + match &tokens[j].kind { + TokenKind::KEYWORD(k) if matches!(k.as_str(), "TIME" | "ORDINALITY") => { + tokens[i].kind = TokenKind::KEYWORD("WITH_LA".to_string()); + } + _ => {} + } + } + } + TokenKind::KEYWORD(k) if k == "WITHOUT" => { + if let Some(j) = next_token_index(tokens, i) { + match &tokens[j].kind { + TokenKind::KEYWORD(k) if matches!(k.as_str(), "TIME") => { + tokens[i].kind = TokenKind::KEYWORD("WITHOUT_LA".to_string()); + } + _ => {} + } + } + } + _ => (), + } + } +} diff --git a/crates/postgresql-cst-parser/src/lexer/parser_error.rs b/crates/postgresql-cst-parser/src/lexer/parser_error.rs new file mode 100644 index 0000000..c9f5f74 --- /dev/null +++ b/crates/postgresql-cst-parser/src/lexer/parser_error.rs @@ -0,0 +1,41 @@ +#[derive(Debug, PartialEq)] +pub enum ParserError { + ParseError { + message: String, + start_byte_pos: usize, + end_byte_pos: usize, + }, + ScanReport(ScanReport), + ScanError { + message: String, + }, +} + +impl ParserError { + pub fn new_report(message: &str, detail: &str, position: usize) -> Self { + Self::ScanReport(ScanReport::new(message, detail, position)) + } + + pub fn new_error(message: &str) -> Self { + Self::ScanError { + message: message.to_string(), + } + } +} + +#[derive(Debug, PartialEq)] +pub struct ScanReport { + pub message: String, + pub detail: String, + pub position_in_bytes: usize, +} + +impl ScanReport { + pub fn new(message: &str, detail: &str, position: usize) -> Self { + Self { + message: message.to_string(), + detail: detail.to_string(), + position_in_bytes: position, + } + } +} diff --git a/crates/postgresql-cst-parser/src/lexer/util.rs b/crates/postgresql-cst-parser/src/lexer/util.rs index d63f9e2..0c28eed 100644 --- a/crates/postgresql-cst-parser/src/lexer/util.rs +++ b/crates/postgresql-cst-parser/src/lexer/util.rs @@ -1,23 +1,15 @@ #![allow(dead_code)] -use regex::bytes::Match; - use super::{ - generated::{get_keyword_map, RuleKind, State}, - {Lexer, Rule, TokenKind, Yylval}, + Lexer, ScanReport, Yylval, + generated::{State, get_keyword_map}, }; -pub fn yyerror(msg: &str) { - eprintln!("{msg}"); - panic!(); -} - -pub fn get_char_by_byte_pos(s: &str, byte_pos: usize) -> char { - s.as_bytes()[byte_pos] as char -} - impl Lexer { - pub fn new(input: &str, rules: Vec) -> Self { + pub fn new(input: &str) -> Self { + #[cfg(feature = "regex-match")] + let rules = super::generated::get_rules(); + Self { input: input.to_string(), index_bytes: 0, @@ -30,12 +22,17 @@ impl Lexer { yylloc_stack: vec![], literal: String::new(), dolqstart: "".to_string(), + warn_on_first_escape: false, + saw_non_ascii: false, + utf16_first_part: 0, yylloc_bytes: 0, yylval: Yylval::Uninitialized, + #[cfg(feature = "regex-match")] rules, keyword_map: get_keyword_map(), + reports: Vec::new(), } } @@ -62,108 +59,82 @@ impl Lexer { self.yyleng = len; } - pub fn set_yylloc(&mut self) { - self.yylloc_bytes = self.index_bytes; - } - - pub fn set_yyllocend(&mut self) { - self.yyllocend_bytes = self.index_bytes + self.yyleng; - } + #[cfg(not(feature = "regex-match"))] + pub fn find_match_len(&self) -> (usize, u8) { + use super::generated::dfa::get_dfa_table; - pub fn addlitchar(&mut self, ychar: char) { - // /* enlarge buffer if needed */ - // if ((yyextra->literallen + 1) >= yyextra->literalalloc) - // { - // yyextra->literalalloc *= 2; - // yyextra->literalbuf = (char *) repalloc(yyextra->literalbuf, - // yyextra->literalalloc); - // } - // /* append new data */ - // yyextra->literalbuf[yyextra->literallen] = ychar; - // yyextra->literallen += 1; - self.literal.push(ychar); - } + let s = &self.input[self.index_bytes..]; - pub fn addlit(&mut self, yyleng: usize) { - // /* enlarge buffer if needed */ - // if ((yyextra->literallen + yleng) >= yyextra->literalalloc) - // { - // yyextra->literalalloc = pg_nextpower2_32(yyextra->literallen + yleng + 1); - // yyextra->literalbuf = (char *) repalloc(yyextra->literalbuf, - // yyextra->literalalloc); - // } - // /* append new data */ - // memcpy(yyextra->literalbuf + yyextra->literallen, ytext, yleng); - // yyextra->literallen += yleng; - self.literal += &self.input[self.index_bytes..][..yyleng]; - } + let (transition, accept) = get_dfa_table(self.state); - pub fn push_yylloc(&mut self) { - self.yylloc_stack.push(self.yylloc_bytes); - } + let mut dfa_state_index = 0_u8; + let mut accept_rule = accept[dfa_state_index as usize]; + let mut longest_match = 0; - pub fn pop_yylloc(&mut self) { - self.yylloc_bytes = self.yylloc_stack.pop().unwrap(); - } + for (i, byte) in s.as_bytes().iter().enumerate() { + let transition_index = *byte as usize; + dfa_state_index = transition[dfa_state_index as usize][transition_index]; - pub fn process_integer_literal(&mut self, radix: usize) -> Option { - let yytext_original = self.yytext(); - let mut yytext = yytext_original.as_str(); - let mut neg = false; - - match yytext.bytes().next() { - Some(b'-') => { - neg = true; - yytext = &yytext[1..]; + if dfa_state_index == !0 { + return (longest_match, accept_rule); } - Some(b'+') => { - yytext = &yytext[1..]; + + if accept[dfa_state_index as usize] != !0 { + accept_rule = accept[dfa_state_index as usize]; + longest_match = i + 1; } - _ => (), } - let res_parse_as_i32 = match radix { - 8 => i32::from_str_radix(&yytext[2..], 8), - 10 => yytext.parse::(), - 16 => i32::from_str_radix(&yytext[2..], 16), - _ => unreachable!(), - }; - - let ok = res_parse_as_i32 - .as_ref() - .map(|res| !neg || *res != i32::MIN) - .unwrap_or_default(); - - if ok { - let res = res_parse_as_i32.unwrap(); - self.yylval = Yylval::I(if neg { -res } else { res }); - Some(TokenKind::ICONST) - } else { - self.yylval = Yylval::Str(yytext_original); - Some(TokenKind::FCONST) + // Check for match against EOF + if transition[dfa_state_index as usize][0] != !0 { + // Currently, EOF is represented by byte value 0 + dfa_state_index = transition[dfa_state_index as usize][0]; + + if accept[dfa_state_index as usize] != !0 { + accept_rule = accept[dfa_state_index as usize]; + longest_match = s.len(); + } } - } - pub fn downcase_truncate_identifier(&self, yyleng: usize, _warn: bool) -> String { - self.yytext()[..yyleng].to_ascii_lowercase() + (longest_match, accept_rule) } - pub fn find_match(&self) -> (Match, RuleKind) { + #[cfg(feature = "regex-match")] + pub fn find_match_len(&self) -> (usize, super::generated::RuleKind) { let rules = self.rules.iter().filter(|rule| rule.state == self.state); let s = &self.input[self.index_bytes..]; - let mut longest_match: Option = None; - let mut kind = RuleKind::INITIAL1; + let mut longest_match = 0; + let mut eof = false; + let mut kind = super::generated::RuleKind::INITIAL1; for rule in rules { if let Some(m) = rule.pattern.find(s.as_bytes()) { - if longest_match.map_or(-1, |m| m.len() as i64) < m.len() as i64 { - longest_match = Some(m); + // treat eof as single null character + let match_len = if rule.eof { 1 } else { m.len() }; + + if longest_match < match_len { + longest_match = match_len; + eof = rule.eof; kind = rule.kind; } } } - (longest_match.unwrap(), kind) + // The match length is treated as 1 in the case of EOF to ensure that the state handling EOF is properly selected. + // Unlike C, strings are not null-terminated, so it's more convenient for subsequent processing to treat the match length as 0, therefore in the case of EOF, it's treated as 0. + if eof { + (0, kind) + } else { + (longest_match, kind) + } + } + + pub fn add_warning(&mut self, report: ScanReport) { + self.reports.push(report); + } + + pub fn lexer_errposition(&self) -> usize { + self.index_bytes } } diff --git a/crates/postgresql-cst-parser/src/lib.rs b/crates/postgresql-cst-parser/src/lib.rs index f9db061..1a6b346 100644 --- a/crates/postgresql-cst-parser/src/lib.rs +++ b/crates/postgresql-cst-parser/src/lib.rs @@ -14,7 +14,6 @@ pub mod tree_sitter; use cst::parse_with_transformer; pub use cst::NodeOrToken; -pub use cst::ParseError; pub use cst::PostgreSQLSyntax; pub use cst::ResolvedNode; pub use cst::ResolvedToken; @@ -22,6 +21,8 @@ pub use cst::SyntaxElement; pub use cst::SyntaxElementRef; pub use cst::SyntaxNode; pub use cst::SyntaxToken; +pub use lexer::parser_error::ParserError; +pub use lexer::parser_error::ScanReport; use transform::ComplementMissingFromTableTransformer; use transform::ComplementMissingSampleValueTransformer; @@ -31,7 +32,71 @@ use transform::SkipExtraOperator; pub use tree_sitter::parse as ts_parse; pub use tree_sitter::parse_2way as ts_parse_2way; -pub fn parse(input: &str) -> Result { +/// Parse SQL and construct a Complete Syntax Tree (CST). +/// +/// # Examples +/// +/// ``` +/// use postgresql_cst_parser::{parse, syntax_kind::SyntaxKind}; +/// +/// // Parse SQL query and get the syntax tree +/// let sql = "SELECT tbl.a as a, tbl.b from TBL tbl WHERE tbl.a > 0;"; +/// let root = parse(sql).unwrap(); +/// +/// // Example 1: Extract all column references from the query +/// let column_refs: Vec = root +/// .descendants() +/// .filter(|node| node.kind() == SyntaxKind::columnref) +/// .map(|node| node.text().to_string()) +/// .collect(); +/// +/// println!("Column references: {:?}", column_refs); // ["tbl.a", "tbl.b", "tbl.a"] +/// +/// // Example 2: Find the WHERE condition +/// if let Some(where_clause) = root +/// .descendants() +/// .find(|node| node.kind() == SyntaxKind::where_clause) +/// { +/// println!("WHERE condition: {}", where_clause.text()); +/// } +/// +/// // Example 3: Get the selected table name +/// if let Some(relation_expr) = root +/// .descendants() +/// .find(|node| node.kind() == SyntaxKind::relation_expr) +/// { +/// if let Some(name_node) = relation_expr +/// .descendants() +/// .find(|node| node.kind() == SyntaxKind::ColId) +/// { +/// println!("Table name: {}", name_node.text()); +/// } +/// } +/// +/// // Example 4: Parse complex SQL and extract specific nodes +/// let complex_sql = "WITH data AS (SELECT id, value FROM source WHERE value > 10) +/// SELECT d.id, d.value, COUNT(*) OVER (PARTITION BY d.id) +/// FROM data d JOIN other o ON d.id = o.id +/// ORDER BY d.value DESC LIMIT 10;"; +/// +/// let complex_root = parse(complex_sql).unwrap(); +/// +/// // Extract CTEs (Common Table Expressions) +/// let ctes: Vec<_> = complex_root +/// .descendants() +/// .filter(|node| node.kind() == SyntaxKind::common_table_expr) +/// .collect(); +/// +/// // Extract window functions +/// let window_funcs: Vec<_> = complex_root +/// .descendants() +/// .filter(|node| node.kind() == SyntaxKind::over_clause) +/// .collect(); +/// +/// println!("Number of CTEs: {}", ctes.len()); +/// println!("Number of window functions: {}", window_funcs.len()); +/// ``` +pub fn parse(input: &str) -> Result { cst::parse(input) } @@ -40,7 +105,7 @@ pub fn parse(input: &str) -> Result { /// 2. Missing sample values ​​in expressions found in select clauses, etc. /// 3. Extra commas in select clauses, from clauses, and order by clauses /// 4. Extra and/or in the where clause -pub fn parse_2way(input: &str) -> Result { +pub fn parse_2way(input: &str) -> Result { parse_with_transformer( input, &[ @@ -55,12 +120,93 @@ pub fn parse_2way(input: &str) -> Result { pub fn parse_2way_with_transformers( input: &str, transformers: &[&dyn ParseTransformer], -) -> Result { +) -> Result { parse_with_transformer(input, transformers) } #[cfg(test)] mod tests { + use crate::lexer::parser_error::ScanReport; + + use super::*; + + #[test] + fn test_unterminated_hexadecimal_string_literal() { + let input = r#"select x'CC"#; + let actual = parse(input); + + let expected = Err(ParserError::ScanError { + message: "unterminated hexadecimal string literal".to_string(), + }); + + assert_eq!(actual, expected); + } + + #[test] + fn test_unterminated_unterminated_bit_string_literal() { + let input = r#"select b'10"#; + let actual = parse(input); + + let expected = Err(ParserError::ScanError { + message: "unterminated bit string literal".to_string(), + }); + + assert_eq!(actual, expected); + } + + #[test] + fn test_xeunicodefail() { + let input = r#"select e'\uD80"#; + let actual = parse(input); + + let expected = Err(ParserError::ScanReport(ScanReport { + message: "invalid Unicode escape".to_string(), + detail: "Unicode escapes must be \\uXXXX or \\UXXXXXXXX.".to_string(), + position_in_bytes: 9, + })); + + assert_eq!(actual, expected); + } + + #[test] + fn test_invalid_unicode_surrogate_pair() { + let input = r#"select e'\uD800"#; + let actual = parse(input); + + let expected = Err(ParserError::ScanError { + message: "invalid Unicode surrogate pair".to_string(), + }); + + assert_eq!(actual, expected); + } + + #[test] + fn test_invalid_unicode_surrogate_first() { + let input = r#"select e'\u0000"#; + let actual = parse(input); + + let expected = Err(ParserError::ScanError { + message: "invalid Unicode escape value".to_string(), + }); + + assert_eq!(actual, expected); + } + + #[test] + fn test_invalid_unicode_surrogate_second() { + let input = r#"select e'\uD800\uD000'"#; + let actual = parse(input); + + let expected = Err(ParserError::ScanError { + message: "invalid Unicode surrogate pair".to_string(), + }); + + assert_eq!(actual, expected); + } +} + +#[cfg(test)] +mod tests_2way { use crate::parse_2way; #[test] diff --git a/crates/postgresql-cst-parser/src/parser.rs b/crates/postgresql-cst-parser/src/parser.rs index fdb959a..ffbfb7d 100644 --- a/crates/postgresql-cst-parser/src/parser.rs +++ b/crates/postgresql-cst-parser/src/parser.rs @@ -1,3 +1,4 @@ +#![allow(dead_code)] use crate::lexer::TokenKind; pub(crate) struct Rule { @@ -13,20 +14,33014 @@ pub(crate) enum Action { Error, } -#[rustfmt::skip] -pub(crate) const ACTION_TABLE: &[u8; 209734] = &[236,93,5,220,228,196,217,223,103,54,187,239,46,126,56,180,88,139,115,184,29,238,238,20,119,61,252,176,182,20,90,58,148,22,218,226,53,42,64,141,202,87,133,182,80,168,225,238,238,238,122,232,238,221,123,54,95,118,115,185,137,204,100,146,157,137,108,242,220,255,183,239,38,153,153,255,163,121,110,54,74,106,140,134,81,183,183,90,181,134,176,205,143,166,160,207,136,100,92,203,222,222,174,205,230,107,157,221,94,155,67,210,127,78,123,251,92,49,116,232,97,238,126,191,121,60,189,247,26,13,246,25,99,183,206,59,179,199,124,181,211,153,183,109,254,144,156,5,236,45,11,134,182,46,20,75,159,133,99,106,205,232,34,145,61,195,54,36,199,162,181,207,120,100,124,214,94,94,172,38,150,177,120,109,137,218,146,181,165,106,159,179,219,63,31,203,130,165,107,250,250,69,97,153,24,252,203,206,234,179,156,189,180,188,253,89,97,214,150,21,61,227,87,234,47,143,13,48,174,28,88,95,165,182,170,111,203,106,51,215,86,23,104,178,134,66,59,39,195,214,140,233,163,181,164,253,214,174,241,56,173,51,179,215,186,17,172,227,102,182,173,103,36,58,123,77,73,55,198,121,162,204,182,33,134,35,195,110,77,185,134,222,54,16,255,29,41,107,229,226,78,165,156,187,98,106,114,183,175,223,61,49,70,221,27,209,231,190,80,219,253,145,140,15,248,90,31,20,244,125,40,166,29,15,107,121,126,194,244,71,6,24,255,104,6,209,126,108,0,25,143,11,198,60,81,123,178,191,245,41,13,157,159,238,143,125,102,22,195,179,253,165,231,2,140,207,247,215,95,136,37,231,69,95,175,151,102,173,189,60,107,233,149,254,210,171,51,215,95,19,176,190,238,219,246,134,84,238,155,210,150,183,180,226,56,99,52,8,119,155,168,159,191,127,112,116,120,221,187,37,184,44,150,30,102,241,114,185,227,156,62,34,6,183,151,152,49,172,145,215,50,151,53,74,43,209,248,240,56,63,179,72,39,57,162,108,82,177,132,99,229,215,66,237,99,89,86,68,231,73,216,243,65,127,69,69,59,58,171,228,241,84,91,20,175,53,233,56,117,20,162,114,60,202,35,209,94,11,143,8,122,46,152,209,49,245,13,131,206,250,246,194,223,38,90,19,173,83,73,43,13,181,202,89,188,92,116,150,94,163,18,6,26,169,23,21,104,17,92,142,214,74,52,158,74,91,252,154,199,67,148,77,84,57,54,24,43,170,140,69,112,52,141,169,107,144,153,6,60,61,26,33,63,42,94,84,233,17,89,44,146,248,116,208,88,196,139,66,84,142,71,121,36,218,107,84,177,199,209,80,70,143,38,200,154,138,253,14,139,223,107,120,237,171,130,22,197,142,225,176,28,15,120,183,246,94,237,253,218,196,218,7,181,15,107,31,213,62,174,125,98,143,250,180,214,169,117,3,163,39,213,38,215,70,237,109,83,106,83,107,211,106,211,107,51,106,204,94,171,1,0,129,58,88,208,128,38,216,103,4,160,5,109,152,13,102,135,57,96,78,232,141,155,11,230,134,121,96,12,204,107,175,205,7,243,195,2,176,32,44,100,47,47,220,111,93,4,22,133,207,192,103,97,49,88,28,150,128,37,97,41,248,156,189,253,243,176,52,44,3,203,194,114,176,188,189,182,2,172,8,43,245,123,143,181,255,174,12,142,62,171,192,170,51,151,86,131,213,97,13,88,19,214,130,181,97,29,123,219,186,246,103,28,172,7,235,195,6,176,33,108,4,27,219,235,155,192,166,176,25,108,222,31,177,5,108,9,91,193,214,253,229,109,236,191,219,194,118,176,189,253,189,131,253,217,17,118,178,255,238,12,187,192,174,176,27,236,14,95,128,61,96,79,216,11,246,238,247,222,167,255,119,95,216,15,246,135,3,224,64,123,237,32,251,115,176,253,57,4,14,181,255,30,6,135,195,17,112,36,140,183,151,143,178,63,71,195,49,112,108,127,204,113,246,223,227,225,4,152,96,127,159,8,39,193,201,112,10,156,10,95,132,47,193,151,225,52,248,10,156,14,103,192,87,225,107,112,38,124,221,238,65,225,44,248,6,156,13,223,132,111,193,57,112,174,189,229,219,246,231,59,240,93,251,239,121,112,62,92,0,23,194,69,112,49,92,2,223,131,239,195,15,224,135,240,35,184,20,126,12,63,153,233,145,159,194,207,224,50,123,249,114,184,194,254,251,115,248,5,252,178,223,242,43,248,53,92,9,191,233,47,255,22,126,7,191,135,255,131,63,192,31,225,79,240,103,248,11,252,21,120,180,175,130,171,237,181,191,193,223,225,31,112,13,92,11,255,132,235,224,122,248,23,252,27,254,3,255,133,255,193,13,112,163,221,126,19,220,12,183,244,71,221,10,183,217,223,183,219,159,59,224,78,184,11,238,182,151,238,129,123,251,109,247,193,253,240,64,127,233,65,120,8,30,134,71,224,81,120,12,30,135,39,224,73,120,202,222,254,180,253,121,6,158,133,231,224,121,120,1,94,180,215,94,130,151,225,21,120,21,94,131,215,225,13,120,211,222,242,22,188,13,239,192,187,240,30,188,15,19,251,92,31,192,135,246,247,71,240,49,124,2,159,66,199,94,238,194,36,152,12,163,48,5,166,194,52,152,14,51,128,65,141,0,33,164,78,236,179,92,164,65,154,100,132,180,72,155,204,70,102,39,115,144,57,237,173,115,145,185,201,60,100,12,153,215,94,158,143,204,79,22,32,11,218,75,11,145,133,201,34,100,81,242,25,123,249,179,100,49,178,56,89,130,44,73,150,34,159,35,159,39,75,147,101,236,173,203,146,229,200,242,100,5,178,34,89,137,140,37,43,147,85,200,170,100,53,178,58,89,131,172,73,214,178,219,215,38,235,16,238,205,117,201,56,178,30,89,159,108,64,54,36,27,217,219,55,38,155,144,77,251,237,155,145,205,201,22,100,75,178,149,189,182,53,217,198,254,187,45,217,142,108,111,127,239,64,118,36,59,245,251,236,76,118,33,187,146,221,200,238,253,181,47,144,61,200,158,100,47,178,55,217,135,236,107,111,217,143,236,79,14,32,7,146,131,200,193,253,246,67,250,127,15,37,135,245,191,15,39,71,144,35,237,165,241,228,40,114,52,57,134,28,75,142,35,199,147,19,200,4,114,34,57,137,156,76,78,33,167,146,47,146,50,206,3,226,225,253,25,213,181,29,129,25,22,53,15,248,26,137,51,15,176,183,121,230,1,140,38,157,7,56,240,206,3,24,21,207,3,236,179,188,158,121,128,139,162,205,3,28,93,226,204,3,206,36,189,121,0,163,81,243,0,70,101,243,128,30,46,176,191,85,243,128,222,247,229,253,191,186,243,0,70,163,230,1,51,231,180,177,231,1,140,246,230,1,246,145,255,28,230,1,118,126,106,204,3,24,29,124,30,96,159,171,79,109,30,192,168,238,60,224,147,209,32,24,117,191,189,240,183,57,75,254,53,239,58,103,8,243,122,185,197,114,69,28,206,183,95,159,48,71,80,175,176,214,65,141,188,82,197,86,120,71,138,199,115,205,196,204,65,57,114,41,98,11,188,186,249,217,68,90,6,253,21,182,252,108,34,183,209,203,16,173,105,48,6,226,140,8,202,15,250,88,108,173,44,126,34,46,149,63,163,242,83,156,35,73,122,68,75,19,197,75,20,145,160,134,178,62,34,11,190,73,196,57,42,218,107,163,178,6,129,72,3,231,84,248,183,102,89,128,215,9,34,242,197,185,67,92,69,134,229,188,192,142,51,130,112,183,137,250,241,254,189,37,190,246,29,226,111,229,12,97,94,47,183,88,174,136,195,249,246,235,35,178,192,175,87,88,235,224,178,87,170,203,26,246,137,87,126,88,22,215,76,164,69,88,142,92,138,216,2,175,110,126,54,145,150,65,127,133,45,255,46,145,219,232,101,136,214,52,24,3,191,94,94,45,252,113,140,202,35,177,60,89,94,201,178,75,174,171,156,55,168,121,220,30,42,207,132,227,37,138,72,80,67,89,159,232,108,247,199,92,180,215,70,101,205,249,179,170,237,159,167,202,170,197,5,3,84,228,11,165,99,46,146,182,184,26,252,104,90,60,25,23,251,152,46,137,161,229,247,34,250,124,63,212,246,131,72,198,31,146,176,238,63,242,109,187,52,166,223,238,156,170,83,241,255,28,57,250,199,18,29,174,152,158,254,255,134,63,233,203,254,105,162,236,249,25,17,89,232,216,120,153,160,109,213,152,71,224,47,39,34,175,93,65,68,108,63,143,165,241,47,124,189,126,41,213,237,87,228,215,118,219,149,228,55,2,13,220,216,57,223,191,245,245,248,93,127,237,247,253,191,255,39,213,104,85,173,51,16,225,243,2,127,197,243,2,120,94,160,32,231,5,174,34,120,94,32,253,243,2,131,94,35,132,53,0,107,0,158,27,44,71,13,8,207,12,254,142,199,114,17,185,226,31,185,103,224,53,41,104,112,173,205,249,79,220,183,16,169,225,58,204,46,45,92,95,121,255,253,119,150,7,254,103,212,23,55,72,217,110,84,202,185,41,166,38,55,39,214,248,150,136,17,183,134,218,110,139,228,191,221,215,122,135,160,239,157,49,245,187,75,203,243,19,6,58,186,119,119,6,153,127,143,84,198,189,210,150,251,4,45,79,212,238,239,111,125,64,67,231,7,251,99,31,154,197,240,112,127,233,145,0,227,163,253,245,199,98,201,121,220,215,235,9,193,152,39,251,219,158,154,217,242,116,160,199,51,246,250,179,190,109,207,73,229,62,47,109,121,33,197,56,226,245,1,8,68,122,25,54,220,247,13,50,60,38,136,199,4,241,152,96,73,143,9,186,136,247,76,209,180,241,122,162,89,78,244,51,69,147,97,129,2,88,191,87,42,215,114,191,65,210,151,145,7,150,51,18,177,85,13,199,125,205,90,26,185,192,159,41,250,102,104,15,73,250,76,209,222,60,224,83,226,157,7,116,98,94,31,208,37,213,157,7,76,34,254,121,192,100,219,23,163,36,206,60,96,10,209,153,7,76,37,81,243,128,105,196,228,60,96,58,241,206,3,102,144,60,231,1,140,248,231,1,181,186,124,30,0,117,156,7,232,94,31,48,82,255,180,214,170,23,229,183,64,187,142,191,5,240,183,128,250,183,192,108,117,83,191,5,102,175,227,111,1,68,162,95,31,117,244,1,98,184,129,199,4,113,30,128,199,4,241,152,32,2,81,117,84,249,26,161,237,70,131,112,183,137,250,241,254,189,37,255,154,119,157,51,132,121,189,220,98,185,34,14,231,219,175,143,200,2,191,94,97,173,131,203,94,169,98,43,252,189,131,22,241,143,159,219,239,199,176,117,98,41,98,11,188,186,249,217,68,90,6,253,37,179,92,54,154,51,68,107,26,140,65,116,70,248,89,101,121,36,150,39,203,43,89,118,201,117,149,243,6,53,143,219,67,229,25,70,231,175,139,121,68,123,71,56,75,130,123,77,84,174,248,99,46,218,107,163,178,6,81,37,44,86,128,179,158,197,69,81,207,13,250,97,242,125,131,120,60,0,143,7,228,125,60,96,145,58,30,15,192,123,135,177,6,96,13,192,26,128,53,0,107,0,214,0,172,1,121,212,128,205,71,131,88,162,238,124,187,22,56,75,238,182,112,127,142,248,173,126,214,40,150,40,78,87,63,149,30,124,125,201,122,88,139,224,114,28,173,196,28,178,173,209,126,81,75,82,233,38,246,72,180,231,228,163,101,113,81,113,137,35,17,47,115,212,246,171,36,14,146,153,201,34,29,191,7,215,79,148,29,254,214,104,203,228,153,28,181,175,184,185,18,215,231,250,239,26,99,116,153,186,5,203,214,151,171,203,230,1,203,215,199,192,10,117,62,15,232,109,55,255,174,177,21,235,43,213,227,206,3,198,214,227,204,3,236,170,59,115,30,224,72,242,206,3,86,174,171,223,53,214,67,120,30,176,74,61,206,187,198,24,117,231,1,171,218,158,91,205,254,172,94,247,191,107,204,141,140,104,30,192,168,169,119,141,173,81,191,6,214,172,251,231,1,189,30,193,119,141,245,254,246,230,1,107,213,85,239,26,99,180,247,174,49,70,163,175,15,96,244,85,251,163,158,7,172,93,31,236,93,99,140,198,157,7,172,83,247,190,107,108,221,122,244,60,192,246,64,140,119,141,141,171,175,87,119,231,1,140,110,217,239,155,108,30,96,103,35,89,191,30,247,93,99,98,120,127,11,224,253,2,120,191,0,222,47,128,199,3,240,120,0,30,15,192,235,4,177,6,96,13,192,26,128,53,32,203,26,176,99,29,175,21,70,84,25,59,227,253,86,8,68,206,216,5,247,66,68,9,176,228,84,180,35,25,118,197,61,63,117,207,115,206,226,231,39,30,15,192,227,1,85,62,30,176,123,29,143,9,134,107,192,30,117,172,1,88,3,240,152,224,162,100,207,122,90,53,96,175,186,83,3,246,46,196,49,65,124,150,88,26,53,224,128,58,214,0,124,150,216,176,204,3,162,127,41,224,251,5,16,249,226,144,33,62,118,17,157,97,189,86,124,191,0,254,22,192,121,0,94,35,132,215,7,32,76,224,112,60,210,143,24,24,69,191,111,48,238,93,114,230,238,27,76,102,155,124,140,185,251,6,147,220,177,22,47,86,89,221,55,168,106,205,234,190,65,83,254,79,118,223,160,56,171,146,220,55,24,63,179,69,107,105,223,55,24,247,183,192,248,122,242,223,2,71,213,241,183,128,217,223,2,71,215,7,249,45,112,76,189,108,191,5,142,173,139,126,11,28,87,23,255,22,56,62,181,243,2,39,204,60,47,48,33,215,243,2,39,214,101,231,5,190,136,231,6,241,120,0,30,15,176,107,192,151,82,171,1,95,158,89,3,78,195,251,5,16,136,74,227,244,66,28,199,193,243,2,56,15,72,115,30,112,70,29,207,11,20,253,188,0,190,95,0,223,47,128,239,23,168,246,251,5,112,30,128,243,0,60,30,144,222,60,224,172,122,241,231,1,31,141,6,97,123,214,179,236,34,216,214,91,242,175,249,71,186,163,163,121,69,114,131,91,93,110,71,162,119,100,152,35,168,87,88,235,160,70,94,169,98,43,188,35,197,227,221,113,103,215,197,204,65,57,114,41,98,11,188,50,252,108,34,45,131,254,10,91,254,205,186,220,70,47,67,180,166,193,24,136,51,34,40,63,232,99,177,181,242,140,12,115,169,252,25,149,159,226,28,73,210,35,90,154,40,94,162,136,4,53,148,245,137,178,32,24,115,209,94,27,149,53,136,42,225,28,188,162,8,129,199,4,241,183,64,169,126,11,156,91,199,99,130,248,60,65,172,1,120,60,0,107,0,94,31,144,12,53,124,243,38,2,81,109,48,244,1,34,77,156,143,199,93,10,142,201,12,125,128,192,12,171,50,38,97,132,16,152,97,149,198,99,24,33,4,102,88,165,241,55,140,16,2,51,172,210,184,26,35,132,192,12,171,52,158,197,8,33,48,195,42,141,231,48,66,8,204,176,74,227,23,24,33,4,102,88,165,113,11,70,8,129,25,86,105,188,141,17,66,96,134,85,26,255,198,8,33,48,195,42,141,175,97,132,16,152,97,149,198,153,24,33,4,102,88,165,241,85,140,16,2,51,172,210,120,16,35,132,192,12,171,52,30,197,8,33,48,195,42,141,63,96,132,16,152,97,149,198,75,24,33,4,102,88,165,241,2,70,8,129,25,86,105,60,130,17,66,96,134,85,26,15,96,132,16,152,97,149,198,245,24,33,4,102,88,165,241,79,140,16,2,51,172,210,120,26,35,132,192,12,171,52,238,195,8,33,48,195,42,141,155,49,66,8,204,176,74,227,7,24,33,4,102,88,165,241,47,140,16,2,51,172,210,120,5,35,132,192,12,171,52,254,131,17,66,96,134,85,26,215,98,132,16,152,97,149,198,175,48,66,8,204,176,74,227,78,140,16,2,51,172,210,152,136,17,66,96,134,85,26,239,99,132,16,152,97,149,198,29,24,33,4,102,88,165,241,30,70,8,129,25,86,105,220,142,17,66,96,134,85,26,239,98,132,16,152,97,149,198,109,24,33,4,102,88,165,241,99,140,16,2,51,172,210,184,10,35,132,192,12,171,52,126,142,17,66,96,134,85,26,79,96,132,16,152,97,149,198,127,49,66,8,204,176,74,227,85,140,16,2,51,172,210,184,31,35,132,192,12,171,52,254,129,17,66,96,134,85,26,127,199,8,33,48,195,42,141,14,70,8,129,25,86,105,220,139,17,66,96,134,85,26,127,194,8,33,48,195,42,141,15,48,66,8,204,176,74,227,38,140,16,2,51,172,210,184,17,35,132,192,12,171,52,254,135,17,66,96,134,85,26,191,195,8,33,48,195,42,141,223,98,132,16,152,97,149,198,111,48,66,8,204,176,74,227,66,140,16,2,51,172,210,184,18,35,132,192,12,171,52,190,129,17,66,96,134,85,26,15,97,132,16,152,97,149,198,183,48,66,8,204,176,74,227,103,24,33,4,102,88,165,241,83,140,16,2,51,172,210,248,54,70,8,129,25,86,105,252,4,35,132,192,12,171,52,206,197,8,33,48,195,42,141,143,48,66,8,204,176,74,227,82,140,16,2,51,172,210,184,21,35,132,192,12,171,52,222,193,8,33,48,195,42,141,243,48,66,8,204,176,74,227,124,140,16,2,51,172,210,248,46,70,8,129,25,86,105,252,31,70,8,129,25,86,105,220,131,17,66,96,134,85,26,191,199,8,33,48,195,42,141,107,48,66,8,204,176,74,227,151,24,33,4,102,88,165,113,1,70,8,129,25,86,105,188,136,17,66,96,134,85,26,223,193,8,33,48,195,42,141,183,48,66,8,204,176,74,227,77,140,16,2,51,172,210,120,29,35,132,192,12,171,52,94,195,8,33,48,195,42,141,55,48,66,8,204,176,74,227,6,140,16,2,51,172,210,120,30,35,132,192,12,171,52,174,195,8,33,48,195,42,141,103,48,66,8,204,176,74,227,215,24,33,4,102,88,165,113,14,70,8,129,25,86,105,92,140,17,66,96,134,85,26,63,196,8,33,48,195,42,141,179,48,66,8,204,176,74,227,108,140,16,2,51,172,210,232,98,132,16,152,97,149,198,25,24,33,4,102,88,165,241,125,140,16,2,51,172,210,248,43,70,8,129,25,86,105,124,130,17,66,96,134,85,26,31,99,132,16,152,97,149,198,21,24,33,4,102,88,165,241,41,70,8,129,25,86,105,188,140,17,66,96,134,85,26,119,97,132,16,152,97,149,198,135,24,33,4,102,88,165,241,36,70,8,129,25,86,105,60,133,17,66,96,134,85,26,119,99,132,16,152,97,149,198,195,24,33,4,102,88,165,241,117,140,16,2,51,172,210,120,28,35,132,192,12,179,241,201,104,16,238,54,81,63,222,191,183,228,95,243,174,115,134,48,175,151,91,44,87,196,225,124,251,245,17,89,224,215,43,172,117,80,35,175,84,177,21,222,145,226,241,92,51,49,115,80,142,92,138,216,2,175,110,126,54,145,150,65,127,133,45,191,160,46,183,209,203,16,173,105,48,6,226,140,8,202,15,250,88,108,173,44,126,34,46,149,63,163,242,83,156,35,73,122,68,75,19,197,75,20,145,160,134,178,62,34,11,190,73,196,57,42,218,107,163,178,166,138,184,108,72,170,52,2,51,12,145,14,46,194,8,33,48,195,42,141,203,49,66,8,204,176,74,227,47,24,33,4,102,88,165,241,35,140,16,2,51,172,210,248,35,70,8,129,25,86,105,124,15,35,132,192,12,171,52,40,70,8,129,25,86,105,92,130,17,66,96,134,85,26,127,198,8,33,48,195,42,141,111,98,132,16,152,97,67,128,51,70,179,102,158,16,41,209,219,42,239,105,86,235,9,163,249,140,213,215,249,140,209,252,53,145,199,227,140,209,60,164,166,31,189,51,74,118,7,192,87,71,135,143,57,93,110,140,158,41,61,210,214,46,47,235,49,251,116,113,81,61,170,117,227,81,241,114,154,184,184,62,248,216,141,115,202,135,176,220,75,234,249,104,50,204,248,30,250,204,198,105,163,89,51,159,24,41,209,219,234,46,135,153,204,106,125,226,104,62,99,245,117,62,109,52,127,77,228,241,56,109,52,15,169,233,71,239,52,156,7,204,196,222,37,240,68,58,54,44,86,75,95,198,240,98,213,154,89,190,53,107,105,228,194,186,181,236,60,50,188,248,113,9,230,81,63,201,192,134,159,226,124,115,40,240,179,202,198,233,56,197,255,82,151,213,77,51,71,75,244,182,186,203,225,17,199,141,102,233,131,180,198,234,235,44,242,86,113,178,40,109,141,244,249,7,99,48,107,215,222,83,134,177,110,196,211,122,56,109,43,142,230,69,208,162,216,49,140,214,110,88,242,111,159,161,220,79,226,105,61,156,182,21,71,243,34,104,81,236,24,70,107,55,44,249,119,121,137,127,131,108,55,180,53,0,129,25,102,18,239,214,222,171,189,95,155,88,251,160,246,97,237,163,218,199,181,79,236,227,141,159,214,58,181,110,224,184,227,164,218,228,218,168,189,109,74,109,106,109,90,109,122,109,70,141,217,107,53,0,32,80,7,11,26,208,4,70,71,160,5,109,152,13,102,135,57,96,78,232,141,155,11,230,134,121,96,12,204,107,175,205,7,243,195,2,176,32,44,100,47,47,220,111,93,4,22,133,207,192,103,97,49,88,28,150,128,37,97,41,248,156,189,253,243,176,52,44,3,203,194,114,176,188,189,182,2,172,8,43,245,123,143,181,255,174,12,142,62,171,192,170,51,151,86,131,213,97,13,88,19,214,130,181,97,29,123,219,186,246,103,28,172,7,235,195,6,176,33,108,4,27,219,235,155,192,166,176,25,108,222,31,177,5,108,9,91,193,214,253,229,109,236,191,219,194,118,176,189,253,189,131,253,217,17,118,178,255,238,12,187,192,174,176,27,236,14,95,128,61,96,79,216,11,246,238,247,222,167,255,119,95,216,15,246,135,3,224,64,123,237,32,251,115,176,253,57,4,14,181,255,30,6,135,195,17,112,36,140,183,151,143,178,63,71,195,49,112,108,127,204,113,246,223,227,225,4,152,96,127,159,8,39,193,201,112,10,156,10,95,132,47,193,151,225,52,248,10,156,14,103,192,87,225,107,112,38,124,221,238,65,225,44,248,6,156,13,223,132,111,193,57,112,174,189,229,219,246,231,59,240,93,251,239,121,112,62,92,0,23,194,69,112,49,92,2,223,131,239,195,15,224,135,240,35,184,20,126,12,63,153,233,145,159,194,207,224,50,123,249,114,184,194,254,251,115,248,5,252,178,223,242,43,248,53,92,9,191,233,47,255,22,126,7,191,135,255,131,63,192,31,225,79,240,103,248,11,252,21,120,180,175,130,171,237,181,191,193,223,225,31,112,13,92,11,255,132,235,224,122,248,23,252,27,254,3,255,133,255,193,13,112,163,221,126,19,220,12,183,244,71,221,10,183,217,223,183,219,159,59,224,78,184,11,238,182,151,238,129,123,251,109,247,193,253,240,64,127,233,65,120,8,30,134,71,224,81,120,12,30,135,39,224,73,120,202,222,254,180,253,121,6,158,133,231,224,121,120,1,94,180,215,94,130,151,225,21,120,21,94,131,215,225,13,120,211,222,242,22,188,13,239,192,187,240,30,188,15,19,251,92,31,192,135,246,247,71,240,49,124,2,159,66,199,94,238,194,36,152,12,163,48,5,166,194,52,152,14,51,128,65,141,0,33,164,78,24,181,72,131,52,201,8,105,145,54,153,141,204,78,230,32,115,218,91,231,34,115,147,121,200,24,50,175,189,60,31,153,159,44,64,22,180,151,22,34,11,147,69,200,162,228,51,246,242,103,201,98,100,113,178,4,89,146,44,69,62,71,62,79,150,38,203,216,91,151,37,203,145,229,201,10,100,69,178,18,25,75,86,38,171,144,85,201,106,100,117,178,6,89,147,172,101,183,175,77,214,33,220,155,235,146,113,100,61,178,62,217,128,108,72,54,178,183,111,76,54,33,155,246,219,55,35,155,147,45,200,150,100,43,123,109,107,178,141,253,119,91,178,29,217,222,254,222,129,236,72,118,234,247,217,153,236,66,118,37,187,145,221,251,107,95,32,123,144,61,201,94,100,111,178,15,217,215,222,178,31,217,159,28,64,14,36,7,145,131,251,237,135,244,255,30,74,14,235,127,31,78,142,32,71,218,75,227,201,81,228,104,114,12,57,150,28,71,142,39,39,144,9,228,68,114,18,57,153,156,66,78,37,95,36,131,214,0,123,155,167,6,48,154,180,6,56,240,214,0,70,197,53,128,81,111,13,112,81,180,26,224,232,18,167,6,156,73,122,53,128,209,168,26,192,168,172,6,244,112,129,253,173,170,1,253,89,92,255,175,110,13,96,52,170,6,56,253,227,215,0,70,123,53,128,209,60,106,128,157,159,26,53,128,209,193,107,0,163,233,213,0,70,177,6,96,13,192,26,128,53,0,107,0,214,0,172,1,88,3,6,173,1,120,228,6,49,12,248,13,94,201,84,184,99,130,56,15,192,121,0,206,3,112,30,128,64,32,244,241,187,156,231,56,56,15,192,121,0,206,3,112,30,48,236,248,63,252,173,136,40,44,254,80,248,236,196,107,132,240,26,33,188,70,8,175,17,26,158,26,240,215,186,83,3,174,170,15,111,13,184,186,142,53,96,88,106,192,223,234,213,172,1,215,215,241,120,64,218,199,3,254,85,199,227,1,120,60,0,143,7,32,202,137,255,224,209,25,4,2,129,200,20,255,213,170,187,217,158,27,252,95,221,228,111,129,27,234,217,253,22,184,209,150,117,83,61,201,111,129,155,235,238,111,129,91,234,121,156,27,188,181,46,255,45,112,91,93,253,91,224,246,122,188,223,2,119,212,117,126,11,220,89,79,254,91,224,174,250,221,245,225,248,45,112,79,253,222,58,222,47,128,199,3,68,199,3,30,198,227,1,120,60,0,143,7,32,140,226,196,233,232,3,68,182,191,5,240,250,0,188,62,0,175,15,192,103,136,224,111,1,188,86,24,127,11,148,241,249,1,143,215,241,26,33,188,70,8,231,1,85,190,70,8,127,11,224,111,1,172,1,248,91,0,127,11,224,111,1,252,45,128,207,18,195,26,128,53,0,107,0,214,0,172,1,233,212,128,103,241,250,0,172,1,88,3,112,30,128,53,0,107,0,214,128,202,214,128,23,112,30,128,53,0,107,0,206,3,176,6,96,13,192,107,133,17,136,84,241,178,246,125,204,175,84,224,78,232,240,60,224,85,124,134,72,234,243,128,215,42,243,91,224,140,58,206,3,240,183,0,214,0,252,45,128,53,0,127,11,32,16,197,199,155,21,125,2,18,206,3,112,30,128,243,0,252,45,128,53,0,107,0,214,0,172,1,188,6,188,131,247,13,86,224,190,193,119,235,120,207,16,222,55,136,243,128,252,230,1,19,241,26,33,156,7,224,49,65,132,81,124,136,79,244,70,32,102,225,163,88,251,195,142,83,134,213,190,143,11,177,191,127,82,0,45,62,45,116,229,27,150,12,251,125,119,112,232,141,70,20,13,102,178,2,97,34,18,38,57,84,108,191,211,0,163,191,235,34,202,3,94,3,208,23,121,71,194,36,135,138,237,183,26,176,143,44,117,17,229,1,175,1,232,139,188,35,97,146,67,197,246,27,13,48,250,155,46,162,60,224,53,0,125,145,119,36,76,114,168,216,174,212,0,163,87,118,17,229,1,175,1,232,139,188,35,97,146,67,197,246,107,13,48,250,235,46,162,60,224,53,0,125,145,119,36,76,114,168,216,126,165,1,70,127,213,69,148,7,188,6,160,47,242,142,132,73,14,21,219,47,53,192,232,47,187,136,242,128,215,0,244,69,222,145,48,201,161,98,251,133,6,24,253,69,23,81,30,240,26,128,190,200,59,18,38,57,84,108,63,215,0,163,63,239,34,202,3,94,3,208,23,121,71,194,36,135,138,237,10,13,48,122,69,23,81,30,240,26,128,190,200,59,18,38,57,84,108,151,107,128,209,203,187,136,242,128,215,0,244,69,222,145,48,201,161,98,187,76,3,140,94,214,69,148,7,188,6,160,47,242,142,132,73,14,21,219,207,52,192,232,207,186,136,242,128,215,0,244,69,222,145,48,201,161,98,251,169,6,24,253,105,23,81,30,240,26,128,190,200,59,18,38,57,84,108,63,209,0,163,63,233,34,202,3,94,3,208,23,121,71,194,36,135,138,237,199,26,96,244,199,93,68,121,192,107,0,250,34,239,72,152,228,80,177,93,170,1,70,47,237,34,202,3,94,3,208,23,121,71,194,36,135,138,237,71,26,96,244,71,93,68,121,192,107,0,250,34,239,72,152,228,80,177,173,221,25,28,140,234,140,70,20,13,188,6,160,47,242,142,132,73,14,21,219,15,187,131,131,81,157,209,136,162,129,215,0,244,69,222,145,48,201,161,98,251,129,6,24,253,65,23,81,30,240,26,128,190,200,59,18,38,57,84,108,223,215,0,163,223,239,34,202,3,94,3,208,23,121,71,194,36,135,138,237,248,206,224,96,84,103,116,241,80,54,123,146,219,239,162,218,126,40,71,38,114,14,21,219,113,26,96,244,184,78,153,80,54,123,146,219,239,162,218,126,40,71,38,114,14,21,219,90,26,96,116,173,14,162,60,224,53,0,125,145,119,36,76,114,168,216,142,213,0,163,199,118,202,132,178,217,147,220,126,23,213,246,67,57,50,145,115,168,216,142,209,0,163,199,116,202,132,178,217,147,220,126,23,213,246,67,57,50,145,115,168,216,190,215,29,28,140,234,140,70,20,13,188,6,160,47,242,142,132,73,14,21,219,37,26,96,244,146,46,162,60,224,53,0,125,145,119,36,76,114,168,216,46,214,0,163,23,119,17,229,1,175,1,232,139,188,35,97,146,67,197,118,145,6,24,189,168,139,40,15,120,13,64,95,228,29,9,147,28,42,182,11,53,192,232,133,93,68,121,192,107,0,250,34,239,72,152,228,80,177,93,160,1,70,47,232,34,202,3,94,3,208,23,121,71,194,36,135,138,237,124,13,48,122,126,23,81,30,240,26,128,190,200,59,18,38,57,84,108,231,105,128,209,243,186,136,242,128,215,0,244,69,222,145,48,201,161,98,251,174,6,24,253,110,23,81,30,240,26,128,190,200,59,18,38,57,84,108,71,117,6,7,163,58,163,139,135,178,217,147,220,126,23,213,246,67,57,50,145,115,168,216,190,211,29,28,140,234,140,70,20,13,188,6,160,47,242,142,132,73,14,21,219,209,157,193,193,168,206,232,226,161,108,246,36,183,223,69,181,253,80,142,76,228,28,42,182,111,119,7,7,163,58,163,17,69,3,175,1,232,139,188,35,97,146,67,197,118,174,6,24,61,183,139,40,15,120,13,64,95,228,29,9,147,28,42,182,115,52,192,232,57,93,68,121,192,107,0,250,34,239,72,152,228,80,177,125,75,3,140,126,171,139,40,15,120,13,64,95,228,29,9,147,28,42,182,241,157,193,193,168,206,232,226,161,108,246,36,183,223,69,181,253,80,142,76,228,28,42,182,53,53,192,232,154,157,50,161,108,246,36,183,223,69,181,253,80,142,76,228,28,42,182,111,118,7,7,163,58,163,17,69,3,175,1,232,139,188,35,97,146,67,197,118,182,6,24,61,187,139,40,15,120,13,64,95,228,29,9,147,28,42,182,111,104,128,209,111,116,17,229,1,175,1,232,139,188,35,97,146,67,197,118,150,6,24,61,171,139,40,15,120,13,64,95,228,29,9,147,28,42,54,170,1,70,105,23,81,30,240,26,128,190,200,59,18,38,57,84,108,95,215,0,163,95,239,34,202,3,94,3,208,23,121,71,194,36,135,138,109,141,206,224,96,84,103,52,162,104,224,53,0,125,145,119,36,76,114,168,216,206,236,14,14,70,117,70,35,138,6,94,3,208,23,121,71,194,36,135,138,237,107,26,96,244,107,93,68,121,192,107,0,250,34,239,72,152,228,80,177,125,85,3,140,126,181,139,40,15,120,13,64,95,228,29,9,147,28,42,182,51,52,192,232,25,93,68,121,192,107,0,250,34,239,72,152,228,80,177,157,174,1,70,79,239,34,202,3,94,3,208,23,121,71,194,36,135,138,237,43,26,96,244,43,93,68,121,192,107,0,250,34,239,72,152,228,80,177,157,166,1,70,79,235,34,202,3,94,3,208,23,121,71,194,36,135,138,237,203,26,96,244,203,93,68,121,192,107,0,250,34,239,72,152,228,80,177,125,73,3,140,126,169,139,40,15,120,13,64,95,228,29,9,147,28,42,182,213,59,131,131,81,157,209,136,162,129,215,0,244,69,222,145,48,201,161,98,251,98,119,112,48,170,51,26,81,52,240,26,128,190,200,59,18,38,57,84,108,167,106,128,209,83,187,136,242,128,215,0,244,69,222,145,48,201,161,98,59,69,3,140,158,210,69,148,7,188,6,160,47,242,142,132,73,14,21,219,106,157,193,193,168,206,232,226,161,108,246,36,183,223,69,181,253,80,142,76,228,28,42,182,147,187,131,131,81,157,209,136,162,129,215,0,244,69,222,145,48,201,161,98,59,73,3,140,158,212,69,148,7,188,6,160,47,242,142,132,73,14,21,219,4,13,48,58,161,139,40,15,120,13,64,95,228,29,9,147,28,42,182,19,53,192,232,137,93,68,121,192,107,0,250,34,239,72,152,228,80,177,157,160,1,70,79,232,34,202,3,94,3,208,23,121,71,194,36,135,138,237,120,13,48,122,124,23,81,30,240,26,128,190,200,59,18,38,57,84,108,71,118,6,7,163,58,163,139,135,178,217,147,220,126,23,213,246,67,57,50,145,115,168,216,142,208,0,163,71,116,202,132,178,217,147,220,126,23,213,246,67,57,50,145,115,168,216,142,235,14,14,70,117,70,35,138,6,94,3,208,23,121,71,194,36,135,138,237,88,13,48,122,108,23,81,30,240,26,128,190,200,59,18,38,57,84,108,199,104,128,209,99,186,136,242,128,215,0,244,69,222,145,48,201,161,98,59,90,3,140,30,221,69,148,7,188,6,160,47,242,142,132,73,14,21,219,81,26,96,244,168,46,162,60,224,53,0,125,145,119,36,76,114,168,216,198,107,128,209,241,93,68,121,192,107,0,250,34,239,72,152,228,80,177,29,169,1,251,188,99,23,81,30,120,174,15,64,111,228,28,9,147,28,42,182,35,52,96,159,119,236,34,202,3,207,245,1,232,141,156,35,97,146,67,197,118,184,6,24,61,188,139,40,15,120,13,64,95,228,29,9,147,28,42,182,195,52,192,232,97,93,68,121,192,107,0,250,226,176,156,35,97,146,67,197,118,168,6,24,61,180,139,40,15,120,13,64,95,228,29,9,147,28,42,182,67,52,192,232,33,93,68,121,192,107,0,250,34,239,72,152,228,80,177,29,172,1,70,15,238,34,202,3,94,3,208,23,121,71,194,36,135,138,237,32,13,48,122,80,23,81,30,240,26,128,190,200,59,18,38,57,84,108,7,106,128,209,3,187,136,242,128,215,0,244,69,222,145,48,201,161,98,59,64,3,140,30,208,45,19,202,102,79,114,251,93,84,219,15,229,200,68,206,161,98,219,95,3,140,238,223,69,148,7,188,6,160,47,242,142,132,73,14,21,219,126,26,96,116,191,46,162,60,224,53,0,125,145,119,36,76,114,168,216,246,213,0,163,251,118,17,229,1,175,1,232,139,188,35,97,146,67,197,182,143,6,24,221,167,139,40,15,120,13,64,95,228,29,9,147,28,42,182,189,53,192,232,222,93,68,121,192,107,0,250,34,239,72,152,228,80,177,237,165,1,70,247,234,34,202,3,94,3,208,23,121,71,194,36,135,138,109,79,13,48,186,103,23,81,30,240,26,128,190,200,59,18,38,57,84,108,123,104,128,209,61,186,136,242,128,215,0,244,69,222,145,48,201,161,98,251,130,6,24,253,66,23,81,30,240,26,128,190,200,59,18,38,57,84,108,187,107,128,209,221,187,136,242,128,215,0,244,69,222,145,48,201,161,98,219,77,3,140,238,214,69,148,7,188,6,160,47,242,142,132,73,14,21,219,174,26,96,116,215,46,162,60,224,53,0,125,145,119,36,76,114,168,216,14,239,12,14,70,117,70,23,15,101,179,39,185,253,179,158,39,88,105,63,148,35,19,57,135,138,109,151,238,224,96,84,103,52,162,104,224,53,0,125,145,119,36,76,114,168,216,118,214,0,163,59,119,17,229,1,175,1,232,139,188,35,97,146,67,197,182,147,6,24,221,169,139,40,15,120,13,64,95,228,29,9,147,28,42,182,29,53,192,232,142,93,68,121,192,107,0,250,34,239,72,152,228,80,177,29,214,25,28,140,234,140,46,30,202,102,79,114,251,103,189,95,160,210,126,40,71,38,114,14,21,219,14,221,193,193,168,206,104,68,209,192,107,0,250,34,239,72,152,228,80,177,109,175,1,70,183,239,34,202,3,94,3,208,23,121,71,194,36,135,138,109,59,13,48,186,93,23,81,30,240,26,128,190,200,59,18,38,57,84,108,219,106,128,209,109,187,136,242,128,215,0,244,69,222,145,48,201,161,98,59,180,51,56,24,213,25,93,60,148,205,158,228,246,207,122,223,96,165,253,80,142,76,228,28,42,182,109,186,131,131,81,157,209,136,162,129,215,0,244,69,222,145,48,201,161,98,219,90,3,140,110,221,69,148,7,188,6,160,47,242,142,132,73,14,21,219,86,26,96,116,171,46,162,60,224,53,0,125,145,119,36,76,114,168,216,182,212,0,163,91,118,17,229,1,175,1,232,139,188,35,97,146,67,197,182,106,103,112,48,170,51,26,81,52,240,26,128,190,200,59,18,38,57,84,108,171,104,128,209,85,58,136,242,128,215,0,244,69,222,145,48,201,161,98,219,162,59,56,24,213,25,141,40,26,120,13,64,95,228,29,9,147,28,42,182,205,53,192,232,230,93,68,121,192,107,0,250,34,239,72,152,228,80,177,109,166,1,70,55,235,34,202,3,94,3,208,23,121,71,194,36,135,138,109,83,13,48,186,105,23,81,30,240,26,128,190,200,59,18,38,57,84,108,155,104,128,209,77,186,136,242,128,215,0,244,69,222,145,48,201,161,98,59,164,51,56,24,213,25,93,60,148,205,158,228,246,187,168,182,31,202,145,137,156,67,197,118,176,6,24,61,184,83,38,148,205,158,228,246,187,168,182,31,202,145,137,156,67,197,182,113,119,112,48,170,51,26,81,52,240,26,128,190,200,59,18,38,57,84,108,27,105,128,209,141,186,136,242,128,215,0,244,69,222,145,48,201,161,98,219,80,3,140,110,216,69,148,7,188,6,160,47,242,142,132,73,14,21,219,6,26,96,116,131,46,162,60,224,53,0,125,145,119,36,76,114,168,216,214,215,0,163,235,119,17,229,1,175,1,232,139,188,35,97,146,67,197,118,189,18,140,38,111,137,131,107,187,215,23,12,215,106,248,34,46,244,25,210,179,147,215,128,180,53,240,75,40,66,38,20,43,27,77,68,128,199,81,197,182,158,6,24,93,175,139,40,15,120,13,64,95,228,29,9,147,28,42,182,113,26,96,116,92,23,81,30,240,26,128,190,200,59,18,38,57,84,108,43,119,6,7,163,58,163,17,69,3,175,1,232,139,188,35,97,146,67,197,182,110,119,112,48,170,51,26,81,52,240,26,128,190,200,59,18,38,57,84,108,235,104,128,209,117,186,136,242,128,215,0,244,69,222,145,48,201,161,98,91,91,3,140,174,221,69,148,7,188,6,160,47,242,142,132,73,14,21,219,90,26,96,116,173,46,162,60,224,53,0,125,145,119,36,76,114,168,216,214,212,0,163,107,118,17,229,1,175,1,232,139,188,35,97,146,67,197,182,134,6,24,93,163,139,40,15,120,13,64,95,228,29,9,147,28,42,182,213,53,192,232,234,93,68,121,192,107,0,250,34,239,72,152,228,80,177,173,166,1,70,87,235,34,202,3,94,3,208,23,121,71,194,36,135,138,109,85,13,48,186,106,23,81,30,120,222,51,132,222,200,57,18,38,57,84,108,171,104,128,209,85,186,136,242,192,243,158,33,244,70,206,145,48,201,161,98,91,89,3,140,174,220,69,148,7,158,107,133,209,27,57,71,194,36,135,138,109,172,6,24,29,219,69,148,7,188,6,160,47,242,142,132,73,14,21,219,74,26,96,116,165,46,162,60,224,53,96,37,244,70,206,145,48,201,161,98,27,219,25,28,118,125,233,32,202,3,207,60,0,189,145,115,36,76,114,168,216,14,210,0,163,7,117,202,132,178,217,147,220,126,23,213,246,67,57,50,145,115,168,216,86,236,14,14,70,117,70,35,138,6,94,3,208,23,121,71,194,36,135,138,109,5,13,48,186,66,23,81,30,240,26,128,190,200,59,18,38,57,84,108,203,107,128,209,229,187,136,242,128,215,0,244,69,222,145,48,201,161,98,91,78,3,140,46,215,69,148,7,188,6,160,47,242,142,132,73,14,21,219,1,157,193,193,168,206,232,226,161,108,246,36,183,223,69,181,253,80,142,76,228,28,42,182,253,53,192,232,254,157,50,161,108,246,36,183,223,69,181,253,80,142,76,228,28,42,182,3,53,192,232,129,157,50,161,108,246,36,183,223,69,181,253,80,142,76,228,28,42,182,101,187,131,131,81,157,209,136,162,129,215,0,244,69,222,145,48,201,161,98,91,169,51,56,24,213,25,141,40,26,60,215,10,163,55,114,142,132,73,14,21,219,138,26,96,116,197,14,162,60,240,92,35,132,222,200,57,18,38,57,84,108,203,116,7,7,163,58,163,17,69,3,175,1,232,139,188,35,97,146,67,197,182,66,103,112,48,170,51,26,81,52,120,174,19,68,111,228,28,9,147,28,42,182,165,187,131,131,81,157,209,136,162,129,215,0,244,69,222,145,48,201,161,98,219,175,51,56,24,213,25,93,60,148,205,158,228,246,187,168,182,31,202,145,137,156,67,197,182,175,6,24,221,183,83,38,148,205,158,228,246,187,168,182,31,202,145,137,156,67,197,182,143,6,24,221,167,83,38,148,205,158,228,246,187,168,182,31,202,145,137,156,67,197,182,183,6,24,221,187,83,38,148,205,158,228,246,187,168,182,31,202,145,137,156,67,197,246,249,238,224,96,84,103,52,162,104,224,53,0,125,145,119,36,76,114,168,216,62,167,1,70,63,215,69,148,7,188,6,160,47,242,142,132,73,14,21,219,82,26,96,116,169,46,162,60,224,53,0,125,145,119,36,76,114,168,216,150,212,0,163,75,118,17,229,1,175,1,232,139,188,35,97,146,67,197,182,132,6,24,93,162,139,40,15,120,13,64,95,228,29,9,147,28,42,182,197,53,192,232,226,93,68,121,192,107,0,250,34,239,72,152,228,80,177,45,166,1,70,23,235,34,202,3,94,3,208,23,121,71,194,36,135,138,109,175,206,224,96,84,103,116,241,80,54,123,146,219,239,162,218,126,40,71,38,114,14,21,219,242,26,96,116,249,14,162,60,240,60,91,28,189,145,115,36,76,114,168,216,62,219,29,28,140,234,140,70,20,13,188,6,160,47,242,142,132,73,14,21,219,114,157,193,193,168,206,104,68,209,224,121,191,0,122,35,231,72,152,228,80,177,125,166,59,56,24,213,25,141,40,26,120,13,64,95,228,29,9,147,28,42,182,69,53,192,232,162,93,68,121,192,107,0,250,34,239,72,152,228,80,177,45,162,1,70,23,233,34,202,3,94,3,208,23,121,71,194,36,135,138,109,97,13,48,186,112,23,81,30,240,26,128,190,200,59,18,38,57,84,108,11,106,128,209,5,187,136,242,128,215,0,244,69,222,145,48,201,161,98,91,72,3,140,46,212,69,148,7,188,6,160,47,242,142,132,73,14,21,219,2,26,96,116,129,46,162,60,224,53,0,125,145,119,36,76,114,168,216,230,215,0,163,243,119,17,229,1,175,1,232,139,188,35,97,146,67,197,54,159,6,24,157,175,139,40,15,120,13,64,95,228,29,9,147,28,42,182,121,53,192,232,188,93,68,121,192,107,0,250,34,239,72,152,228,80,177,141,209,0,163,99,186,136,242,128,215,0,244,69,222,145,48,201,161,98,155,71,3,140,206,211,69,148,7,188,6,160,47,242,142,132,73,14,21,219,220,26,96,116,238,46,162,60,224,53,0,125,145,119,36,76,114,168,216,230,210,0,163,115,117,17,229,1,175,1,232,139,188,35,97,146,67,197,54,167,6,24,157,179,139,40,15,120,13,64,95,228,29,9,147,28,42,182,57,52,192,232,28,93,68,121,192,107,0,250,34,239,72,152,228,80,177,205,174,1,70,103,239,34,202,3,94,3,208,23,121,71,194,36,135,138,109,54,13,48,58,91,23,81,30,240,26,128,190,200,59,18,38,57,84,108,109,13,48,218,238,34,202,3,94,3,208,23,121,71,194,36,135,138,109,68,3,140,142,116,17,229,1,175,1,232,139,188,35,97,146,67,197,214,210,0,163,173,46,162,60,224,53,0,125,145,119,36,76,114,168,216,246,236,12,14,70,117,70,23,15,101,179,39,185,253,46,170,237,135,114,100,34,231,80,177,45,171,1,70,151,237,32,202,3,94,3,208,23,121,71,194,36,135,138,109,15,13,48,186,71,167,76,40,155,61,201,237,119,81,109,63,148,35,19,57,135,138,173,217,29,28,140,234,140,70,20,13,188,6,160,47,242,142,132,73,14,21,91,67,3,140,54,186,136,242,128,215,0,244,69,222,145,48,201,161,98,179,52,192,168,213,69,148,7,188,6,160,47,242,142,132,73,14,21,91,93,3,140,214,187,136,242,128,215,0,244,69,222,145,48,201,161,98,35,26,96,148,116,17,229,1,175,1,232,139,188,35,97,146,67,197,6,26,96,20,186,136,242,128,215,0,244,69,222,145,48,201,161,98,171,105,128,209,90,23,81,30,240,26,128,190,200,59,18,38,57,84,108,95,232,12,14,70,117,70,23,15,101,179,39,185,253,46,170,237,135,114,100,34,231,80,177,237,174,1,70,119,239,148,9,101,179,39,185,253,46,170,237,135,114,100,34,231,80,177,49,29,80,214,65,148,8,179,106,0,250,34,247,72,152,228,80,176,205,208,0,163,51,58,136,242,128,215,0,244,69,222,145,48,201,161,98,155,174,1,70,167,119,16,229,1,175,1,232,139,188,35,97,146,67,197,182,140,6,24,93,166,131,40,15,120,13,64,95,228,29,9,147,28,42,182,105,26,96,116,90,7,81,30,240,26,128,190,200,59,18,38,57,84,108,187,105,128,209,221,58,101,66,217,236,73,110,191,139,106,251,161,28,153,200,57,84,108,83,53,192,232,212,14,162,60,224,53,0,125,145,119,36,76,114,168,216,118,213,0,163,187,118,202,132,178,217,147,220,126,23,213,246,67,57,50,145,115,168,216,166,104,128,209,41,29,68,121,192,107,0,250,34,239,72,152,228,80,177,141,106,128,209,209,14,162,60,224,53,0,125,145,119,36,76,114,168,216,38,107,128,209,201,29,68,121,192,107,0,250,34,239,72,152,228,80,177,77,210,0,163,147,58,136,242,128,215,0,244,69,222,145,48,201,161,98,235,106,128,209,110,7,81,30,240,26,128,190,200,59,18,38,57,84,108,58,255,24,237,148,234,95,217,236,73,110,191,139,106,251,161,28,153,200,57,84,108,159,106,128,209,79,59,136,242,128,215,0,244,69,222,145,48,201,161,98,251,68,3,140,126,210,65,148,7,188,6,160,47,242,142,132,73,14,21,219,199,26,96,244,227,14,162,60,224,53,0,125,145,119,36,76,114,168,216,62,210,0,163,31,117,16,229,1,175,1,232,139,188,35,97,146,67,197,182,180,6,24,93,186,131,40,15,120,13,64,95,228,29,9,147,28,42,182,93,52,192,232,46,157,50,161,108,246,36,183,223,69,181,253,80,142,76,228,28,42,182,15,53,192,232,135,29,68,121,192,107,0,250,34,239,72,152,228,80,177,125,94,3,140,126,190,131,40,15,120,13,64,95,228,29,9,147,28,42,182,157,53,192,232,206,157,50,161,108,246,36,183,223,69,181,253,80,142,76,228,28,42,182,15,52,192,232,7,29,68,121,192,107,0,250,34,239,72,152,228,80,177,77,212,0,163,19,59,136,242,128,215,0,244,69,222,145,48,201,161,98,123,95,3,140,190,223,65,148,7,188,6,160,47,242,142,132,73,14,21,219,123,26,96,244,189,14,162,60,224,53,0,125,145,119,36,76,114,168,216,222,213,0,163,239,118,16,229,1,175,1,232,139,188,35,97,146,67,197,246,142,6,24,125,167,131,40,15,120,13,64,95,228,29,9,147,28,42,182,183,53,192,232,219,29,68,121,192,107,0,250,34,239,72,152,228,80,177,189,165,1,70,223,234,32,202,3,94,3,208,23,121,71,194,36,135,138,237,77,13,48,250,102,7,81,30,240,26,128,190,200,59,18,38,57,84,108,111,104,128,209,55,58,136,242,128,215,0,244,69,222,145,48,201,161,98,123,93,3,140,190,222,65,148,7,188,6,160,47,242,142,132,73,14,21,219,107,26,96,244,181,14,162,60,224,53,0,125,145,119,36,76,114,168,216,118,210,0,163,59,117,202,132,178,217,147,220,126,23,213,246,67,57,50,145,115,168,216,94,213,0,163,175,118,16,229,1,175,1,232,139,188,35,97,146,67,197,182,163,6,24,221,177,83,38,148,205,158,228,246,187,168,182,31,202,145,137,156,67,197,246,138,6,24,125,165,131,40,15,120,13,64,95,228,29,9,147,28,42,182,151,53,192,232,203,29,68,121,192,107,0,250,34,239,72,152,228,80,177,189,164,1,70,95,234,32,202,3,94,3,208,23,121,71,194,36,135,138,237,69,13,48,250,98,7,81,30,240,26,128,190,200,59,18,38,57,84,108,47,104,128,209,23,58,136,242,128,215,0,244,69,222,145,48,201,161,98,123,94,3,140,62,223,65,148,7,188,6,160,47,242,142,132,73,14,21,219,115,26,96,244,185,14,162,60,224,53,0,125,145,119,36,76,114,168,216,158,213,0,163,207,118,16,229,1,175,1,232,139,188,35,97,146,67,197,246,140,6,24,125,166,131,40,15,120,13,64,95,228,29,9,147,28,42,182,167,53,192,232,211,29,68,121,192,107,0,250,34,239,72,152,228,80,177,61,165,1,70,159,234,32,202,3,94,3,208,23,121,71,194,36,135,138,237,73,13,48,250,100,7,81,30,240,26,128,190,200,59,18,38,57,84,108,79,104,128,209,39,58,136,242,128,215,0,244,69,222,145,48,201,161,98,219,65,3,140,238,208,41,19,202,102,79,114,251,93,84,219,15,229,200,68,206,161,98,123,92,3,140,62,222,65,148,7,188,6,160,47,242,142,132,73,14,21,219,99,26,96,244,177,14,162,60,224,53,0,125,145,119,36,76,114,168,216,30,213,0,163,143,118,16,229,1,175,1,232,139,188,35,97,146,67,197,246,176,6,24,125,184,131,40,15,120,13,64,95,228,29,9,147,28,42,182,135,52,192,232,67,29,68,121,192,107,0,250,34,239,72,152,228,80,177,61,162,1,70,31,233,32,202,3,94,3,208,23,121,71,194,36,135,138,237,65,13,48,250,96,7,81,30,240,26,128,190,200,59,18,38,57,84,108,15,104,128,209,7,58,136,242,128,215,0,244,69,222,145,48,201,161,98,187,95,3,140,222,223,65,148,7,188,6,160,47,242,142,132,73,14,21,219,125,26,96,244,190,14,162,60,224,53,0,125,145,119,36,76,114,168,216,238,213,0,163,247,118,16,229,1,175,1,232,139,188,35,97,146,67,197,118,143,6,24,189,167,131,40,15,120,13,64,95,228,29,9,147,28,42,182,187,53,192,232,221,29,68,121,192,107,0,250,34,239,72,152,228,80,177,221,165,1,70,239,234,32,202,3,94,3,208,23,121,71,194,36,135,138,237,78,13,48,122,103,7,81,30,240,26,128,190,200,59,18,38,57,84,108,119,104,128,209,59,58,136,242,128,215,0,244,69,222,145,48,201,161,98,187,93,3,140,222,222,65,148,7,188,6,160,47,242,142,132,73,14,21,219,109,26,96,244,182,14,162,60,224,53,0,125,145,119,36,76,114,168,216,110,213,0,163,183,118,16,229,1,175,1,232,139,188,35,97,146,67,197,246,57,13,48,250,185,14,162,60,224,53,0,125,145,119,36,76,114,168,216,110,209,0,163,183,116,16,229,1,175,1,232,139,188,35,97,146,67,197,118,179,6,24,189,185,131,40,15,120,13,64,95,228,29,9,147,28,42,182,155,52,192,232,77,29,68,121,192,107,0,250,34,239,72,152,228,80,177,221,168,1,70,111,236,32,202,3,94,3,208,23,121,71,194,36,135,138,237,6,13,48,122,67,7,81,30,240,26,128,190,200,59,18,38,57,84,108,219,107,128,209,237,59,101,66,217,236,73,110,191,139,106,251,161,28,153,200,57,84,108,255,211,0,163,255,235,32,202,3,94,3,208,23,121,71,194,36,135,138,237,191,26,96,244,191,29,68,121,192,107,0,250,34,239,72,152,228,80,177,253,71,3,140,254,167,131,40,15,120,13,64,95,228,29,9,147,28,42,182,127,107,128,209,127,119,16,229,1,175,1,232,139,188,35,97,146,67,197,246,47,13,48,250,175,14,162,60,224,53,0,125,145,119,36,76,114,168,216,174,215,0,163,215,119,16,229,1,175,1,232,139,188,35,97,146,67,197,118,157,6,24,189,174,131,40,15,120,13,64,95,228,29,9,147,28,42,182,127,106,128,209,127,118,16,229,1,175,1,232,139,188,35,97,146,67,197,118,173,6,24,189,182,131,40,15,120,13,64,95,228,29,9,147,28,42,182,107,52,192,232,53,29,68,121,192,107,0,250,34,239,72,152,228,80,177,253,67,3,140,254,163,131,40,15,120,13,64,95,228,29,9,147,28,42,182,191,107,128,209,191,119,16,229,1,175,1,232,139,188,35,97,146,67,197,246,55,13,48,250,183,14,162,60,224,53,0,125,145,119,36,76,114,168,216,174,214,0,163,87,119,16,229,1,175,1,232,139,188,35,97,146,67,197,118,149,6,24,189,170,131,40,15,120,13,64,95,228,29,9,147,28,42,182,191,106,128,209,191,118,16,229,1,175,1,232,139,188,35,97,146,67,197,182,157,6,24,221,174,83,38,148,205,158,228,246,187,168,182,31,202,145,137,156,67,197,246,23,13,48,250,151,14,162,60,224,53,0,125,145,119,36,76,114,168,216,254,172,1,70,255,220,65,148,7,188,6,160,47,242,142,132,73,14,21,219,159,52,192,232,159,58,136,242,128,215,0,244,69,222,145,48,201,161,98,91,74,3,140,46,213,65,148,7,188,6,160,47,242,142,132,73,14,21,219,31,53,192,232,31,59,136,242,128,215,0,244,69,222,145,48,201,161,98,251,131,6,24,253,67,7,81,30,240,26,128,190,200,59,18,38,57,84,108,219,106,128,209,109,59,101,66,217,236,73,110,191,139,106,251,161,28,153,200,57,84,108,255,167,1,70,255,175,131,40,15,120,13,64,95,228,29,9,147,28,42,182,223,107,128,209,223,119,16,229,1,175,1,232,139,188,35,97,146,67,197,246,59,13,48,250,187,14,162,60,224,53,0,125,145,119,36,76,114,168,216,126,171,1,70,127,219,65,148,7,188,6,160,47,242,142,132,73,14,21,219,111,52,192,232,111,58,136,242,128,215,0,244,69,222,145,48,201,161,98,187,82,3,140,94,217,65,148,7,188,6,160,47,242,142,132,73,14,21,219,175,53,192,232,175,59,136,242,128,215,0,244,69,222,145,48,201,161,98,251,149,6,24,253,85,7,81,30,240,26,128,190,200,59,18,38,57,84,108,191,212,0,163,191,236,32,202,3,94,3,208,23,121,71,194,36,135,138,237,23,26,96,244,23,29,68,121,192,107,0,250,34,239,72,152,228,80,177,253,92,3,140,254,188,131,40,15,120,13,64,95,228,29,9,147,28,42,182,43,52,192,232,21,29,68,121,192,107,0,250,34,239,72,152,228,80,177,93,174,1,70,47,239,32,202,3,94,3,208,23,121,71,194,36,135,138,237,50,13,48,122,89,7,81,30,240,26,128,190,200,59,18,38,57,84,108,219,104,128,209,109,58,101,66,217,236,73,110,191,139,106,251,161,28,153,200,57,84,108,63,211,0,163,63,235,32,202,3,94,3,208,23,121,71,194,36,135,138,237,167,26,96,244,167,29,68,121,192,107,0,250,34,239,72,152,228,80,177,253,68,3,140,254,164,131,40,15,120,13,64,95,228,29,9,147,28,42,182,31,107,128,209,31,119,16,229,1,175,1,232,139,188,35,97,146,67,197,182,164,6,24,93,178,131,40,15,120,13,64,95,228,29,9,147,28,42,182,75,53,192,232,165,29,68,121,192,107,0,250,34,239,72,152,228,80,177,253,72,3,140,254,168,131,40,15,120,13,64,95,228,29,9,147,28,42,182,31,106,128,209,31,118,16,229,1,175,1,232,139,188,35,97,146,67,197,246,3,13,48,250,131,14,162,60,224,53,0,125,145,119,36,76,114,168,216,190,175,1,70,191,223,65,148,7,188,6,160,47,242,142,132,73,14,21,219,247,52,192,232,247,58,136,242,128,215,0,244,197,247,114,142,132,73,14,21,219,214,26,96,116,235,78,153,80,54,123,146,219,239,162,218,126,40,71,38,114,14,21,219,86,26,96,116,171,78,153,80,54,123,146,219,239,162,218,126,40,71,38,114,14,21,219,37,26,96,244,146,14,162,60,224,53,0,125,145,119,36,76,114,168,216,46,214,0,163,23,119,16,229,1,175,1,232,139,188,35,97,146,67,197,182,165,6,24,221,178,83,38,148,205,158,228,246,187,168,182,31,202,145,137,156,67,197,118,145,6,24,189,168,131,40,15,120,13,64,95,228,29,9,147,28,42,182,45,52,192,232,22,157,50,161,108,246,36,183,223,69,181,253,80,142,76,228,28,42,182,11,53,192,232,133,29,68,121,192,107,0,250,34,239,72,152,228,80,177,93,160,1,70,47,232,32,202,3,94,3,208,23,121,71,194,36,135,138,237,60,13,48,122,94,7,81,30,240,26,128,190,200,59,18,38,57,84,108,231,107,128,209,243,59,136,242,128,215,0,244,69,222,145,48,201,161,98,251,174,6,24,253,110,7,81,30,240,26,128,190,200,59,18,38,57,84,108,223,209,0,163,223,233,32,202,3,94,3,208,23,121,71,194,36,135,138,237,219,26,96,244,219,29,68,121,192,107,0,250,34,239,72,152,228,80,177,157,171,1,70,207,237,32,202,3,94,3,208,23,121,71,194,36,135,138,237,28,13,48,122,78,7,81,30,240,26,128,190,200,59,18,38,57,84,108,223,210,0,163,223,234,32,202,3,94,3,208,23,121,71,194,36,135,138,237,155,26,96,244,155,29,68,121,192,107,0,250,34,239,72,152,228,80,177,157,173,1,70,207,238,32,202,3,94,3,208,23,121,71,194,36,135,138,237,27,26,96,244,27,29,68,121,192,107,0,250,34,239,72,152,228,80,177,157,165,1,70,207,234,32,202,3,94,3,208,23,121,71,194,36,135,138,141,106,128,81,218,65,148,7,188,6,160,47,242,142,132,73,14,21,219,215,53,192,232,215,59,136,242,128,215,0,244,69,222,145,48,201,161,98,59,83,3,140,158,217,65,148,7,188,6,160,47,242,142,132,73,14,21,219,230,26,96,116,243,78,153,80,54,123,146,219,239,162,218,126,40,71,38,114,14,21,219,215,52,192,232,215,58,136,242,128,215,0,244,69,222,145,48,201,161,98,219,76,3,140,110,214,41,19,202,102,79,114,251,93,84,219,15,229,200,68,206,161,98,251,170,6,24,253,106,7,81,30,240,26,128,190,200,59,18,38,57,84,108,75,104,128,209,37,58,136,242,128,215,0,244,69,222,145,48,201,161,98,59,67,3,140,158,209,65,148,7,188,6,160,47,242,142,132,73,14,21,219,233,26,96,244,244,14,162,60,224,53,0,125,145,119,36,76,114,168,216,190,162,1,70,191,210,65,148,7,188,6,160,47,242,142,132,73,14,21,219,105,26,96,244,180,14,162,60,224,53,0,125,145,119,36,76,114,168,216,190,172,1,70,191,220,65,148,7,188,6,160,47,242,142,132,73,14,21,219,151,52,192,232,151,58,136,242,128,215,0,244,69,222,145,48,201,161,98,251,162,6,24,253,98,7,81,30,240,26,128,190,200,59,18,38,57,84,108,167,106,128,209,83,59,136,242,128,215,0,244,69,222,145,48,201,161,98,59,69,3,140,158,210,65,148,7,188,6,160,47,242,142,132,73,14,21,219,201,26,96,244,228,14,162,60,224,53,0,125,145,119,36,76,114,168,216,54,213,0,163,155,118,202,132,178,217,147,220,126,23,213,246,67,57,50,145,115,168,216,54,209,0,163,155,116,202,132,178,217,147,220,126,23,213,246,67,57,50,145,115,168,216,54,214,0,163,27,119,202,132,178,217,147,220,126,23,213,246,67,57,50,145,115,168,216,54,210,0,163,27,117,202,132,178,217,147,220,126,23,213,246,67,57,50,145,115,168,216,54,212,0,163,27,118,202,132,178,217,147,220,126,23,213,246,67,57,50,145,115,168,216,54,208,0,163,27,116,202,132,178,217,147,220,126,23,213,246,67,57,50,145,115,168,216,214,215,0,163,235,119,202,132,178,217,147,220,126,23,213,246,67,57,50,145,115,168,216,214,211,0,163,235,117,202,132,178,217,147,220,126,23,213,246,67,57,50,145,115,168,216,198,105,128,209,113,157,50,161,108,246,36,183,223,69,181,253,80,142,76,228,28,42,182,117,53,192,232,186,157,50,161,108,246,36,183,223,69,181,253,80,142,76,228,28,42,182,117,52,192,232,58,157,50,161,108,246,36,183,223,69,181,253,80,142,76,228,28,42,182,147,52,192,232,73,29,68,121,192,107,0,250,34,239,72,152,228,80,177,157,168,1,70,79,236,32,202,3,94,3,208,23,121,71,194,36,135,138,109,130,6,24,157,208,65,148,7,188,6,160,47,242,142,132,73,14,21,219,9,26,96,244,132,14,162,60,224,53,0,125,145,119,36,76,114,168,216,120,220,171,134,19,89,117,109,71,96,134,33,170,140,201,117,244,1,2,209,195,104,9,247,133,41,184,127,35,16,8,5,94,232,162,62,69,247,73,150,184,174,171,130,188,79,156,209,114,92,211,189,174,96,184,70,195,23,113,161,207,144,158,157,73,178,194,164,23,138,144,9,197,202,70,19,17,224,113,84,177,253,83,9,70,147,183,12,39,212,246,232,91,92,100,159,241,26,80,52,191,87,67,7,179,218,112,14,21,219,63,52,192,232,63,186,213,130,190,197,69,246,25,175,1,101,241,246,176,230,146,9,203,121,28,85,108,213,253,21,116,244,12,60,50,128,192,12,99,244,250,174,10,242,62,113,70,15,19,212,246,232,91,92,100,159,37,201,138,108,253,94,13,29,204,106,195,57,84,108,213,173,210,199,224,60,0,129,25,150,0,231,140,14,222,154,189,62,217,48,20,223,198,234,104,53,136,206,254,173,230,237,26,30,79,189,220,229,223,47,119,101,61,228,45,222,239,112,139,120,203,203,93,185,54,254,54,89,79,153,100,149,174,124,156,43,41,44,81,37,83,44,43,202,143,241,108,15,202,247,50,137,117,141,31,221,232,104,13,154,47,113,162,33,143,74,92,107,226,244,10,199,66,244,137,178,36,58,195,7,241,92,208,67,201,50,59,184,38,207,161,96,31,185,197,98,228,119,125,64,241,160,182,167,28,215,7,92,151,251,245,1,197,243,73,177,226,98,230,250,128,184,108,239,214,222,171,189,95,155,88,251,160,246,97,237,163,218,199,181,79,106,140,126,90,235,212,186,53,171,214,168,241,172,152,84,155,92,27,181,215,167,212,166,214,166,213,166,215,102,212,152,189,86,3,0,2,117,176,160,1,77,96,116,4,90,208,134,217,96,118,152,3,230,132,222,184,185,96,110,152,7,198,192,188,246,218,124,48,63,44,0,11,194,66,246,242,194,253,214,69,96,81,248,12,124,22,22,131,197,97,9,88,18,150,130,207,217,219,63,15,75,195,50,176,44,44,7,203,219,107,43,192,138,176,82,191,247,88,251,239,202,224,232,179,10,172,58,115,105,53,88,29,214,128,53,97,45,88,27,214,177,183,173,107,127,198,193,122,176,62,108,0,27,194,70,176,177,189,190,9,108,10,155,193,230,253,17,91,192,150,176,21,108,221,95,222,198,254,187,45,108,7,219,219,223,59,216,159,29,97,39,251,239,206,176,11,236,10,187,193,238,240,5,216,3,246,132,189,96,239,126,239,125,250,127,247,133,253,96,127,56,0,14,180,215,14,178,63,7,195,244,250,33,112,168,189,116,24,28,14,71,192,145,48,222,94,62,202,254,28,13,199,192,177,253,49,199,217,127,143,135,19,96,130,253,125,117,253,36,56,25,78,129,83,225,139,240,37,248,50,156,6,95,129,211,225,12,248,42,124,13,206,132,175,219,61,40,156,5,223,128,179,225,155,240,45,56,7,206,181,183,124,219,254,124,7,190,107,255,61,15,206,135,11,224,66,184,8,46,134,75,224,123,240,125,248,1,252,16,126,4,151,194,143,225,39,51,61,242,83,248,25,92,102,47,95,14,87,216,127,127,14,191,128,95,246,91,126,5,191,134,43,225,55,253,229,223,194,239,224,247,240,127,240,7,248,35,252,9,254,12,127,129,191,2,143,246,85,112,181,189,246,55,248,59,252,3,174,129,107,225,159,112,29,92,15,255,130,127,195,127,224,191,240,63,184,1,110,180,219,111,130,155,225,150,254,168,91,225,54,251,251,118,251,115,7,220,9,119,193,221,246,210,61,112,111,191,237,62,184,31,30,232,47,61,8,15,193,195,240,8,60,10,143,193,227,240,4,60,9,79,217,219,159,182,63,207,192,179,240,28,60,15,47,192,139,246,218,75,240,50,188,2,175,194,107,240,58,188,1,111,218,91,222,130,183,225,29,120,23,222,131,247,97,98,159,235,3,248,208,254,254,8,62,134,79,224,83,232,216,203,93,152,4,147,97,20,166,192,84,152,6,211,97,6,48,168,17,32,132,212,9,163,22,105,144,38,25,33,45,210,38,179,145,217,201,28,100,78,123,235,92,100,110,50,15,25,67,230,181,151,231,35,243,147,5,200,130,246,210,66,100,97,178,8,89,148,124,198,94,254,44,89,140,44,78,150,32,75,146,165,200,231,200,231,201,210,100,25,123,235,178,100,57,178,60,89,129,172,72,86,34,99,201,202,100,21,178,42,89,141,172,78,214,32,107,146,181,236,246,181,201,58,132,123,115,93,50,142,172,71,214,39,27,144,13,201,70,246,246,141,201,38,100,211,126,251,102,100,115,178,5,217,146,108,101,175,109,77,182,177,255,110,75,182,35,219,219,223,59,144,29,201,78,253,62,59,147,93,200,174,100,55,178,123,127,237,11,100,15,178,39,217,139,236,77,246,33,251,218,91,246,35,251,147,3,200,129,228,32,114,112,191,253,144,254,223,67,201,97,253,239,195,201,17,228,72,123,105,60,57,138,28,77,142,33,199,146,227,200,241,228,4,50,129,156,72,78,34,39,147,83,200,169,228,139,228,211,209,32,236,26,224,89,118,17,108,235,45,249,215,252,35,221,209,209,188,34,185,97,22,206,229,215,39,204,17,212,43,172,117,80,35,175,84,177,21,222,145,226,241,92,51,49,115,80,142,92,138,216,2,175,110,126,54,145,150,65,127,169,98,33,139,182,74,211,96,12,196,25,17,148,31,244,177,216,90,121,70,134,185,84,254,140,202,79,181,71,196,89,20,37,203,43,45,74,83,81,68,194,89,18,220,107,162,114,69,156,105,106,125,229,243,0,255,111,134,224,60,192,222,230,153,7,48,154,116,30,224,192,59,15,96,84,60,15,96,212,59,15,112,161,63,15,104,79,49,53,15,176,171,239,76,93,226,204,3,206,36,189,121,0,163,81,243,0,70,101,243,128,30,46,176,191,85,243,128,222,247,229,253,191,186,243,0,70,163,230,1,78,255,248,243,0,70,123,243,0,70,243,152,7,216,249,169,49,15,96,52,233,60,160,151,97,206,60,128,209,244,230,1,140,234,206,3,28,45,255,59,107,230,210,180,76,30,111,28,145,178,221,104,75,108,9,91,219,51,183,222,68,226,201,152,45,177,198,179,71,140,184,53,36,245,182,72,61,110,247,181,206,161,225,189,57,181,60,63,97,250,92,3,140,191,155,232,200,140,135,185,7,208,235,62,129,94,79,212,230,233,51,61,160,161,243,152,62,195,188,179,52,122,184,207,245,72,128,241,209,254,250,99,177,228,60,238,235,53,159,192,214,39,251,61,230,159,217,242,116,128,117,1,123,251,179,190,109,11,14,224,175,23,50,136,35,2,81,110,92,143,123,145,4,151,151,248,110,244,237,166,96,124,17,152,97,140,238,52,35,8,119,155,168,31,239,223,91,242,175,121,215,57,67,152,215,203,45,150,43,226,112,190,253,250,136,44,240,235,21,214,58,184,236,149,42,182,194,223,59,104,17,255,248,185,253,126,12,91,39,150,34,182,192,171,155,159,77,164,101,208,95,50,203,101,163,57,67,180,166,193,24,136,51,34,40,63,232,99,177,181,178,248,137,184,84,254,140,202,79,113,142,36,233,161,242,76,56,94,162,136,4,53,148,245,137,206,118,127,204,69,123,109,84,214,148,17,123,13,225,245,108,217,216,176,88,173,108,126,50,137,85,107,102,249,214,172,165,145,11,235,70,176,142,155,217,182,94,76,201,213,61,47,208,91,198,243,2,120,94,32,189,243,2,179,246,215,161,56,47,128,168,50,150,182,170,109,127,213,129,243,0,156,7,224,60,0,231,1,136,106,97,89,252,127,31,129,243,128,156,231,1,203,89,56,15,192,121,64,81,230,1,88,3,240,183,0,214,0,252,45,80,76,92,58,173,232,115,168,226,107,136,64,224,111,1,156,7,224,60,0,231,1,120,76,16,129,40,50,86,202,249,24,45,206,3,242,152,7,140,197,99,130,56,15,192,121,128,65,172,130,231,186,16,133,197,170,152,157,8,4,162,55,95,181,107,193,234,133,172,7,131,254,22,200,231,121,130,127,173,59,207,19,188,170,94,180,223,2,248,60,193,50,62,79,240,111,245,42,60,79,16,235,51,2,145,5,214,178,231,0,107,151,106,30,192,6,58,38,184,142,101,242,152,224,13,245,236,230,1,55,218,178,214,181,228,243,0,71,43,239,60,224,230,186,59,15,184,165,158,199,185,193,91,235,242,99,130,183,213,213,243,128,219,235,241,142,9,222,81,215,57,38,120,103,61,249,60,224,174,250,221,245,225,56,38,120,79,253,222,58,30,19,68,32,242,193,122,120,44,174,144,243,0,60,55,136,215,8,225,185,65,188,95,0,107,0,214,0,172,1,101,168,1,120,94,0,207,11,224,121,129,114,156,23,24,180,6,156,198,112,30,48,248,60,96,35,188,78,16,231,1,248,91,160,210,53,96,83,172,1,88,3,176,6,84,186,6,108,158,107,13,248,18,203,170,6,244,36,97,13,192,26,128,53,0,143,9,98,13,192,26,128,53,0,107,0,214,0,188,70,8,129,72,11,107,207,168,10,91,126,50,16,136,34,99,157,25,85,97,203,79,6,2,81,126,108,83,209,171,139,241,120,0,30,15,192,227,1,120,60,0,81,4,220,53,21,125,128,64,32,178,197,207,167,151,195,142,213,102,84,133,45,13,25,120,191,64,53,239,23,216,206,194,251,5,240,126,1,252,45,128,40,11,118,48,122,52,111,71,163,108,59,101,112,164,113,103,124,86,2,98,64,236,130,185,131,40,48,118,197,252,68,32,16,21,194,110,88,243,16,133,192,238,185,103,226,23,134,120,95,216,35,55,221,191,82,146,35,252,81,22,238,105,220,187,123,229,158,107,123,219,26,236,51,83,139,125,241,127,129,140,113,207,40,250,0,129,25,38,58,55,184,191,85,141,235,4,95,233,224,117,130,120,157,96,154,215,9,246,50,172,7,188,78,176,168,184,15,231,1,8,204,176,4,248,214,232,224,173,217,235,83,5,159,163,86,104,23,66,15,239,225,253,150,8,204,176,74,227,109,140,16,2,51,172,210,120,11,35,132,192,12,171,52,222,197,8,33,48,195,42,141,119,48,66,8,204,48,58,108,247,14,51,186,242,204,51,210,120,239,48,190,107,204,228,189,195,215,19,213,245,1,229,189,119,248,238,174,10,140,38,111,9,247,11,247,141,59,58,61,4,53,80,107,36,182,68,71,102,218,54,37,27,235,34,109,29,253,18,100,242,242,207,144,162,100,102,210,158,254,60,85,177,85,119,166,182,97,169,158,221,117,29,62,9,66,11,215,19,204,176,234,97,131,82,69,168,92,214,148,195,127,24,147,162,99,189,82,69,168,92,214,148,195,127,24,19,196,176,224,48,188,103,181,210,192,243,2,89,159,23,56,17,78,130,195,45,60,47,48,12,207,20,173,198,121,1,172,130,121,96,124,174,255,243,174,138,115,84,132,7,19,166,5,225,110,19,245,227,253,123,75,254,53,239,58,103,8,243,122,185,197,114,69,28,206,183,95,31,145,5,126,189,194,90,7,151,189,82,197,86,248,123,7,45,226,31,63,183,223,143,97,235,196,82,196,22,120,117,243,179,137,180,12,250,75,102,185,108,52,103,136,214,52,24,3,113,70,4,229,7,125,44,182,86,22,63,17,151,202,159,81,249,41,206,145,36,61,84,158,9,199,75,20,145,160,134,178,62,209,217,238,143,185,104,175,21,227,132,16,24,117,191,189,240,183,57,75,254,53,239,58,103,8,243,122,185,197,114,69,28,206,183,95,159,48,71,80,175,176,214,193,101,175,84,177,21,254,222,65,139,248,199,207,237,247,99,216,58,177,20,177,5,94,221,252,108,34,45,131,254,146,89,46,27,205,25,162,53,13,198,64,156,17,65,249,65,31,139,173,149,197,79,196,165,242,103,84,126,138,115,36,73,15,149,103,194,241,18,69,36,168,161,172,79,116,182,251,99,46,218,107,197,192,247,13,230,241,28,161,163,45,124,142,16,190,111,176,40,207,17,210,63,38,200,232,50,117,11,150,173,47,87,151,213,128,229,235,99,96,133,58,175,1,189,237,230,143,9,174,88,95,169,30,183,6,140,173,199,169,1,182,199,103,214,0,71,146,183,6,172,92,87,31,19,236,33,92,3,86,169,159,4,199,42,143,9,50,234,214,128,85,109,207,173,102,127,86,175,251,143,9,186,145,17,213,0,70,77,29,19,92,163,126,13,172,89,247,215,128,94,143,224,49,193,222,223,94,13,88,171,174,58,38,200,104,239,152,32,163,209,53,128,209,87,237,143,186,6,172,93,31,236,152,32,163,113,107,192,58,117,239,49,193,117,235,209,53,192,246,64,140,99,130,227,234,235,213,221,26,192,232,150,253,190,201,106,128,157,141,100,253,122,220,99,130,98,224,49,65,4,162,24,56,33,231,115,179,135,76,11,194,221,38,234,199,251,247,150,252,107,222,117,206,16,230,245,114,139,229,138,56,156,111,191,62,34,11,252,122,133,181,14,46,123,165,138,173,240,247,14,90,196,63,126,110,191,31,195,214,137,165,136,45,240,234,230,103,19,105,25,244,151,204,114,217,104,206,16,173,105,48,6,226,140,8,202,15,250,88,108,173,44,126,34,46,149,63,163,242,83,156,35,73,122,168,60,19,142,151,40,34,65,13,101,125,162,179,221,31,115,209,94,27,149,53,67,126,110,3,175,113,65,20,22,39,22,62,59,241,26,161,60,174,17,58,9,175,17,194,107,132,104,81,174,17,194,119,143,231,241,252,128,83,177,6,224,187,199,11,83,3,78,154,22,4,163,238,183,23,254,54,103,201,191,230,93,231,12,97,94,47,183,183,247,151,173,112,63,206,225,124,251,245,9,115,4,245,10,107,29,92,246,90,38,182,194,223,59,104,17,255,248,185,253,126,244,203,145,75,17,91,224,213,205,207,38,210,50,232,47,153,229,178,209,156,33,90,211,96,12,196,25,17,148,31,244,177,216,90,89,252,68,92,42,127,70,229,167,56,71,146,244,80,121,38,28,47,81,68,130,26,202,250,68,103,187,63,230,162,189,54,42,107,16,8,196,240,226,52,173,99,14,217,94,35,244,21,203,228,53,66,55,212,179,251,45,112,163,45,235,116,75,254,91,192,209,202,251,91,224,230,186,251,91,224,150,122,240,26,161,51,50,184,70,232,214,186,252,26,161,219,234,234,223,2,183,215,227,93,35,116,71,93,231,26,161,59,235,201,127,11,220,85,191,187,62,28,215,8,221,83,191,183,94,189,119,141,157,137,199,232,17,136,161,194,126,211,130,112,183,137,250,241,254,189,37,255,154,119,157,51,132,121,189,220,98,185,34,14,231,219,175,143,200,2,191,94,97,173,131,203,94,169,98,43,252,189,131,22,241,143,159,219,239,199,176,117,98,41,98,11,188,186,249,217,68,90,6,253,37,179,92,54,154,51,68,107,26,140,129,56,35,130,242,131,62,22,91,43,139,159,136,75,229,207,168,252,20,231,72,146,30,42,207,132,227,37,138,72,80,67,89,159,232,108,247,199,92,180,215,138,129,231,6,243,56,55,248,117,60,47,128,231,6,11,115,94,224,192,105,65,48,234,126,123,225,111,115,150,252,107,222,117,206,16,230,245,114,139,229,138,56,156,111,191,62,97,142,160,94,97,173,131,203,94,169,98,43,252,189,131,22,241,143,159,219,239,199,176,117,98,41,98,11,188,186,249,217,68,90,6,253,37,179,92,54,154,51,68,107,26,140,129,56,35,130,242,131,62,22,91,43,139,159,136,75,229,207,168,252,20,231,72,146,30,42,207,132,227,37,138,72,80,67,89,159,232,108,247,199,92,180,215,138,129,215,7,228,113,125,192,89,56,15,192,235,3,240,26,161,74,255,22,56,27,107,0,254,22,40,76,13,216,119,90,16,118,150,207,252,246,194,223,230,44,249,215,188,235,156,33,204,235,229,22,203,21,113,56,223,126,125,194,28,65,189,194,90,7,151,189,82,197,86,248,123,7,45,226,31,63,183,223,143,97,235,196,82,196,22,120,117,243,179,137,180,12,250,75,102,185,108,52,103,136,214,52,24,3,113,70,4,229,7,125,44,182,86,22,63,17,151,202,159,81,249,41,206,145,36,61,84,158,9,199,75,20,145,160,134,178,62,209,217,238,143,185,104,175,21,227,128,16,236,243,141,51,191,189,240,183,57,75,254,53,239,58,103,8,243,122,185,197,114,69,28,206,183,95,159,48,71,80,175,176,214,193,101,175,84,177,21,254,222,65,139,248,199,207,237,247,99,216,58,177,20,177,5,94,221,252,108,34,45,131,254,146,89,46,27,205,25,162,53,13,198,64,156,17,65,249,65,31,139,173,149,197,79,196,165,242,103,84,126,138,115,36,73,15,149,103,194,241,18,69,36,168,161,172,79,116,182,251,99,46,218,107,197,56,53,4,70,221,111,47,252,109,206,146,127,205,187,206,25,194,188,94,110,177,92,17,135,243,237,215,39,204,17,212,43,172,117,112,217,43,85,108,133,191,119,208,34,254,241,115,251,253,24,182,78,44,69,108,129,87,55,63,155,72,203,160,191,100,150,203,70,115,134,104,77,131,49,16,103,68,80,126,208,199,98,107,101,241,19,113,169,252,25,149,159,226,28,73,210,67,229,153,112,188,68,17,9,106,40,235,19,157,237,254,152,139,246,90,49,246,15,129,81,247,219,11,127,155,179,228,95,243,174,115,134,48,175,151,91,44,87,196,225,124,251,245,9,115,4,245,10,107,29,92,246,74,21,91,225,239,29,180,136,127,252,220,126,63,134,173,19,75,17,91,224,213,205,207,38,210,50,232,47,153,229,178,209,156,33,90,211,96,12,196,25,17,148,31,244,177,216,90,89,252,68,92,42,127,70,229,167,56,71,146,244,80,121,38,28,47,81,68,130,26,202,250,68,103,187,63,230,162,189,86,140,227,67,176,143,94,205,252,246,194,223,230,44,249,215,188,235,156,33,204,235,229,22,203,21,113,56,223,126,125,194,28,65,189,194,90,7,151,189,82,197,86,248,123,7,45,226,31,63,183,223,143,97,235,196,82,196,22,120,117,243,179,137,180,12,250,75,102,185,108,52,103,136,214,52,24,3,113,70,4,229,7,125,44,182,86,22,63,17,151,202,159,81,249,41,206,145,36,61,84,158,9,199,75,20,145,160,134,178,62,209,217,238,143,185,104,175,21,3,159,41,154,199,51,69,191,133,207,20,197,103,138,22,230,126,129,47,78,11,130,81,247,219,11,127,155,179,228,95,243,174,115,134,48,175,151,91,44,87,196,225,124,251,245,9,115,4,245,10,107,29,92,246,74,21,91,225,239,29,180,136,127,252,220,126,63,134,173,19,75,17,91,224,213,205,207,38,210,50,232,47,153,229,178,209,156,33,90,211,96,12,196,25,17,148,31,244,177,216,90,89,252,68,92,42,127,70,229,167,56,71,146,244,80,121,38,28,47,81,68,130,26,202,250,68,103,187,63,230,162,189,86,12,156,7,228,49,15,56,23,231,1,56,15,40,237,125,131,8,196,176,226,59,120,207,43,34,33,6,127,111,223,120,204,54,68,97,176,207,180,32,220,109,162,126,188,127,111,201,191,230,93,231,12,97,94,47,183,88,174,136,195,249,246,235,35,178,192,175,87,88,235,224,178,87,170,216,10,127,239,160,69,252,227,231,246,251,49,108,157,88,138,216,2,175,110,126,54,145,150,65,127,201,44,151,141,230,12,209,154,6,99,32,206,136,160,252,160,143,197,214,202,226,39,226,82,249,51,42,63,197,57,146,164,135,202,51,225,120,137,34,18,212,80,214,39,58,219,253,49,23,237,181,98,224,123,134,242,120,207,208,121,248,158,33,124,207,16,45,202,123,134,240,190,193,60,238,27,188,32,247,123,134,46,180,240,158,33,188,111,208,169,1,167,76,11,130,81,247,219,11,127,155,179,228,95,243,174,115,134,48,175,151,91,44,87,196,225,124,251,245,9,115,4,245,10,107,29,92,246,74,21,91,225,239,29,180,136,127,252,220,126,63,134,173,19,75,17,91,224,213,205,207,38,210,50,232,47,153,229,178,209,156,33,90,211,96,12,196,25,17,148,31,244,177,216,90,89,252,68,92,42,127,70,229,167,56,71,146,244,80,121,38,28,47,81,68,130,26,202,250,68,103,187,63,230,162,189,54,42,107,16,195,142,139,241,40,35,98,64,224,245,1,121,92,31,112,9,94,31,128,215,7,208,97,127,247,56,214,0,157,26,240,3,172,1,88,3,176,6,84,186,6,92,138,53,0,107,64,97,106,64,244,47,133,203,235,229,253,21,180,221,20,252,37,136,192,12,171,50,238,31,173,170,229,63,197,227,135,152,97,136,84,241,163,194,221,133,241,99,137,70,87,76,199,104,165,141,85,103,56,223,191,182,99,112,229,128,153,241,251,84,51,74,126,60,192,170,53,60,199,4,240,185,194,242,227,1,211,235,73,175,17,58,25,242,188,70,104,177,26,62,87,88,126,60,96,213,154,217,231,10,175,89,75,227,26,161,203,45,249,53,66,227,106,206,241,128,245,106,229,184,111,240,245,68,26,206,227,169,90,123,105,206,196,22,168,229,111,253,94,169,204,38,23,171,165,47,35,15,44,103,36,98,171,26,142,251,154,181,52,114,97,221,8,214,113,51,219,214,43,64,6,23,27,207,227,175,53,4,102,88,165,241,28,70,8,129,25,86,105,60,139,17,66,96,134,13,1,62,25,29,180,247,39,163,89,74,46,130,245,131,177,22,193,206,34,121,203,180,63,76,241,201,162,246,77,34,235,89,158,200,166,133,55,209,67,8,204,176,74,227,25,140,16,2,51,172,210,120,5,35,132,192,12,171,52,94,194,8,33,48,195,42,141,151,49,66,8,204,176,74,227,69,140,16,2,51,172,210,120,1,35,132,192,12,171,52,94,197,8,33,48,195,42,141,223,118,243,144,58,101,104,222,238,54,189,192,154,214,134,226,217,54,249,100,88,114,204,63,45,8,119,155,168,31,239,223,91,242,175,121,215,57,67,152,215,203,45,150,43,226,112,190,253,250,136,44,240,235,21,214,58,184,236,149,42,182,194,223,59,104,17,255,140,18,177,119,194,114,228,82,196,22,240,45,83,137,159,77,164,101,208,95,50,203,101,163,57,67,180,166,193,24,136,51,34,40,63,232,99,177,181,178,248,137,184,84,254,140,202,79,113,142,36,233,161,242,76,56,94,162,136,4,53,148,245,137,206,118,127,204,69,123,109,92,92,105,85,163,6,252,176,155,71,13,152,66,134,165,6,76,39,197,173,1,181,250,48,212,128,31,118,135,181,6,84,101,30,176,109,23,231,1,56,15,72,179,6,108,59,180,53,224,247,21,153,7,108,137,243,0,156,7,164,90,3,182,28,146,26,176,80,8,140,186,223,94,248,219,156,37,255,154,119,157,51,132,121,189,220,98,185,34,14,231,219,175,79,152,35,168,87,88,235,224,178,87,170,216,10,127,239,160,69,252,227,231,246,251,49,108,157,88,138,216,2,175,110,126,54,145,150,65,127,201,44,151,141,230,12,209,154,6,99,32,206,136,160,252,160,143,197,214,202,226,39,226,82,249,51,42,63,197,57,146,164,135,202,51,225,120,137,34,18,212,80,214,39,58,219,253,49,23,237,181,98,220,211,85,129,209,228,45,113,160,55,218,4,130,26,168,53,210,215,57,109,171,117,248,121,214,230,27,135,34,228,194,240,107,195,227,168,98,91,112,90,16,140,186,223,94,248,219,156,37,255,154,119,157,51,132,121,189,220,98,185,34,14,231,219,175,79,152,35,168,87,88,235,224,178,87,170,216,10,127,239,160,69,252,227,231,246,251,49,108,157,88,138,216,2,175,110,126,54,145,150,65,127,201,44,151,141,230,12,209,154,6,99,32,206,136,160,252,160,143,197,214,202,226,39,226,82,249,51,42,63,197,57,146,164,135,202,51,225,120,137,34,18,212,80,214,39,58,219,253,49,23,237,181,98,84,247,152,224,226,120,76,16,143,9,166,122,60,96,241,33,57,30,48,44,87,172,148,5,195,115,141,16,162,42,168,238,60,160,129,243,0,156,7,164,58,15,104,224,245,1,5,175,1,47,118,176,6,96,13,72,179,6,244,50,12,127,11,32,240,183,0,2,81,84,60,208,193,26,16,5,188,103,104,56,51,12,17,31,43,224,28,8,129,25,70,163,222,57,234,239,23,124,231,168,189,205,243,206,81,251,248,71,194,119,142,58,240,190,115,148,81,241,59,71,25,245,190,115,212,69,145,222,57,202,232,33,51,117,137,243,206,209,51,73,239,157,163,140,70,189,115,148,81,217,59,71,123,184,192,254,86,189,115,180,247,125,121,255,111,248,157,163,189,229,248,239,28,101,52,234,157,163,78,255,248,239,28,101,180,247,206,81,70,243,120,231,168,157,159,49,222,57,202,168,248,157,163,140,14,246,206,81,59,35,123,239,255,52,252,206,209,189,137,251,206,81,70,131,239,28,101,212,121,231,168,157,143,165,120,231,104,122,88,14,231,1,8,204,48,27,119,117,131,112,183,121,251,240,109,222,94,254,53,239,58,103,8,243,122,185,197,114,69,250,184,122,120,71,138,244,247,235,21,214,58,168,145,87,170,216,10,239,72,241,120,239,71,236,199,176,117,98,41,98,11,194,190,150,141,14,250,134,235,235,213,92,28,247,176,119,85,154,6,37,138,50,34,40,63,232,99,185,223,228,91,130,26,198,209,82,213,39,168,121,212,114,180,44,175,180,224,254,163,146,20,206,146,104,223,4,125,238,247,113,188,8,222,213,173,238,185,65,151,17,207,13,226,185,193,106,63,67,4,103,108,213,195,223,173,172,36,205,109,44,191,254,145,153,206,136,97,195,21,133,121,102,91,113,52,41,142,166,142,164,225,241,140,57,92,99,21,39,10,101,199,107,211,81,147,164,184,214,66,159,96,190,160,39,177,6,160,79,48,95,208,147,88,3,208,39,152,47,8,68,154,248,23,30,201,67,164,142,127,99,150,21,24,243,224,121,39,41,254,131,153,107,8,179,23,38,203,138,163,9,70,7,125,83,37,224,241,128,228,192,227,1,152,47,8,4,130,227,127,56,43,175,40,142,153,130,62,64,96,134,85,25,155,98,132,16,152,97,149,198,139,120,173,38,2,51,204,198,246,163,65,184,219,68,253,120,255,222,146,127,205,187,206,25,194,188,94,110,177,92,17,135,243,237,215,71,100,129,95,175,176,214,193,101,175,84,177,21,254,222,65,139,248,199,207,237,247,99,216,58,177,20,177,5,94,221,252,108,34,45,131,254,146,89,46,27,205,25,162,53,13,198,32,58,35,252,172,178,60,18,203,147,229,149,44,187,228,186,202,121,131,154,199,237,161,242,76,56,94,162,136,4,53,148,245,137,206,118,127,204,69,123,173,24,248,28,33,124,142,80,154,207,17,58,163,142,207,17,194,231,8,13,27,38,140,198,109,141,238,153,149,70,233,141,53,171,115,94,154,200,113,83,225,207,7,20,207,103,8,68,153,112,51,158,19,68,84,20,139,213,208,7,114,172,106,216,59,107,166,226,237,117,75,17,195,255,228,126,212,52,137,6,249,107,91,46,61,17,136,252,49,141,161,15,16,136,60,49,255,164,97,210,32,127,109,203,165,39,2,193,232,127,115,159,181,38,209,32,127,109,203,165,39,2,145,63,166,50,244,1,2,81,101,76,97,232,3,4,130,209,45,70,131,112,183,241,30,188,159,168,127,120,164,186,213,207,154,132,197,223,51,218,130,240,186,191,191,163,69,120,57,137,86,242,49,94,169,113,45,82,245,86,49,121,61,146,156,39,42,43,212,92,209,209,76,18,213,184,241,12,198,210,12,212,76,234,40,136,50,76,180,127,37,245,150,60,179,69,107,113,125,178,85,8,140,186,223,14,156,37,127,155,24,241,91,253,172,81,44,81,156,174,126,42,61,248,186,191,191,163,69,112,57,142,86,98,14,217,214,104,191,168,37,169,116,19,123,36,218,115,242,209,178,184,168,184,68,163,110,181,226,101,142,218,126,149,196,65,50,51,89,164,227,247,240,238,65,81,218,203,45,149,121,45,122,221,63,42,126,28,55,11,129,81,247,219,129,179,228,111,19,35,126,171,159,53,138,37,138,211,213,79,165,7,95,247,247,119,180,8,46,199,209,74,204,33,219,26,237,23,181,36,149,110,98,143,68,123,78,62,90,22,23,21,151,56,18,241,50,71,109,191,74,226,32,153,153,44,210,241,123,120,247,160,40,237,229,150,202,188,22,189,238,31,21,63,142,155,134,192,168,251,237,192,89,242,183,137,17,191,213,207,26,197,18,197,233,234,167,210,131,175,251,251,59,90,4,151,227,104,37,230,144,109,141,246,139,90,146,74,55,177,71,162,61,39,31,45,139,139,138,75,28,137,120,153,163,182,95,37,113,144,204,76,22,233,248,61,188,123,80,148,246,114,75,101,94,139,94,247,143,138,31,71,245,125,131,183,245,175,170,14,222,55,56,163,198,106,183,91,206,125,131,119,88,22,220,105,221,101,5,239,27,188,219,186,199,234,221,55,120,175,53,6,238,179,248,125,131,247,219,203,15,244,89,189,247,13,46,1,226,251,6,87,128,222,125,131,15,90,15,89,99,225,97,235,17,235,81,235,49,235,113,43,124,223,224,19,214,147,214,58,240,148,21,231,190,193,177,245,173,97,98,87,117,223,224,211,150,123,223,224,51,182,182,207,90,251,192,115,214,196,174,115,223,224,243,214,129,54,3,191,111,240,80,123,237,48,240,223,55,248,130,245,162,117,108,95,206,113,246,95,231,190,193,41,228,68,232,221,55,120,10,68,221,55,120,22,240,251,6,95,178,101,191,108,127,94,177,122,247,13,158,7,231,195,5,112,33,92,4,175,90,175,89,175,91,111,88,162,251,6,223,180,46,131,222,125,131,87,216,114,157,251,6,223,178,222,182,220,251,6,223,177,226,220,55,248,174,213,187,111,240,61,235,26,120,223,10,222,55,56,209,186,17,62,176,122,247,13,222,98,143,250,208,186,21,62,178,122,247,13,126,108,125,98,57,247,13,78,236,58,247,13,218,217,100,57,247,13,78,236,246,238,27,124,24,122,247,13,62,6,29,203,185,111,176,107,61,13,147,172,240,125,131,147,173,168,251,6,71,45,247,190,193,41,86,252,251,6,155,132,223,55,56,213,242,223,55,120,61,17,221,55,56,205,226,247,13,46,69,122,247,13,78,183,162,239,27,156,97,205,186,111,176,159,225,181,70,239,190,193,113,196,127,223,32,52,72,163,255,255,52,217,156,212,27,91,18,171,209,104,136,239,27,108,54,248,125,131,35,13,255,125,131,173,70,239,190,193,253,9,191,111,112,98,247,16,210,203,55,255,125,131,237,198,120,50,91,99,246,198,28,141,57,27,199,145,185,26,115,55,230,105,140,105,224,125,131,140,78,103,120,68,24,129,96,244,252,201,131,35,238,232,94,191,112,95,61,217,38,184,130,163,212,44,98,75,146,72,52,105,181,57,111,57,91,76,229,69,82,47,200,164,101,233,43,215,3,121,70,97,16,203,197,61,157,60,117,219,228,108,78,203,4,13,48,26,191,95,184,111,220,209,38,53,137,30,165,102,17,91,146,68,162,73,171,77,251,207,91,3,210,149,230,231,151,73,203,210,87,174,7,178,150,168,107,249,234,13,121,158,186,44,114,54,167,229,91,26,96,52,126,191,112,223,184,163,77,106,18,61,74,205,34,182,36,137,68,147,86,155,243,150,179,197,91,3,210,149,239,231,151,73,203,210,87,174,7,242,140,194,32,150,139,123,58,121,234,182,201,217,156,22,156,7,224,60,0,231,1,213,158,7,96,13,192,26,128,53,160,218,53,224,98,13,48,26,191,95,184,111,220,209,38,53,137,30,165,102,17,91,146,68,162,73,171,7,197,218,13,177,39,188,53,32,77,249,65,126,153,180,44,125,229,122,32,107,137,186,150,139,123,58,121,234,182,201,217,244,237,197,26,128,53,0,107,192,240,215,128,3,186,131,131,81,157,209,195,8,125,139,139,236,51,94,1,138,161,207,184,70,85,115,201,68,4,120,28,85,108,103,79,30,28,140,198,239,23,238,27,119,180,73,77,162,71,169,89,196,150,36,145,104,210,234,65,177,94,67,236,9,239,60,32,77,249,65,126,153,180,44,125,229,122,32,107,137,186,150,139,123,58,121,234,182,201,217,156,150,107,187,131,131,209,252,70,167,1,181,70,250,58,23,207,106,175,110,46,138,225,247,44,245,200,62,46,81,18,77,104,195,227,168,98,187,112,242,224,96,52,126,191,112,223,184,163,77,106,18,61,74,205,34,182,36,137,68,147,86,155,243,150,179,197,59,15,72,87,190,159,95,38,45,75,95,185,30,200,51,10,131,88,46,238,233,228,169,219,38,103,115,90,142,209,0,163,241,251,133,251,198,29,157,30,130,26,168,53,18,91,146,134,207,242,241,135,139,244,229,196,241,73,145,125,101,62,251,6,179,92,220,211,201,83,183,77,197,118,145,6,24,141,223,47,220,55,238,104,147,154,68,143,82,179,136,45,73,34,209,164,213,230,188,229,108,241,206,3,210,149,239,231,151,73,203,210,87,174,7,242,140,194,32,150,139,123,58,121,234,182,201,217,194,113,79,11,27,52,24,221,176,129,247,103,33,16,69,4,94,39,136,215,9,226,117,130,120,157,32,94,35,132,215,8,225,53,66,213,189,70,232,60,13,48,26,191,95,184,111,220,209,38,53,137,30,165,102,17,91,146,68,162,73,171,205,121,203,217,226,173,1,233,202,247,243,203,164,101,233,43,215,3,121,70,97,16,203,197,61,157,60,117,219,228,108,78,139,250,89,98,14,68,207,18,99,180,247,44,49,70,151,169,91,176,108,125,185,122,240,89,98,189,113,189,103,137,45,95,31,3,43,212,249,179,196,122,219,23,134,100,207,18,235,245,30,107,255,93,121,230,19,175,194,207,18,91,177,190,82,125,29,123,91,220,103,137,245,150,163,159,37,198,168,251,44,49,71,210,62,253,111,231,89,98,43,215,15,180,215,188,207,18,99,52,248,44,177,30,142,237,127,31,103,255,117,158,37,102,107,94,143,243,44,49,70,221,103,137,173,106,123,110,53,251,179,122,221,255,44,49,55,50,162,103,137,49,234,62,75,140,81,231,89,98,189,237,238,179,196,122,203,234,103,137,49,218,123,150,216,26,245,107,96,205,186,255,89,98,189,30,55,218,127,221,103,137,49,122,107,255,239,237,246,223,181,234,206,179,196,24,117,159,37,118,31,56,207,18,99,212,121,150,24,163,189,103,137,49,234,60,75,140,209,167,237,79,248,89,98,140,190,106,127,100,207,18,99,212,125,150,216,218,245,193,158,37,198,168,255,89,98,118,118,10,158,37,198,232,103,237,143,247,89,98,235,214,163,159,37,102,123,192,125,150,216,44,111,134,159,37,54,174,190,94,221,125,150,24,163,91,246,251,138,159,37,102,103,227,172,103,137,245,214,220,103,137,217,217,72,214,175,7,159,37,102,103,98,255,175,255,89,98,178,227,0,238,179,196,46,152,60,56,24,141,223,47,220,55,238,104,147,154,68,143,82,179,136,45,73,34,209,164,213,230,188,229,108,241,230,71,186,242,253,252,50,105,89,250,202,245,64,158,81,24,196,114,113,79,39,79,221,54,57,155,211,50,94,3,140,198,239,23,238,27,119,180,73,77,162,71,169,89,196,150,36,145,104,210,234,65,177,105,67,236,9,111,13,72,83,126,144,95,38,45,75,95,185,30,200,90,162,174,229,226,158,189,173,155,53,54,111,168,216,244,237,197,26,48,156,53,96,75,172,1,88,3,60,45,167,106,128,209,248,253,194,125,227,142,54,169,73,244,40,53,139,216,146,36,18,77,90,109,218,127,222,26,144,174,52,63,191,76,90,150,190,114,61,144,181,68,93,203,197,61,157,60,117,219,228,108,225,184,87,11,51,24,94,29,130,64,216,71,141,39,171,176,117,67,214,18,103,180,219,47,220,55,238,232,184,18,244,71,169,89,196,150,36,145,104,210,106,115,222,114,182,36,203,11,115,94,144,73,203,210,87,174,7,242,140,194,32,150,139,123,58,121,234,182,201,217,156,150,43,52,192,104,252,126,225,190,113,71,155,212,36,122,148,154,69,108,73,18,137,38,173,54,231,45,103,139,183,6,164,43,223,207,47,147,150,165,175,92,15,228,25,133,43,6,176,92,220,211,201,83,183,77,206,230,180,92,174,1,251,12,116,236,126,225,190,113,71,155,212,36,122,148,154,69,108,73,18,137,38,173,54,231,45,103,139,183,6,164,43,223,207,47,147,150,165,175,92,15,228,25,133,65,44,23,247,116,242,212,109,147,179,57,45,151,105,128,209,248,253,194,125,227,142,54,169,73,244,40,53,139,216,146,36,18,77,90,109,206,91,206,22,111,13,72,87,190,159,95,38,45,75,95,185,30,200,51,10,131,88,46,238,233,228,169,219,38,103,115,90,190,161,1,70,227,247,11,247,141,59,218,164,38,209,163,212,44,98,75,146,72,52,105,181,57,111,57,91,188,53,32,93,249,126,126,153,180,44,125,229,122,32,207,40,12,98,185,184,167,147,167,110,155,156,205,105,57,75,3,140,198,239,23,238,27,119,180,73,77,162,71,169,89,196,150,36,145,104,210,106,115,222,114,182,120,107,64,186,242,253,252,50,105,89,250,202,245,64,158,81,24,196,114,113,79,39,79,221,54,57,155,211,242,51,13,48,26,191,95,184,111,220,209,38,53,137,30,165,102,17,91,146,68,162,73,171,205,121,203,217,226,173,1,233,202,247,243,203,164,101,233,43,215,3,121,70,97,16,203,197,61,157,60,117,219,228,108,78,203,87,53,192,104,252,126,225,190,113,71,155,212,36,122,148,154,69,108,73,18,137,38,173,54,231,45,103,139,183,6,164,43,223,207,47,147,150,165,175,92,15,228,25,133,65,44,23,247,116,242,212,109,147,179,57,45,103,104,128,209,248,253,194,125,227,142,54,169,73,244,40,53,139,216,146,36,18,77,90,109,206,91,206,22,111,13,72,87,190,159,95,38,45,75,95,185,30,200,51,10,131,88,46,238,233,228,169,219,38,103,115,90,190,172,1,70,227,247,11,247,141,59,218,164,38,209,163,212,44,98,75,146,72,52,105,245,160,216,182,33,246,132,183,6,164,41,63,46,127,246,190,202,82,98,148,172,248,122,136,123,58,121,234,182,201,217,156,150,159,106,128,209,248,253,194,125,227,142,54,169,73,244,40,53,139,216,146,36,18,77,90,109,206,91,206,22,111,13,72,87,190,159,95,38,45,75,95,185,30,200,51,10,131,88,46,238,233,228,169,219,38,103,115,90,246,209,0,163,241,251,133,251,198,29,29,7,219,53,76,232,175,214,72,108,73,124,108,223,48,105,245,160,216,33,228,173,29,27,142,117,46,118,106,164,41,191,255,60,150,24,126,207,210,87,142,172,157,27,89,75,212,181,92,220,211,201,83,183,77,206,182,75,223,222,42,63,79,112,247,6,62,79,16,159,39,136,207,19,188,166,59,56,24,205,111,116,26,80,107,164,175,115,241,172,246,234,230,162,24,126,207,82,143,236,227,18,37,209,132,54,60,142,42,182,234,222,49,185,252,52,188,107,20,129,25,54,252,216,115,224,119,151,28,59,5,189,87,109,164,157,1,101,202,176,75,58,152,47,101,2,198,51,140,235,9,250,32,10,79,142,162,15,202,132,125,240,189,111,136,20,177,31,230,23,2,129,64,32,16,25,98,127,173,255,121,229,239,25,178,106,13,207,187,134,228,239,25,34,80,7,11,26,208,4,217,123,134,230,129,49,48,47,240,247,12,45,4,105,188,103,104,45,88,27,226,190,103,104,43,136,243,158,161,221,193,125,207,208,222,253,222,222,247,12,29,0,252,61,67,211,235,226,247,12,29,13,199,64,248,61,67,87,199,122,207,208,55,192,125,207,208,185,246,150,111,219,159,239,128,255,61,67,23,195,37,240,61,248,62,136,222,51,244,51,48,245,158,161,127,192,53,112,45,248,223,51,244,63,184,1,130,239,25,186,13,156,247,12,221,1,170,247,12,61,2,189,247,12,61,14,209,239,25,122,5,94,133,215,64,253,158,161,143,97,176,247,12,205,65,226,190,103,104,49,226,125,207,208,210,36,250,61,67,107,146,56,239,25,218,132,108,218,111,239,189,103,104,11,178,37,217,138,36,125,207,208,222,100,31,178,47,137,251,158,161,241,228,40,114,52,57,134,28,75,142,35,199,147,19,200,4,114,34,57,137,184,239,25,26,254,26,120,96,73,126,125,28,132,191,162,114,194,193,41,120,254,144,89,156,135,22,62,174,131,190,111,208,222,230,153,7,48,154,116,30,224,192,59,15,96,84,60,15,96,212,59,15,112,161,63,15,248,79,199,212,60,160,247,190,65,71,151,56,243,128,51,73,111,30,192,104,212,60,128,81,217,60,160,135,11,236,111,213,60,160,247,125,121,255,175,238,60,128,209,168,121,128,211,63,254,60,128,209,222,60,128,209,60,230,1,118,126,106,204,3,24,77,58,15,248,79,199,157,7,48,154,222,60,128,81,156,7,12,92,169,241,250,0,4,102,88,76,76,155,145,180,45,106,132,41,201,217,113,167,165,133,73,94,47,87,154,94,27,190,24,79,155,225,252,29,44,115,101,218,201,249,120,75,28,203,204,89,31,150,111,18,87,9,174,41,57,178,33,111,147,109,53,35,217,156,85,113,217,211,210,194,36,175,151,235,170,76,174,1,26,142,24,187,113,14,75,137,151,185,50,237,228,124,188,37,142,101,230,172,15,203,55,137,173,59,73,219,182,238,164,47,89,159,59,46,123,90,90,152,228,245,114,109,157,73,13,24,142,24,187,113,14,75,137,151,185,50,237,228,124,188,37,142,101,230,172,15,203,143,135,241,177,142,89,70,93,91,42,110,51,117,53,106,154,87,181,94,210,137,203,158,150,22,131,242,30,213,136,230,202,230,90,224,225,136,177,27,231,176,148,120,153,43,211,78,206,199,91,226,88,102,206,250,176,124,147,152,62,35,105,219,244,25,233,75,214,231,62,186,145,175,22,38,121,189,92,211,51,57,30,48,28,49,238,125,156,191,131,101,174,76,59,57,31,111,137,99,153,57,235,195,242,77,130,176,164,109,81,35,76,73,206,142,59,45,45,76,242,122,185,210,244,218,240,197,152,48,231,239,96,153,43,211,78,206,199,91,226,88,102,206,250,176,124,147,0,150,180,13,88,250,146,179,227,78,75,11,147,188,94,174,52,189,54,124,49,6,230,252,29,44,115,101,218,201,249,120,75,28,203,204,89,31,150,111,18,139,179,164,109,139,179,244,37,235,115,199,101,239,245,83,247,77,174,171,73,235,188,92,105,122,109,216,98,236,198,57,44,37,94,230,202,180,147,243,241,150,104,203,156,86,115,214,135,229,35,16,69,193,49,120,21,52,2,81,81,28,139,123,63,34,117,252,219,42,138,38,199,97,190,135,48,15,62,81,15,145,58,94,155,142,154,36,197,181,86,182,62,57,30,171,35,2,129,40,56,240,121,130,50,92,94,47,175,109,219,225,125,131,136,28,51,108,2,206,142,114,199,97,88,3,16,152,97,8,45,156,132,149,92,129,177,120,76,112,8,160,126,142,208,109,253,35,72,162,231,9,222,110,57,207,17,186,195,178,224,78,235,46,43,248,28,161,187,173,123,172,222,115,132,238,181,198,192,125,22,127,142,208,253,246,242,3,125,214,248,207,19,124,208,122,200,26,11,15,91,143,88,143,90,143,89,143,91,225,231,8,61,97,61,105,173,3,79,89,113,158,35,52,182,30,231,121,130,79,91,238,115,132,158,177,181,125,214,218,7,158,179,220,231,8,61,111,249,159,35,36,122,158,224,11,214,139,86,240,57,66,83,200,137,144,236,121,130,47,217,50,95,182,63,175,88,254,231,9,190,106,189,102,189,110,189,97,137,158,35,244,166,21,124,158,224,91,214,219,150,251,28,161,119,172,56,207,17,122,215,234,61,71,232,61,235,26,120,223,10,62,71,104,162,117,35,124,96,185,207,19,252,208,186,21,62,178,122,207,17,250,216,250,196,10,62,71,232,83,75,244,60,193,142,229,60,71,168,107,61,13,147,172,240,115,132,38,91,81,207,17,26,181,220,231,8,77,177,6,123,158,224,84,203,255,28,161,235,137,232,57,66,211,172,224,243,4,167,91,209,207,17,154,97,205,122,142,80,63,195,107,13,209,243,4,161,65,250,255,127,244,158,35,84,111,108,73,172,70,163,33,126,142,80,179,193,159,35,52,210,240,63,71,168,213,136,247,60,193,118,99,60,153,173,49,123,99,142,198,156,141,227,200,92,141,185,27,243,52,198,52,248,115,132,138,94,3,38,118,211,170,1,19,187,226,26,48,177,27,85,3,38,118,121,13,152,216,117,106,192,196,110,175,6,76,236,242,26,48,177,203,107,64,79,206,113,246,223,193,107,192,196,238,203,246,103,176,26,48,177,155,79,13,152,216,237,213,128,158,237,110,13,152,216,205,175,6,76,236,138,106,192,196,110,186,53,160,103,189,94,13,152,216,77,86,3,236,76,180,199,76,236,38,171,1,85,158,3,157,215,53,217,247,188,10,191,187,113,248,145,253,121,129,226,228,75,120,30,240,165,70,53,158,41,202,232,25,221,248,207,20,61,163,171,122,166,104,175,7,62,83,20,159,41,42,122,182,184,232,153,162,189,124,41,198,51,69,211,126,174,240,248,122,113,107,192,34,9,106,192,34,202,26,176,72,233,106,192,49,245,178,213,128,99,235,162,26,112,92,93,92,3,78,111,164,85,3,78,168,111,74,122,249,50,161,158,103,13,56,177,30,255,183,64,131,37,109,139,26,145,4,201,121,190,218,136,207,61,210,141,175,133,186,239,72,55,125,235,226,113,153,228,77,95,251,52,181,237,113,55,152,243,55,90,174,251,91,32,216,79,166,157,156,143,183,68,91,230,228,139,57,235,195,242,205,157,23,16,207,3,202,240,158,161,91,58,241,231,1,183,116,162,231,1,135,218,61,240,61,67,131,189,103,232,235,141,252,223,51,36,62,38,152,230,123,134,122,25,133,239,25,202,27,255,234,152,236,251,47,124,163,247,128,56,171,0,215,89,100,127,76,176,56,249,50,232,60,224,236,70,146,227,1,223,108,20,241,120,192,85,9,230,1,87,117,84,199,3,122,61,240,120,0,30,15,136,123,60,160,151,47,195,115,60,160,172,72,242,20,102,117,223,173,113,30,128,72,41,251,210,196,57,165,188,218,245,163,152,119,58,37,121,10,179,186,239,37,153,197,244,227,66,220,201,245,73,1,180,248,52,7,29,206,53,180,207,92,130,255,103,20,0,39,117,76,246,61,9,99,42,193,119,240,190,10,204,151,66,98,29,134,62,64,96,134,197,195,88,150,180,109,44,75,95,114,118,220,105,105,97,146,215,203,149,166,215,134,47,198,99,153,243,119,176,204,149,105,39,231,227,45,113,44,51,103,125,88,62,66,133,213,209,87,8,204,176,138,227,232,4,191,83,191,171,236,123,30,254,234,69,36,192,249,152,47,185,227,147,25,213,182,31,129,25,166,135,11,134,190,138,57,239,165,71,32,210,203,48,244,65,177,225,188,151,30,129,72,47,195,134,65,203,11,43,252,155,196,121,47,253,48,226,34,252,37,57,36,25,134,62,40,54,38,205,56,26,247,37,68,170,25,134,62,200,11,241,174,21,222,113,104,159,252,140,215,10,187,248,180,208,239,191,24,150,12,75,251,57,66,69,126,150,152,234,185,194,222,251,6,123,189,163,239,27,236,97,56,238,27,188,164,129,207,18,203,255,89,98,189,150,98,60,75,172,232,53,234,216,209,172,153,163,37,122,91,221,229,240,8,179,90,235,176,165,231,191,56,114,69,222,42,78,22,165,173,145,62,255,96,12,73,71,61,49,57,8,119,155,183,15,223,230,237,229,95,243,174,115,134,48,175,151,91,44,55,172,147,203,229,215,91,164,191,95,175,176,214,65,141,188,82,197,146,253,242,163,188,37,151,26,215,202,40,251,101,114,130,90,138,45,146,199,34,28,21,113,52,85,18,85,254,17,103,74,120,148,156,35,104,139,218,162,248,136,142,150,188,135,156,139,231,107,156,72,250,45,82,107,35,223,11,195,17,87,233,251,100,8,140,186,223,46,188,219,188,189,252,107,222,117,206,16,230,245,114,139,229,62,41,212,202,145,232,29,25,100,8,235,21,214,58,168,145,87,170,88,178,95,126,148,183,228,82,227,90,25,101,191,76,78,80,75,177,69,242,88,132,163,34,142,166,74,162,202,63,226,76,9,143,146,115,4,109,81,91,20,31,209,209,146,247,144,115,57,150,125,191,33,203,11,38,136,136,120,63,139,246,140,76,47,70,213,185,230,224,245,110,16,140,186,223,46,188,219,188,189,252,107,222,117,206,16,230,247,178,203,90,197,253,253,58,69,243,139,44,10,106,56,90,247,91,22,197,230,247,131,200,91,241,164,202,251,199,179,33,218,102,251,120,77,93,108,145,127,156,152,35,232,221,184,113,137,234,31,180,55,216,55,236,85,181,220,100,26,38,243,175,124,171,44,139,100,163,100,25,21,149,23,209,217,33,206,49,153,54,241,245,197,99,130,213,59,38,216,91,206,234,152,224,25,117,60,38,136,199,4,139,138,163,240,173,176,8,204,176,74,227,104,140,16,2,51,204,198,199,163,65,120,183,5,251,241,182,222,146,127,205,63,210,29,29,205,43,146,27,220,234,114,59,18,189,35,69,22,248,245,10,107,29,212,200,43,85,108,133,119,164,120,188,87,67,17,115,80,142,92,138,216,2,191,12,145,133,126,191,138,244,245,107,39,183,209,203,16,173,105,48,6,226,140,8,202,15,250,88,108,173,60,35,195,92,42,127,70,229,167,56,71,146,244,136,150,38,138,151,40,34,65,13,101,125,162,44,8,198,92,180,215,138,33,63,30,96,213,26,53,249,241,128,50,188,99,196,212,241,128,233,117,241,187,199,241,29,35,189,54,245,59,70,178,58,30,16,245,142,17,245,241,0,211,239,24,49,117,60,64,255,29,35,31,140,6,97,251,215,179,236,34,216,214,91,242,175,249,71,186,163,163,121,69,114,131,91,93,110,71,162,119,100,152,35,168,87,88,235,160,70,94,169,98,43,188,35,197,227,123,159,75,27,222,54,63,115,80,142,92,138,216,2,175,110,126,54,145,150,65,127,133,45,15,123,77,20,109,149,166,193,24,136,51,34,40,63,232,99,177,181,242,140,12,115,169,252,25,149,159,226,28,73,210,35,90,154,40,94,162,136,4,53,148,245,137,178,32,24,115,209,94,43,134,250,188,192,109,150,108,30,112,187,229,204,3,238,176,44,184,211,186,203,10,206,3,238,182,238,177,122,243,128,123,173,49,112,159,197,231,1,247,219,203,15,88,201,230,1,15,90,15,89,99,225,97,235,17,235,81,235,49,235,113,43,60,15,120,194,122,210,90,7,158,178,226,204,3,198,214,227,204,3,158,182,220,121,192,51,182,182,207,90,251,192,115,150,59,15,120,222,10,190,107,44,60,15,120,193,122,209,10,206,3,166,144,19,33,217,60,224,37,91,230,203,246,231,21,203,63,15,120,213,122,205,122,221,122,195,18,205,3,222,180,130,243,128,183,172,183,45,119,30,240,142,21,103,30,240,174,213,155,7,188,103,93,3,239,91,193,121,192,68,235,70,248,192,114,231,1,31,90,183,194,71,86,111,30,240,177,245,137,21,156,7,124,106,137,230,1,29,203,153,7,116,173,167,97,146,21,158,7,76,182,162,230,1,163,150,59,15,152,98,13,54,15,152,106,197,121,215,216,52,43,56,15,152,110,69,207,3,102,88,179,230,1,150,124,30,0,13,210,112,231,1,245,198,150,196,106,52,26,226,121,64,179,193,231,1,35,13,255,60,160,213,136,55,15,104,55,198,147,217,26,179,55,230,104,204,217,56,142,204,213,152,187,49,79,99,76,35,217,123,135,31,237,224,185,193,50,157,27,236,197,19,239,23,192,115,131,101,57,55,120,153,244,254,223,241,163,195,110,91,90,54,248,89,203,224,167,34,251,220,20,31,70,77,134,195,71,147,183,148,193,58,115,172,101,240,83,145,125,110,138,47,223,168,189,143,89,82,42,92,142,207,78,65,148,8,242,223,2,71,150,160,114,165,99,131,159,181,12,126,42,178,207,77,241,165,23,53,82,19,109,173,219,91,253,215,7,200,208,20,244,25,145,140,107,217,219,219,181,217,124,173,179,219,107,115,72,250,207,105,111,159,171,22,207,142,185,251,253,230,241,244,222,43,228,165,49,118,235,188,51,123,204,87,59,157,121,219,230,15,201,89,192,222,178,96,104,235,66,177,244,89,184,22,215,255,139,68,246,220,203,64,164,23,173,125,198,35,227,179,246,242,98,53,181,140,207,199,178,96,233,154,190,126,81,88,38,6,255,178,179,250,44,103,47,45,111,127,86,152,181,101,69,207,248,149,250,203,99,3,140,43,7,214,87,169,173,234,219,178,218,204,181,213,5,154,172,161,208,206,201,176,53,99,250,104,45,105,191,181,107,60,78,235,204,236,181,110,4,235,184,153,109,235,197,148,140,215,8,225,53,66,120,141,80,181,175,17,170,238,125,131,111,141,226,125,131,120,110,48,205,115,131,111,141,186,53,96,216,206,13,254,166,196,71,140,126,139,71,195,108,108,141,71,0,50,244,78,58,222,78,55,134,88,3,48,203,209,59,213,174,1,122,248,63,220,203,16,136,33,7,206,3,240,127,58,244,14,206,3,16,50,252,209,83,69,254,52,4,21,229,207,57,233,248,23,172,182,8,67,248,242,104,177,152,55,25,13,47,135,153,190,92,152,42,189,201,104,158,114,139,226,7,177,30,105,107,151,151,245,197,201,62,51,152,48,154,53,115,180,68,111,171,187,28,30,97,86,107,29,182,9,163,121,198,77,228,173,226,100,81,218,26,233,243,15,198,48,161,100,53,224,212,209,172,153,47,138,124,135,221,198,163,225,229,48,147,89,173,47,214,120,171,222,198,57,229,131,35,215,235,135,75,234,69,203,162,83,71,243,144,154,4,223,171,231,35,183,88,56,113,52,107,230,104,137,222,86,119,57,60,194,172,214,58,108,39,142,230,25,55,145,183,138,147,69,105,107,164,207,63,24,195,137,120,188,48,39,92,135,71,193,16,8,68,106,184,30,43,12,2,81,105,252,11,107,0,34,37,224,187,198,240,158,33,124,215,24,62,79,16,81,45,252,23,231,20,136,76,241,63,204,184,82,225,6,140,39,162,36,24,143,239,27,68,96,134,33,16,185,226,198,148,230,20,55,25,227,189,25,103,61,136,18,226,22,204,107,4,2,81,8,220,102,180,26,221,62,139,237,14,99,188,119,86,160,94,238,57,77,5,121,159,56,163,7,225,205,10,187,55,146,106,164,175,115,218,86,235,240,39,201,138,162,232,92,38,29,204,106,195,57,84,108,248,127,17,34,63,220,157,210,255,178,247,24,227,189,23,127,55,101,142,251,50,243,249,70,179,142,218,222,159,105,156,31,200,45,171,30,44,92,62,63,100,84,163,135,103,177,61,50,115,105,69,237,247,31,60,218,48,145,97,140,62,102,243,60,158,145,255,159,192,186,149,25,158,156,154,188,37,45,137,8,244,157,62,94,168,84,245,120,17,107,101,1,240,82,74,81,120,217,24,239,43,5,204,147,87,13,235,132,247,11,224,253,2,248,142,17,188,95,192,193,27,149,250,159,241,77,156,7,32,98,224,173,194,228,201,219,152,177,8,4,34,249,60,63,70,229,192,223,2,121,252,22,120,175,129,247,14,227,111,129,114,223,59,60,209,208,188,229,3,109,158,103,13,220,183,241,97,74,179,176,143,82,226,253,56,213,89,227,39,51,217,63,53,32,165,99,115,116,83,208,118,82,232,220,224,228,144,148,81,161,220,41,129,173,83,37,218,77,11,109,159,62,115,203,140,188,230,236,248,91,1,17,27,141,38,250,0,145,12,87,78,77,62,226,202,169,217,72,86,245,144,183,95,57,117,180,110,210,254,65,188,100,222,35,83,234,131,241,38,215,192,132,148,30,71,26,218,122,117,116,150,195,82,196,57,26,220,38,211,78,196,23,108,137,182,204,180,221,233,70,253,55,83,147,143,248,205,212,108,36,171,122,200,219,227,107,24,175,231,32,94,74,39,22,170,62,255,232,154,136,137,137,8,247,56,126,51,53,189,140,229,252,97,41,226,28,13,110,147,105,39,226,11,182,68,91,102,218,110,19,124,183,118,111,237,154,211,104,80,174,224,56,21,207,224,114,188,35,7,99,145,143,138,242,101,148,172,180,172,53,49,58,27,152,209,209,101,233,125,139,150,227,115,232,100,70,244,88,53,115,120,95,136,103,131,215,226,100,184,165,123,139,193,28,25,148,43,56,78,197,51,184,28,239,200,193,88,228,163,162,124,25,37,43,45,107,77,140,206,6,102,116,116,89,122,223,162,229,248,28,58,153,17,61,86,205,28,222,23,226,217,224,181,56,14,254,222,13,194,221,230,237,195,183,137,122,202,215,189,91,130,203,98,233,97,22,47,151,59,206,233,35,98,240,106,27,102,12,107,228,181,204,101,141,210,74,196,173,26,33,239,19,207,254,248,227,189,49,245,91,227,181,92,238,121,121,86,68,203,12,107,25,244,87,84,180,163,179,74,30,79,89,118,197,205,41,117,223,36,25,26,108,247,231,170,56,27,85,89,166,138,69,208,115,98,221,213,250,186,184,185,123,179,193,255,39,6,229,10,142,83,241,12,46,231,230,174,46,139,124,84,148,47,163,100,165,101,173,137,209,217,192,140,142,46,75,239,91,180,28,159,67,39,51,162,199,170,153,195,251,66,60,27,188,22,35,16,213,68,11,207,126,14,4,188,95,0,81,22,220,142,255,3,14,132,219,186,183,117,77,178,153,25,167,226,25,92,142,119,228,96,44,242,81,81,190,140,146,149,150,181,38,70,103,149,133,38,89,122,223,162,229,248,28,58,153,17,61,86,205,28,222,23,226,217,224,181,56,14,254,214,13,194,221,230,237,195,183,137,122,202,215,189,91,130,203,98,233,97,22,47,151,59,206,233,35,98,240,106,27,102,12,107,228,181,204,101,141,210,74,196,173,26,33,239,19,207,254,248,227,189,49,245,91,227,181,92,238,121,121,86,68,203,12,107,25,244,87,84,180,163,179,74,30,79,89,118,197,205,41,117,223,36,25,26,108,247,231,170,56,27,85,89,166,138,69,208,115,98,221,85,250,94,29,2,163,238,183,11,239,54,81,79,249,186,119,75,112,217,223,42,103,241,114,185,227,156,62,34,6,175,182,97,198,176,70,94,203,92,214,171,35,189,162,150,23,246,163,172,79,60,251,227,143,231,190,9,90,227,181,92,238,121,30,241,248,224,209,240,123,90,228,5,177,181,209,89,37,143,167,44,187,226,230,148,186,111,146,12,13,182,251,115,85,156,141,170,44,83,197,34,232,57,177,238,42,125,175,10,129,81,247,219,133,119,155,168,167,124,221,187,37,184,236,111,149,179,120,185,220,113,78,31,17,131,87,219,48,99,88,35,175,101,46,235,85,145,94,81,203,11,251,81,214,39,158,253,241,199,115,223,4,173,241,90,46,247,60,143,120,124,240,104,248,61,45,242,130,216,218,232,172,146,199,83,150,93,113,115,74,221,55,73,134,6,219,253,185,42,206,70,85,150,169,98,17,244,156,88,119,181,190,136,225,193,108,120,188,27,145,34,198,117,197,203,209,61,245,228,100,105,149,95,110,111,205,217,34,215,103,246,102,214,182,232,243,165,239,93,87,130,92,82,184,69,214,55,45,109,221,200,14,131,63,139,164,211,28,158,140,159,51,50,251,231,210,250,223,104,238,76,255,47,227,207,15,152,199,39,119,204,172,181,121,53,244,153,207,176,45,243,15,193,255,243,11,204,212,113,65,169,174,11,133,90,22,150,244,93,36,37,123,23,237,243,126,166,249,89,109,254,197,10,24,145,197,113,54,152,35,150,214,246,254,20,50,44,182,46,83,224,76,91,22,247,2,131,8,63,75,108,133,38,62,75,44,237,103,137,173,216,196,231,10,227,179,196,138,242,44,177,42,63,79,240,220,46,62,91,28,107,0,214,0,70,15,155,84,228,121,138,74,187,193,181,31,108,164,119,148,187,28,102,226,91,242,246,174,72,126,58,58,245,88,131,118,167,105,125,18,31,139,189,144,118,108,242,138,125,114,185,7,23,186,6,168,180,27,92,251,193,70,122,71,185,203,97,38,190,37,111,239,138,228,167,163,83,143,53,104,119,154,214,39,241,177,216,11,105,199,38,175,216,39,149,91,229,223,2,59,224,111,1,252,45,128,191,5,236,246,3,11,61,15,80,105,55,184,246,131,141,244,142,114,151,195,76,124,75,222,222,21,201,79,71,167,30,107,208,238,52,173,79,226,99,177,23,210,142,77,94,177,79,46,247,144,66,215,0,149,118,131,107,63,216,72,239,40,119,57,204,196,183,228,237,93,145,252,116,116,234,177,6,237,78,211,250,36,62,22,123,33,237,216,228,21,251,228,114,15,42,116,13,80,105,55,184,246,131,141,244,142,114,151,195,76,124,75,222,222,21,201,79,71,167,30,107,208,238,52,173,79,226,99,177,23,210,142,77,94,177,79,46,247,208,66,215,0,149,118,131,107,63,216,72,239,40,119,57,204,196,183,228,237,93,145,252,116,116,234,177,6,237,78,211,250,36,62,22,123,33,237,216,228,21,251,228,114,199,23,186,6,168,180,27,92,251,193,70,122,71,185,203,97,38,190,37,111,239,138,228,167,163,83,143,53,104,119,154,214,39,241,177,216,11,105,199,38,175,216,39,151,123,64,161,107,128,74,187,193,181,31,108,164,119,148,187,28,102,226,91,242,246,174,72,126,58,58,245,88,131,118,167,105,125,18,31,139,189,144,118,108,242,138,125,114,185,199,20,186,6,168,180,27,92,251,193,70,122,71,185,203,97,38,190,37,111,239,138,228,167,163,83,143,53,104,119,154,214,39,241,177,216,11,105,199,38,175,216,39,151,123,120,161,107,128,74,187,193,181,31,108,164,119,148,187,28,102,226,91,242,246,174,72,126,58,58,245,88,131,118,167,105,125,18,31,139,189,144,118,108,242,138,125,114,185,71,21,186,6,168,180,27,92,251,193,70,122,71,185,203,97,38,190,37,111,239,138,228,167,163,83,143,53,104,119,154,214,39,241,177,216,11,105,199,38,175,216,39,151,123,68,161,107,128,74,187,193,181,31,108,164,119,148,187,28,102,226,91,242,246,174,72,126,58,58,245,88,131,118,167,105,125,18,31,139,189,144,118,108,242,138,125,114,185,71,22,186,6,168,180,27,92,251,193,70,122,71,185,203,97,38,190,37,111,239,138,228,167,163,83,143,53,104,119,154,214,39,241,177,216,11,105,199,38,175,216,23,123,143,70,20,1,171,224,19,56,16,8,68,33,176,90,225,171,209,234,88,47,11,143,205,166,102,63,210,28,195,176,249,172,92,246,164,237,135,225,241,243,209,147,162,214,143,158,84,44,237,146,182,155,30,233,29,229,46,135,153,248,150,34,250,47,29,157,122,172,65,187,211,180,62,137,143,197,94,24,84,187,184,227,242,138,125,222,57,55,76,88,3,231,121,8,4,34,2,107,98,141,208,68,17,159,206,143,64,32,178,195,90,88,69,43,139,137,13,51,60,31,104,243,240,119,140,12,142,15,13,89,19,196,71,41,241,126,156,18,175,131,79,102,178,127,106,64,202,218,118,141,232,166,160,237,58,51,107,207,138,179,158,136,55,57,36,101,84,40,119,74,96,235,186,146,42,54,45,52,122,250,204,45,51,82,245,126,4,12,200,93,191,82,53,123,3,252,31,170,0,216,48,165,40,108,100,140,119,99,204,19,68,161,176,9,102,100,34,236,206,242,103,64,32,16,217,99,51,172,149,67,140,227,88,30,146,178,147,26,45,75,165,71,249,231,1,102,34,113,123,183,8,243,0,93,91,130,227,157,117,53,235,230,51,179,100,139,92,179,5,143,9,198,1,30,19,220,58,165,99,130,219,24,59,38,184,109,165,142,9,34,16,166,177,3,206,201,17,8,68,4,118,76,169,70,236,132,181,103,32,120,175,233,242,95,223,149,236,106,47,85,111,83,215,142,37,229,9,219,228,108,145,243,236,220,52,173,131,138,71,159,111,80,175,196,31,167,30,17,110,17,247,29,215,77,235,58,66,55,178,131,73,144,239,9,233,68,63,237,24,199,199,28,158,140,159,211,151,253,187,36,170,170,187,42,122,207,109,168,70,239,150,144,103,30,95,255,49,179,214,230,213,208,103,62,67,182,236,62,147,103,254,204,255,255,250,194,76,137,123,196,150,188,231,204,158,11,74,71,44,20,106,89,88,216,119,175,230,34,41,217,187,119,159,247,51,205,207,54,247,25,64,194,190,158,49,251,69,140,223,63,167,217,198,226,56,203,65,12,29,22,150,100,237,193,41,101,243,33,149,218,75,14,197,154,144,218,156,234,8,244,109,206,17,200,159,23,239,122,66,32,210,196,145,41,85,217,241,198,120,143,170,212,255,3,71,23,194,218,99,82,211,226,88,31,243,113,179,214,142,199,255,237,115,195,9,70,125,63,97,22,219,137,198,120,79,242,49,157,92,202,92,121,183,246,94,237,253,218,196,218,7,181,15,107,31,213,62,174,125,82,219,163,254,105,173,83,235,214,252,253,38,213,38,215,70,237,109,83,106,83,107,211,106,211,123,173,246,167,6,0,4,234,192,104,3,154,246,223,17,104,65,27,102,131,217,97,14,152,19,122,227,230,130,185,97,30,24,3,243,218,107,243,193,252,176,0,44,8,11,129,203,186,8,44,10,159,129,207,194,98,176,184,189,109,73,88,10,62,103,127,127,30,150,134,101,96,89,88,14,150,239,247,92,17,86,234,127,143,5,174,207,42,176,234,204,181,213,96,117,88,3,214,132,181,96,109,88,199,222,182,174,253,25,7,235,193,250,176,1,108,8,27,193,198,246,250,38,176,41,108,6,155,247,71,108,1,91,194,86,176,117,127,121,27,251,239,182,176,29,108,111,127,239,96,127,118,132,157,236,191,59,195,46,176,43,236,6,187,195,23,96,15,216,19,246,130,189,251,189,247,233,255,221,23,246,131,253,225,0,56,208,94,59,200,254,28,108,127,14,153,169,203,225,112,4,28,9,227,237,181,163,236,207,209,112,12,28,219,111,57,206,254,123,60,156,0,19,236,239,51,201,73,112,178,253,125,42,124,17,190,4,95,134,211,224,43,112,58,156,1,95,133,175,193,153,240,117,187,133,218,159,111,192,217,240,77,248,22,156,3,231,218,107,223,182,63,223,129,239,206,148,114,129,253,125,17,92,12,151,192,247,224,251,240,3,248,33,252,8,46,133,31,195,79,102,182,255,20,126,214,95,186,188,255,247,231,240,11,248,101,127,233,87,240,107,184,18,126,211,95,254,45,252,14,126,15,255,7,127,128,63,194,159,224,207,240,23,248,171,199,187,87,193,213,246,218,223,224,239,240,15,251,251,90,248,39,92,7,215,195,191,224,223,240,31,248,47,252,15,110,128,27,237,237,55,193,205,51,199,220,10,183,217,75,183,219,159,59,224,78,184,11,238,182,151,238,129,123,251,173,247,193,253,240,64,127,233,65,120,200,254,126,4,30,181,255,62,14,79,192,147,240,148,189,244,180,253,121,6,158,133,231,224,121,120,1,94,180,215,94,130,151,225,21,120,21,94,131,215,225,13,120,211,222,242,22,188,13,239,192,187,240,30,188,15,19,251,92,31,192,135,246,247,71,240,49,124,2,159,66,199,94,238,194,36,152,12,163,48,5,166,194,52,152,14,51,128,65,141,0,33,164,78,24,181,72,195,254,59,66,90,164,77,102,35,179,147,57,200,156,246,250,92,100,110,50,15,25,67,230,181,151,231,35,243,147,5,200,130,246,210,66,100,97,178,8,89,148,124,198,94,254,44,89,140,44,78,150,32,75,218,203,159,35,159,39,75,147,101,236,165,101,201,114,100,121,178,2,89,145,172,68,198,146,149,201,42,100,85,178,26,89,157,172,65,214,36,107,217,237,107,147,117,8,247,230,186,246,242,122,100,125,178,1,217,144,108,100,47,111,76,54,33,155,246,219,55,35,155,147,45,200,150,100,43,123,109,107,178,141,253,119,91,178,29,217,222,254,222,129,236,72,118,234,247,217,153,236,66,118,37,187,145,221,251,107,95,32,123,144,61,201,94,100,111,178,15,217,215,222,178,159,253,57,128,28,72,14,34,7,247,219,15,233,255,61,148,28,214,255,62,156,28,65,142,180,151,198,147,163,200,209,228,24,114,44,57,142,28,79,78,32,19,200,137,228,36,114,50,57,133,156,74,190,72,194,53,128,81,172,1,88,3,176,6,84,167,6,224,124,116,152,240,37,252,221,130,72,17,113,175,140,208,61,86,154,199,145,86,126,69,80,120,139,92,159,47,55,179,182,37,251,107,132,6,151,160,127,141,80,218,231,5,76,92,131,164,203,144,134,133,121,92,35,20,196,105,90,255,27,205,157,195,255,101,95,105,22,251,26,33,23,243,15,193,255,243,167,27,187,70,200,254,45,152,146,189,103,204,186,70,72,151,233,171,5,140,8,94,35,132,40,15,190,158,82,54,211,153,188,103,105,243,127,3,247,183,76,113,118,138,254,254,38,198,178,208,248,86,5,226,115,14,230,32,162,114,56,23,179,126,168,240,109,79,188,190,83,250,216,125,23,179,179,0,56,47,165,40,156,111,140,247,2,204,19,68,161,128,207,20,77,6,124,166,232,48,98,254,110,30,146,6,147,122,73,211,180,133,42,61,230,47,253,29,44,102,44,116,89,244,217,116,24,116,165,7,199,59,235,106,86,115,214,35,16,195,138,239,225,124,105,136,129,207,21,174,246,111,1,124,174,176,124,124,250,207,21,142,127,157,160,30,138,241,4,166,56,215,9,254,16,175,19,140,144,128,215,9,230,133,34,92,39,168,135,185,115,250,191,12,175,19,52,131,97,184,78,240,71,198,174,19,188,180,2,215,9,226,125,131,120,223,32,222,55,136,247,13,14,51,118,159,18,111,219,160,189,134,197,230,106,106,81,236,24,14,111,134,33,202,130,159,226,209,113,68,69,241,51,204,125,4,2,129,40,4,46,195,122,156,51,46,47,125,4,118,157,18,111,219,160,189,134,197,230,106,106,81,236,24,14,111,134,13,23,174,16,84,185,143,234,113,70,238,52,180,17,250,184,94,4,45,62,41,128,22,159,22,194,19,229,203,176,170,96,63,140,16,2,51,140,138,174,15,248,69,211,127,125,192,109,86,239,111,240,250,128,25,53,86,187,221,114,174,15,184,195,178,224,78,235,46,43,120,125,192,221,214,61,86,239,250,128,123,173,49,112,159,197,175,15,184,223,94,126,160,207,234,189,62,96,9,16,95,31,176,2,244,174,15,120,208,122,200,26,11,15,91,143,88,143,90,143,89,143,91,225,235,3,158,176,158,180,214,129,167,172,168,235,3,126,217,116,174,15,24,91,143,115,125,192,211,150,123,125,192,51,182,182,207,90,251,192,115,150,123,125,192,243,150,255,250,128,67,237,191,135,129,255,250,128,23,172,23,173,224,245,1,83,200,137,208,187,62,224,20,136,186,62,224,44,224,215,7,188,100,203,124,217,254,188,98,245,174,15,56,15,206,135,11,224,66,184,8,94,181,94,179,94,183,222,176,68,215,7,188,105,93,6,189,235,3,174,0,247,250,128,183,172,183,45,247,250,128,119,172,56,215,7,188,107,245,174,15,120,207,186,6,222,183,130,215,7,76,180,110,132,15,172,222,245,1,183,216,163,62,180,110,133,143,172,222,245,1,31,91,159,88,193,235,3,62,181,188,215,7,60,12,189,235,3,30,131,142,229,92,31,208,181,158,134,73,86,248,250,128,201,86,212,245,1,163,150,123,125,192,20,43,254,245,1,77,194,175,15,152,106,205,73,126,213,228,215,7,92,79,68,215,7,76,179,248,245,1,75,145,222,245,1,211,173,232,235,3,102,88,179,174,15,232,103,248,175,155,189,235,3,198,17,255,245,1,208,32,141,94,107,239,250,128,122,99,75,98,53,26,13,241,245,1,205,6,191,62,96,164,225,191,62,160,213,184,178,185,31,217,159,168,174,15,104,55,198,147,217,26,179,55,230,104,204,217,56,142,204,213,152,187,49,79,99,76,35,234,217,226,127,152,89,3,254,216,252,83,243,207,205,191,52,255,218,188,170,121,117,211,169,1,127,107,122,107,0,191,70,200,130,222,53,66,127,111,250,107,192,63,154,215,52,249,53,66,215,54,249,53,66,255,108,46,108,71,237,186,166,168,6,92,223,244,214,128,127,53,157,26,240,239,230,127,154,99,225,191,205,149,225,127,205,27,154,55,54,101,215,8,221,212,92,23,110,110,250,107,192,45,77,183,6,220,218,188,173,233,191,70,232,246,166,83,3,238,104,186,53,224,206,166,248,26,161,187,154,189,107,132,238,110,242,107,132,238,105,30,4,247,54,221,26,112,95,147,215,128,251,155,252,26,161,7,154,189,26,240,96,211,189,70,232,161,102,116,13,120,184,233,175,1,231,194,35,205,111,195,163,205,222,53,66,143,53,121,13,16,93,35,244,184,45,235,137,102,239,26,33,183,6,60,217,116,106,192,83,205,167,155,131,93,35,116,13,136,175,17,122,166,233,214,0,126,141,208,179,77,247,26,161,231,154,189,26,240,124,243,133,166,115,141,208,139,205,151,154,222,26,32,191,70,232,229,102,240,26,161,87,154,234,107,132,94,109,70,213,128,215,154,193,26,32,191,70,232,245,38,175,1,111,52,131,53,160,119,141,208,155,205,232,107,132,222,106,246,106,192,219,253,95,169,239,52,223,109,250,107,192,123,77,231,26,161,247,155,19,155,252,26,161,15,154,162,26,240,97,243,163,38,175,1,31,55,63,105,250,175,17,250,212,87,3,58,205,110,243,16,50,169,57,185,105,250,253,2,69,158,7,44,52,41,217,60,160,39,19,231,1,56,15,112,230,1,222,26,144,214,60,160,135,244,230,1,189,235,4,245,231,1,11,78,82,129,209,228,45,113,160,55,58,13,168,53,210,215,185,120,86,123,117,115,145,191,167,171,13,19,254,225,28,42,182,42,31,179,25,45,244,81,229,193,48,37,134,77,207,23,236,94,184,34,232,83,52,159,100,154,51,163,65,184,219,68,253,252,253,131,163,195,235,222,45,193,101,177,116,153,12,167,183,59,206,217,42,98,112,123,137,25,189,35,56,163,127,92,180,86,97,43,68,227,252,204,34,157,228,136,178,73,197,18,142,149,95,11,81,92,130,163,101,173,81,121,18,246,124,208,95,81,209,142,206,42,121,60,101,217,21,199,167,241,250,198,201,80,89,187,204,155,81,30,137,246,154,156,203,159,105,193,189,35,94,214,12,47,200,72,117,235,55,66,15,117,204,157,62,166,142,6,225,110,19,245,243,247,15,142,14,175,123,183,4,151,197,210,101,50,156,222,238,56,103,171,136,193,237,37,102,244,142,224,140,254,113,209,90,133,173,16,141,243,51,139,116,146,35,202,38,21,75,56,86,126,45,68,113,9,142,150,181,70,229,73,216,243,65,127,69,69,59,58,171,228,241,148,101,87,28,159,198,235,27,39,67,101,237,50,111,70,121,36,218,107,114,46,127,166,5,247,142,120,89,51,188,0,188,210,7,129,185,163,133,65,159,33,34,186,62,32,201,51,68,22,238,183,198,63,55,216,235,221,123,134,200,202,51,207,96,185,215,7,76,26,205,234,25,34,214,200,62,176,116,83,246,12,17,209,185,65,209,51,68,166,144,171,235,201,206,13,250,159,33,18,125,125,128,227,27,239,245,1,131,63,67,100,153,102,244,245,1,206,51,68,252,215,7,4,159,33,210,24,9,62,67,68,125,125,64,156,103,136,44,219,28,228,25,34,193,235,3,38,141,170,206,13,122,159,33,194,175,15,72,254,12,145,224,185,193,240,51,68,154,35,131,62,67,68,125,110,80,117,125,192,180,209,32,24,117,191,189,240,183,137,214,68,235,222,45,193,101,127,171,140,197,171,13,31,231,108,21,49,184,189,196,140,222,17,156,209,63,46,90,171,176,21,162,113,126,102,145,78,114,68,217,164,98,9,199,202,175,133,40,46,193,209,178,214,168,60,9,123,62,232,175,168,104,71,103,149,60,158,178,236,138,227,211,120,125,227,100,168,172,93,230,205,40,143,68,123,77,206,229,207,180,224,222,17,47,107,170,136,38,206,4,17,67,150,97,179,227,81,76,196,144,97,78,204,89,68,129,241,122,183,170,215,8,101,135,151,43,253,166,155,215,187,197,103,236,97,216,143,9,22,229,185,194,113,143,9,50,154,244,126,129,188,142,9,170,238,25,138,115,76,176,215,150,198,49,193,193,158,43,28,239,158,161,124,142,9,14,254,92,97,253,99,130,85,174,211,85,197,220,56,67,71,24,152,7,48,124,191,0,190,95,0,223,47,80,138,247,11,96,13,192,26,128,53,160,218,53,96,252,180,32,236,17,51,191,189,240,183,57,75,254,53,239,58,103,8,243,122,185,197,114,69,28,206,183,95,159,48,71,80,175,176,214,193,101,175,84,177,21,254,222,65,139,248,199,207,237,247,99,216,58,177,20,177,5,94,221,252,108,34,45,131,254,146,89,46,27,205,25,162,53,13,198,64,156,17,65,249,65,31,139,173,149,197,79,196,165,242,103,84,126,138,115,36,73,15,149,103,194,241,18,69,36,168,161,172,79,116,182,251,99,46,218,107,197,208,63,38,200,232,50,117,11,150,173,47,87,151,205,3,150,175,143,129,21,234,124,30,208,219,110,254,152,224,138,245,149,234,113,231,1,241,158,33,98,87,221,153,243,0,71,146,119,30,176,114,93,125,76,176,135,240,60,96,149,88,215,9,50,234,206,3,86,181,61,183,154,253,89,189,238,63,38,232,70,70,52,15,96,212,212,49,193,53,234,215,192,154,117,255,60,160,215,35,120,76,176,247,183,55,15,88,171,174,58,38,200,104,239,152,32,163,209,243,0,70,95,181,63,234,121,192,218,245,193,142,9,218,231,45,99,206,3,214,169,123,143,9,174,91,143,158,7,216,30,136,113,76,112,92,125,189,186,59,15,96,116,203,126,223,100,243,0,59,27,201,250,245,184,199,4,197,208,253,45,128,231,5,240,188,0,158,23,40,199,121,129,147,166,5,193,168,251,237,133,191,205,89,242,175,121,215,57,67,152,215,203,45,150,43,226,112,190,253,250,132,57,130,122,133,181,14,46,123,165,138,173,240,247,14,90,196,63,126,110,191,31,195,214,137,165,136,45,240,234,230,103,19,105,25,244,151,204,114,217,104,206,16,173,105,48,6,226,140,8,202,15,250,88,108,173,44,126,34,46,149,63,163,242,83,156,35,73,122,168,60,19,142,151,40,34,65,13,101,125,162,179,221,31,115,209,94,27,149,53,8,132,41,204,143,103,30,241,220,96,196,111,129,5,70,76,158,23,184,161,158,221,111,129,27,109,89,11,142,36,57,47,112,115,221,253,45,112,75,61,143,243,2,183,214,229,231,5,110,171,171,127,11,220,94,143,119,94,224,142,186,206,121,129,59,235,201,127,11,220,85,191,187,62,28,231,5,238,169,223,91,47,239,185,65,60,30,128,199,3,240,120,64,57,142,7,28,57,45,8,70,221,111,47,252,109,206,146,127,205,187,206,25,194,188,94,110,177,92,17,135,243,237,215,39,204,17,212,43,172,117,112,217,43,85,108,133,191,119,208,34,254,241,115,251,253,24,182,78,44,69,108,129,87,55,63,155,72,203,160,191,100,150,203,70,115,134,104,77,131,49,16,103,68,80,126,208,199,98,107,101,241,19,113,169,252,25,149,159,226,28,73,210,67,229,153,112,188,68,17,9,106,40,235,19,157,237,254,152,139,246,90,49,112,30,128,243,0,156,7,84,123,30,112,196,180,32,24,117,191,189,240,183,57,75,254,53,239,58,103,8,243,122,185,197,114,69,28,206,183,95,159,48,71,80,175,176,214,193,101,175,84,177,21,254,222,65,139,248,199,207,237,247,99,216,58,177,20,177,5,94,221,252,108,34,45,131,254,146,89,46,27,205,25,162,53,13,198,64,156,17,65,249,65,31,139,173,149,197,79,196,165,242,103,84,126,138,115,36,73,15,149,103,194,241,18,69,36,168,161,172,79,116,182,251,99,46,218,107,197,56,60,4,187,122,204,252,246,194,223,230,44,249,215,188,235,156,33,204,235,229,22,203,21,113,56,223,126,125,194,28,65,189,194,90,7,151,189,82,197,86,248,123,7,45,226,31,63,183,223,143,97,235,196,82,196,22,120,117,243,179,137,180,12,250,75,102,185,108,52,103,136,214,52,24,3,113,70,4,229,7,125,44,182,86,22,63,17,151,202,159,81,249,41,206,145,36,61,84,158,9,199,75,20,145,160,134,178,62,209,217,238,143,185,104,175,141,202,26,196,32,88,20,207,130,33,42,124,110,16,175,21,198,107,133,241,90,225,106,95,43,204,240,190,65,188,111,16,239,27,196,123,135,177,6,96,13,192,26,48,244,53,224,168,105,65,216,249,59,243,219,11,127,155,179,228,95,243,174,115,134,48,175,151,91,44,87,196,225,124,251,245,9,115,4,245,10,107,29,92,246,74,21,91,225,239,29,180,136,127,252,220,126,63,134,173,19,75,17,91,224,213,205,207,38,210,50,232,47,153,229,178,209,156,33,90,211,96,12,196,25,17,148,31,244,177,216,90,89,252,68,92,42,127,70,229,167,56,71,146,244,80,121,38,28,47,81,68,130,26,202,250,68,103,187,63,230,162,189,86,12,156,7,224,60,0,231,1,213,158,7,84,247,104,232,1,248,126,1,4,102,88,165,113,4,70,8,129,25,134,64,84,24,75,224,245,29,21,199,227,21,126,207,26,34,139,12,192,12,43,58,30,197,8,97,6,96,134,85,26,143,97,132,48,3,48,195,42,141,71,48,66,152,1,152,97,149,198,19,24,33,204,0,204,48,132,65,188,54,125,88,52,189,214,194,104,97,190,112,224,117,130,120,157,32,94,39,136,215,9,102,131,207,225,217,88,4,162,128,192,231,7,224,243,3,240,249,1,213,126,126,64,149,235,223,184,110,113,217,138,111,247,210,56,175,67,32,124,88,102,104,246,137,101,113,239,69,20,24,199,177,236,37,101,39,51,123,105,197,144,60,60,26,165,101,93,111,57,43,107,55,111,58,223,91,52,227,245,95,112,74,16,238,54,222,103,133,17,190,45,220,147,111,11,178,249,249,189,253,122,203,98,233,98,25,124,140,171,23,215,48,60,90,180,45,172,17,103,244,143,19,217,227,74,10,91,36,26,231,215,51,44,39,26,50,182,240,214,176,253,92,102,112,68,216,114,145,100,47,167,92,211,160,69,97,43,185,244,176,252,160,94,242,172,146,249,76,164,97,180,95,195,173,65,185,226,44,142,147,161,50,94,217,62,22,244,136,55,175,130,22,7,243,45,236,95,81,92,68,190,143,218,247,241,220,32,158,27,196,115,131,120,110,176,184,199,157,138,127,100,108,152,44,54,139,177,165,57,170,144,86,228,178,202,136,160,28,119,61,239,140,44,254,47,61,211,26,150,251,183,109,85,126,183,15,99,70,4,229,36,61,30,128,64,32,202,139,85,98,204,214,240,120,64,30,199,3,86,29,193,227,1,120,60,0,159,41,138,64,152,194,234,51,170,194,150,159,12,4,162,200,88,99,70,85,216,210,150,81,132,163,90,121,92,35,148,173,229,81,178,84,122,148,255,184,99,186,22,102,123,148,78,87,90,112,124,92,86,157,99,130,183,23,224,236,86,118,58,120,37,101,105,121,148,44,149,30,69,136,208,48,199,63,43,255,57,114,116,165,5,199,199,101,117,123,148,63,91,16,8,23,107,206,168,10,91,126,50,16,136,34,99,173,25,85,97,75,67,70,149,207,13,158,219,197,107,133,241,220,32,158,27,172,114,13,216,1,107,0,214,0,172,1,120,125,64,5,129,207,15,64,68,225,47,83,81,3,93,221,127,68,138,230,181,31,151,160,214,255,101,170,220,198,85,103,164,225,53,179,248,181,29,131,43,137,72,3,87,11,185,54,107,43,170,246,170,120,76,16,81,80,172,139,51,14,68,129,177,159,246,255,1,227,48,195,17,169,102,216,96,88,79,35,47,241,58,193,188,45,196,235,4,241,58,65,38,213,54,139,235,4,147,32,175,231,35,12,135,5,85,120,158,200,134,56,11,170,120,22,108,132,25,128,64,84,26,95,97,25,213,26,54,124,204,233,114,35,134,230,255,73,204,2,156,239,149,26,155,224,76,176,32,25,85,221,28,44,6,214,28,154,183,13,35,134,3,155,142,96,14,22,185,226,162,221,28,155,143,100,37,9,129,64,152,197,229,141,172,36,189,63,138,222,70,164,141,47,51,244,65,113,125,86,236,232,96,238,20,19,91,226,145,38,4,2,129,72,5,199,21,238,216,209,86,88,241,17,62,108,147,98,70,108,139,217,86,104,108,87,129,248,108,63,196,54,238,80,202,248,220,58,173,170,251,27,62,63,0,51,76,134,249,11,112,38,39,59,29,188,146,6,147,186,211,200,160,114,119,30,25,204,250,34,68,104,152,227,159,149,255,28,57,186,210,130,227,227,178,186,61,6,145,143,247,13,230,109,33,222,55,136,247,13,202,181,45,218,125,131,8,4,162,40,216,85,235,215,29,190,115,52,143,103,138,238,134,239,28,197,103,138,82,124,174,112,149,107,192,23,176,6,96,13,192,26,80,233,26,128,207,22,199,26,80,156,26,128,191,165,16,136,97,199,222,120,60,0,231,1,56,15,192,121,192,192,243,128,83,89,16,118,118,206,252,246,194,223,230,44,249,215,188,235,156,33,204,235,229,246,246,222,119,36,220,143,115,56,223,126,125,194,28,65,189,194,90,7,151,189,150,137,173,240,247,14,90,196,63,126,110,191,31,253,114,228,82,196,22,120,117,243,179,137,180,12,250,75,102,185,108,52,103,136,214,52,24,3,81,70,4,189,16,246,177,216,90,89,252,68,92,42,127,70,229,167,56,71,146,244,80,121,38,28,47,81,68,130,26,202,250,68,103,187,63,230,162,189,86,140,65,231,1,51,106,222,121,128,5,73,231,1,11,67,112,30,176,4,136,231,1,43,128,119,30,176,50,20,115,30,112,168,253,247,48,136,51,15,56,17,122,243,128,83,32,106,30,112,22,200,230,1,231,193,249,112,1,92,8,170,121,192,101,208,155,7,92,1,250,243,128,107,32,106,30,112,11,36,155,7,60,12,189,121,192,99,144,199,60,160,73,116,230,1,75,145,193,231,1,227,72,122,243,128,253,9,30,15,64,32,134,27,7,228,124,237,54,206,3,112,30,128,243,128,106,207,3,176,6,96,13,192,26,128,53,0,207,11,224,121,1,60,47,128,215,7,32,146,227,16,188,7,23,81,2,224,60,0,231,1,56,15,192,121,0,98,248,113,122,233,159,49,95,126,11,17,8,29,76,40,253,30,242,68,13,163,140,48,139,187,241,217,247,8,204,176,74,227,94,140,16,2,51,44,1,14,143,60,6,126,68,230,71,200,143,172,192,49,249,241,133,180,241,168,146,122,254,104,60,203,83,57,140,155,138,214,32,210,244,95,153,98,82,103,73,219,234,44,106,76,124,89,106,150,65,229,120,71,170,56,226,201,136,171,73,124,185,131,250,77,198,107,82,94,60,182,56,158,53,171,149,136,95,44,133,231,168,183,61,216,47,190,47,195,12,193,152,136,114,219,132,245,126,166,116,252,105,177,164,109,22,179,152,9,89,106,22,139,233,91,165,226,136,39,35,174,38,241,229,14,234,55,25,175,73,121,241,216,226,120,214,172,86,34,126,177,20,158,163,222,246,96,191,248,190,12,51,4,99,34,202,109,19,214,251,153,210,244,103,217,176,126,169,102,207,229,178,166,28,254,27,150,152,28,54,45,8,119,155,168,31,239,223,91,242,175,121,215,57,67,152,215,203,45,150,43,226,112,190,253,250,136,44,240,235,21,214,58,184,236,149,42,182,194,223,59,104,17,255,248,185,253,126,12,91,39,150,34,182,192,171,155,159,77,164,101,208,95,50,203,101,163,57,67,180,166,193,24,136,51,34,40,63,232,99,177,181,178,248,137,184,84,254,140,202,79,113,142,36,233,161,242,76,56,94,162,136,4,53,148,245,137,206,118,127,204,69,123,109,84,214,84,19,227,20,239,97,57,102,8,143,20,143,235,154,233,131,64,232,226,155,83,139,46,231,155,56,123,198,76,44,169,228,98,224,216,140,254,15,61,110,96,57,39,49,220,63,170,128,227,115,155,205,97,134,13,63,38,224,85,35,8,4,162,132,56,17,107,27,2,65,227,28,25,59,169,164,251,10,30,19,44,183,159,93,185,24,103,21,86,152,82,85,203,203,255,6,243,106,103,152,249,119,143,15,86,77,178,170,65,131,203,25,215,85,141,61,5,207,13,226,255,198,67,41,185,24,200,234,188,192,169,120,94,0,17,9,60,47,144,23,118,155,86,116,57,187,85,250,250,40,204,196,50,75,78,134,67,167,5,225,110,19,245,227,253,123,75,254,53,239,58,103,8,243,122,185,197,114,69,28,206,183,95,31,145,5,126,189,194,90,7,151,189,82,197,86,248,123,7,45,226,31,63,183,223,143,97,235,196,82,196,22,120,117,243,179,137,180,12,250,75,102,185,108,52,103,136,214,52,24,3,113,70,4,229,7,125,44,182,86,22,63,17,151,202,159,81,249,41,206,145,36,61,84,158,9,199,75,20,145,160,134,178,62,209,217,238,143,185,104,175,141,202,26,4,2,81,70,124,41,198,47,161,19,167,5,225,110,19,245,227,253,123,75,254,53,239,58,103,8,243,122,185,197,114,69,28,206,183,95,31,145,5,126,189,194,90,7,151,189,82,197,86,248,123,7,45,226,31,63,183,223,143,97,235,196,82,196,22,120,117,243,179,137,180,12,250,75,102,185,108,52,103,136,214,52,24,3,113,70,4,229,7,125,44,182,86,22,63,17,151,202,159,81,249,41,206,145,36,61,84,158,9,199,75,20,145,160,134,178,62,209,217,238,143,185,104,175,141,202,26,243,40,195,121,129,47,227,121,129,18,0,207,11,228,133,172,206,11,156,134,231,5,16,145,192,243,2,121,225,247,83,139,46,199,180,134,191,199,251,16,43,157,137,73,37,99,190,228,63,223,82,143,60,29,175,171,71,228,146,155,249,225,166,110,254,92,73,199,13,174,179,119,228,96,44,242,81,55,117,163,218,6,183,230,166,210,255,194,52,111,161,203,216,251,78,206,174,147,25,209,99,213,204,193,30,78,86,37,31,87,118,156,49,240,255,213,219,178,106,121,10,145,53,134,37,195,240,189,195,121,188,119,248,171,35,248,222,97,124,239,112,81,222,59,124,242,180,32,24,117,191,189,240,183,57,75,254,53,239,58,103,8,243,122,185,197,114,69,28,206,183,95,159,48,71,80,175,176,214,193,101,175,84,177,21,254,222,65,139,248,199,207,237,247,99,216,58,177,20,177,5,94,221,252,108,34,45,131,254,146,89,46,27,205,25,162,53,13,198,64,156,17,65,249,65,31,139,173,149,197,79,196,165,242,103,84,126,138,115,36,73,15,149,103,194,241,18,69,36,168,161,172,79,116,182,251,99,46,218,107,197,168,242,60,224,220,110,94,243,128,51,113,30,128,243,128,194,204,3,170,92,3,118,200,173,6,80,172,1,88,3,10,83,3,170,124,204,70,117,238,230,27,120,110,16,129,24,24,89,93,39,120,54,94,39,136,136,4,94,39,152,23,54,153,90,116,57,155,224,117,90,152,137,37,149,156,12,131,30,15,152,81,243,30,15,176,32,233,241,128,133,251,173,222,227,1,75,128,248,120,192,10,192,143,7,252,181,190,114,127,233,170,122,209,206,13,30,106,255,61,12,226,28,15,184,186,126,18,156,12,167,64,212,241,128,179,64,118,60,224,60,56,31,46,128,11,65,117,60,224,50,232,29,15,184,2,244,143,7,92,3,81,199,3,110,233,143,138,127,60,224,97,232,29,15,120,12,242,56,30,208,36,73,143,7,252,173,206,143,7,44,69,6,63,30,48,142,164,119,60,96,127,82,212,227,1,101,184,111,240,28,188,111,176,4,192,251,6,243,2,222,55,136,40,6,240,120,0,86,249,193,71,126,27,207,11,32,114,201,77,68,18,12,126,191,192,142,12,189,135,72,19,85,207,176,50,28,15,248,14,30,15,192,76,28,74,201,197,0,30,15,64,20,3,120,60,0,107,224,224,26,158,135,199,3,48,19,75,189,15,148,99,30,128,85,26,129,243,0,68,90,85,250,2,156,7,32,82,205,48,68,206,51,149,233,232,3,4,102,88,177,112,97,138,255,239,94,132,255,167,23,26,23,87,32,62,151,96,14,150,14,223,195,152,34,42,129,193,126,213,148,225,250,128,239,227,245,1,149,205,223,225,150,92,12,100,117,94,224,84,188,62,0,17,9,60,47,128,85,126,240,145,63,196,185,62,34,151,220,68,36,193,252,221,236,71,186,248,209,192,53,226,82,172,46,152,155,8,67,24,252,158,161,237,25,122,15,145,38,134,37,195,14,154,22,132,187,77,212,143,247,239,45,249,215,188,235,156,33,204,235,229,22,203,21,113,56,223,126,125,68,22,248,245,10,107,29,92,246,74,21,91,225,239,29,180,136,127,252,220,126,63,134,173,19,75,17,91,224,213,205,207,38,210,50,232,47,153,229,178,209,156,33,90,211,96,12,196,25,17,148,31,244,177,216,90,89,252,68,92,42,127,70,229,167,56,71,146,244,80,121,38,28,47,81,68,130,26,202,250,68,103,187,63,230,162,189,54,42,107,134,247,183,80,154,231,5,126,140,51,246,18,0,207,11,228,133,172,206,11,252,4,207,11,32,34,129,231,5,242,194,222,211,138,46,199,180,134,89,89,140,24,150,184,68,75,46,127,190,12,195,111,1,85,143,159,225,111,1,204,196,161,148,92,12,100,245,91,224,50,252,45,128,136,4,254,22,200,11,175,118,139,46,71,95,67,63,131,119,45,45,235,95,197,51,206,137,125,21,252,206,206,155,209,252,233,73,151,91,140,72,138,43,240,183,0,206,134,17,8,132,6,126,142,85,20,81,96,236,59,5,125,128,192,12,139,243,190,193,219,172,222,95,209,251,6,111,183,156,247,13,222,97,89,112,167,117,151,21,124,223,224,221,214,61,86,239,125,131,247,90,99,224,62,139,191,111,240,126,123,249,129,62,107,252,247,13,62,104,61,100,141,133,135,173,71,172,71,173,199,172,199,173,240,251,6,159,176,158,180,214,129,167,172,56,239,27,28,91,143,243,190,193,167,45,247,125,131,207,216,218,62,107,237,3,207,89,238,251,6,159,183,212,239,27,124,193,122,209,10,190,111,112,10,57,17,146,189,111,240,37,91,230,203,246,231,21,203,255,190,193,87,173,215,172,215,173,55,44,209,251,6,223,180,130,239,27,124,203,122,219,114,223,55,248,142,21,231,125,131,239,90,189,247,13,190,103,93,3,239,91,193,247,13,78,180,110,132,15,44,247,125,131,31,90,183,194,71,86,239,125,131,31,91,159,88,193,247,13,126,106,137,222,55,216,177,156,247,13,118,173,167,97,146,21,126,223,224,100,43,234,125,131,163,150,251,190,193,41,214,96,239,27,156,106,249,223,55,120,61,17,189,111,112,154,21,124,223,224,116,43,250,125,131,51,172,89,239,27,180,92,111,134,223,55,8,13,210,232,181,244,222,55,88,111,108,73,172,70,163,33,126,223,96,179,193,223,55,56,210,240,191,111,176,213,136,247,190,193,118,99,60,153,173,49,123,99,142,198,156,141,227,200,92,141,185,27,243,52,198,52,210,127,223,96,241,241,240,40,254,79,133,192,12,67,32,16,233,226,151,133,63,38,178,121,39,8,119,155,211,234,254,245,183,137,214,68,235,222,45,209,173,178,126,65,109,156,37,177,62,238,22,185,94,94,153,206,146,151,201,191,69,140,160,69,65,62,217,114,52,107,148,23,197,54,201,199,70,249,207,193,57,117,217,104,121,86,168,245,148,201,149,219,21,61,50,106,75,180,199,245,160,102,85,201,114,35,46,142,188,40,34,209,251,160,124,143,9,122,142,239,177,222,222,106,125,135,27,4,143,60,35,6,196,175,48,119,42,142,215,241,215,26,2,51,108,24,252,152,232,168,229,60,53,190,188,151,102,4,22,168,229,111,253,94,169,100,209,98,181,244,101,228,129,229,140,68,108,85,195,113,95,179,150,70,46,172,27,193,58,110,102,219,122,49,37,207,63,45,8,119,155,168,31,239,223,91,242,175,121,215,57,67,152,215,203,45,150,43,226,112,190,253,250,136,44,240,235,21,214,58,184,236,149,42,182,194,223,59,104,17,255,140,18,177,119,194,114,228,82,196,22,240,45,83,137,159,77,164,101,208,95,50,203,101,163,57,67,180,166,193,24,136,51,34,40,63,232,99,177,181,178,248,137,184,84,254,140,202,79,113,142,36,233,161,242,76,56,94,162,136,4,53,148,245,137,206,118,127,204,69,123,173,24,11,132,96,255,15,56,243,219,247,191,162,175,205,89,242,175,121,215,57,67,152,215,203,45,150,43,226,112,190,253,250,132,57,130,122,133,181,14,46,123,165,138,173,240,247,14,90,196,63,126,110,191,31,195,214,137,165,136,45,240,234,230,103,19,105,25,244,151,204,114,217,104,206,16,173,105,48,6,226,140,8,202,15,250,88,108,173,44,126,34,46,149,63,163,242,83,156,35,73,122,168,60,19,142,151,40,34,65,13,101,125,162,179,221,31,115,209,94,43,134,250,26,33,7,193,107,132,236,109,246,199,185,70,168,14,140,54,160,9,193,107,132,122,227,122,215,8,205,3,99,96,94,224,215,8,45,52,235,106,20,239,53,66,140,138,175,17,98,180,119,141,80,239,123,172,231,42,150,240,53,66,107,193,218,176,142,189,45,206,53,66,91,65,156,107,132,118,7,247,26,161,189,251,189,247,233,255,117,174,17,58,0,252,215,8,57,186,248,175,17,58,26,142,129,224,53,66,140,158,73,122,215,8,49,26,117,141,16,163,252,26,161,115,237,181,111,219,159,239,192,119,103,74,185,192,254,190,8,46,134,75,224,123,240,125,16,93,35,244,179,254,210,229,253,191,206,53,66,253,99,96,51,175,17,234,45,171,175,17,98,180,119,141,208,63,236,239,107,33,120,141,208,13,112,163,189,189,119,141,144,211,255,86,184,13,122,215,8,49,122,7,4,175,17,186,15,188,215,8,49,218,187,70,136,209,199,193,185,70,136,209,167,237,79,248,26,161,87,32,234,26,33,70,221,107,132,62,134,248,215,8,217,249,57,235,26,161,57,136,255,26,33,59,59,5,215,8,49,202,175,17,98,180,119,141,208,210,36,250,26,161,53,201,172,107,132,248,188,221,94,246,95,35,180,9,217,180,223,222,187,70,104,11,178,37,217,202,94,19,95,35,100,103,227,172,107,132,122,107,222,107,132,246,37,189,107,132,24,85,93,35,196,232,120,114,20,57,154,28,67,142,37,199,145,227,201,9,100,2,57,145,240,107,132,240,183,0,254,22,192,223,2,213,254,45,128,243,0,156,7,224,60,0,231,1,56,15,192,121,0,206,3,112,30,128,243,0,156,7,224,60,0,231,1,56,15,192,121,0,206,3,112,30,128,243,0,156,7,224,60,0,231,1,56,15,192,121,0,206,3,112,30,128,243,0,156,7,224,60,160,26,243,128,59,186,65,216,113,156,249,237,194,187,205,219,203,191,230,93,231,12,97,94,47,183,88,174,72,31,87,15,239,200,32,67,88,175,176,214,65,141,188,82,197,86,120,71,138,199,123,63,98,63,134,173,19,75,17,91,16,246,181,108,116,208,55,92,95,175,230,34,191,5,35,30,71,211,160,68,81,70,4,229,7,125,44,247,155,124,75,80,195,56,90,170,250,4,53,143,90,142,150,229,149,22,220,127,84,146,194,89,18,237,155,160,207,253,62,142,23,193,59,186,56,15,192,121,0,206,3,170,61,15,192,26,128,53,0,107,64,181,107,192,157,221,32,24,117,191,93,120,183,121,123,249,215,188,235,156,33,204,235,229,22,203,21,233,227,234,225,29,25,100,8,235,21,214,58,168,145,87,170,216,10,239,72,241,120,239,71,236,199,176,117,98,41,98,11,194,190,150,141,14,250,134,235,235,213,92,228,183,96,196,227,104,26,148,40,202,136,160,252,160,143,229,126,147,111,9,106,24,71,75,85,159,160,230,81,203,209,178,188,210,130,251,143,74,82,56,75,162,125,19,244,185,223,199,241,34,120,103,23,207,11,224,121,1,60,47,80,237,243,2,197,122,10,68,150,88,22,223,19,140,192,12,163,113,222,47,128,199,3,240,120,0,30,15,192,99,130,88,3,176,6,96,13,40,107,13,192,25,91,245,112,77,102,207,211,157,11,127,111,33,82,71,179,48,89,86,28,77,48,58,232,27,60,30,128,191,5,240,183,0,254,22,168,202,111,129,145,194,84,211,226,104,130,209,65,223,84,9,173,194,120,178,56,154,96,116,208,55,85,66,187,48,158,44,142,38,24,29,244,77,18,132,143,7,252,115,100,184,142,7,92,55,146,244,120,192,245,35,230,142,7,252,107,196,123,60,224,223,35,121,29,15,248,207,200,127,71,134,247,120,192,255,70,226,28,15,184,97,196,204,241,128,27,71,252,199,3,110,26,241,31,15,184,121,196,228,241,128,91,70,122,199,3,110,29,137,123,60,224,182,145,98,92,31,208,170,23,165,6,180,235,120,76,16,143,9,170,143,9,206,86,55,117,76,112,246,58,94,35,20,239,188,192,140,154,183,6,88,144,180,6,44,12,193,26,176,4,136,231,1,43,0,175,1,127,173,175,220,95,186,170,94,180,26,112,168,253,247,48,136,83,3,174,174,247,106,192,41,16,85,3,206,2,89,13,56,15,206,135,11,224,66,80,213,128,203,160,87,3,174,0,253,26,112,13,68,213,128,91,32,89,13,120,24,122,53,224,49,200,227,188,64,147,36,61,47,240,183,58,175,1,75,145,193,107,192,56,146,94,13,216,159,84,253,188,64,163,48,191,170,138,163,73,113,128,62,25,6,223,224,245,1,248,91,0,175,15,192,235,3,210,192,35,147,179,25,63,184,28,93,13,243,64,81,117,46,174,47,31,153,44,215,45,109,173,135,49,195,134,17,247,12,124,237,251,95,71,135,207,218,123,71,138,169,215,48,250,18,189,226,226,43,163,42,200,251,196,25,61,8,111,94,80,107,164,175,115,17,172,150,233,144,36,43,76,106,80,100,159,228,35,209,132,54,60,142,42,182,211,149,96,52,121,203,233,90,188,121,65,173,145,190,206,69,176,90,166,3,175,1,217,106,80,100,159,228,35,209,132,54,60,142,42,182,252,102,32,247,231,62,175,29,173,199,239,251,64,65,103,225,65,76,169,15,135,158,8,4,34,63,60,60,36,245,12,129,64,36,199,35,49,246,239,197,106,232,39,4,199,211,93,21,228,125,226,140,118,251,133,251,198,29,29,87,130,254,40,53,139,216,146,36,18,77,90,61,168,39,100,177,72,150,23,230,188,32,147,150,182,175,68,30,200,90,162,174,229,226,158,78,158,186,109,170,61,248,184,142,10,140,38,111,9,247,11,247,141,59,58,174,132,44,88,196,150,36,145,96,210,106,115,118,58,91,188,53,32,93,249,126,254,243,39,167,25,213,120,112,116,200,82,98,148,172,248,122,136,123,58,121,234,182,169,246,224,99,149,96,52,121,75,184,95,184,111,220,209,199,106,233,104,150,69,108,73,18,9,38,173,30,20,19,38,139,45,247,214,128,52,229,7,249,195,250,152,207,144,120,62,201,82,98,148,172,248,122,172,222,144,231,169,203,162,218,131,143,81,130,209,228,45,225,126,225,190,113,71,31,163,165,163,89,22,177,37,73,36,152,180,218,156,157,206,22,111,13,72,87,190,159,255,91,147,211,140,106,60,56,58,100,41,49,74,86,124,61,196,61,157,60,117,219,84,123,176,250,126,129,219,172,222,95,209,125,131,183,91,206,253,2,119,88,22,220,105,221,101,5,239,23,184,219,186,199,234,221,47,112,175,53,6,238,179,248,253,2,247,219,203,15,244,89,227,223,55,248,160,245,144,53,22,30,182,30,177,30,181,30,179,30,183,194,247,11,60,97,61,105,173,3,79,89,113,238,23,24,91,143,115,191,192,211,150,123,191,192,51,182,182,207,90,251,192,115,150,123,191,192,243,150,250,190,193,23,172,23,173,224,253,2,83,200,137,144,236,190,193,151,108,153,47,219,159,87,44,255,125,131,175,90,175,89,175,91,111,88,162,251,5,222,180,130,247,13,190,101,189,109,185,247,11,188,99,197,185,95,224,93,171,119,191,192,123,214,53,240,190,21,188,95,96,162,117,35,124,96,185,247,13,126,104,221,10,31,89,189,251,5,62,182,62,177,130,247,11,124,106,137,238,27,236,88,206,253,2,93,235,105,152,100,133,239,23,152,108,69,221,47,48,106,185,247,11,76,177,6,187,111,112,170,229,191,95,224,122,34,186,95,96,154,21,188,111,112,186,21,125,191,192,12,107,214,253,2,150,235,205,240,125,131,208,32,141,94,75,239,126,129,122,99,75,98,53,26,13,241,253,2,205,6,191,95,96,164,225,191,95,160,213,240,223,55,184,196,36,241,253,2,237,198,120,50,91,99,246,198,28,141,57,27,199,145,185,26,115,55,230,105,140,105,224,179,197,171,140,39,241,220,32,194,131,163,58,42,200,251,196,25,237,246,11,247,141,59,58,174,132,44,88,196,150,36,145,96,210,234,65,49,97,178,216,242,100,121,97,206,11,97,125,204,103,72,60,159,100,41,49,74,86,124,61,86,111,200,243,212,101,81,237,193,71,43,193,104,242,150,112,191,112,223,184,163,143,214,210,209,44,139,216,146,36,18,76,90,61,40,38,76,22,91,238,173,1,105,202,15,242,135,245,49,159,33,241,124,146,165,196,40,89,241,245,88,189,33,207,83,151,69,181,7,143,87,130,209,228,45,227,181,120,243,130,90,35,125,157,139,96,245,83,35,50,221,92,100,235,233,34,248,36,123,29,162,36,154,208,134,199,81,197,150,223,175,144,53,59,69,251,93,148,84,163,167,135,244,119,117,209,60,95,4,125,138,151,141,25,94,91,58,73,5,121,159,56,163,7,225,205,10,65,13,212,26,233,235,156,182,213,58,17,77,146,21,38,181,204,63,19,242,208,33,74,162,9,109,56,135,138,237,37,37,236,115,53,137,91,94,210,226,205,10,65,13,212,26,233,235,156,182,213,113,248,101,125,120,13,200,214,243,249,103,66,30,58,68,73,52,161,13,231,80,177,61,169,132,125,46,41,113,203,147,90,188,89,33,168,129,90,35,125,157,211,182,58,14,191,172,143,231,236,97,166,158,207,63,19,242,208,33,74,162,9,109,56,135,138,237,97,37,24,77,222,18,7,171,117,116,70,155,64,80,127,181,70,122,22,155,97,208,231,151,217,201,107,64,182,158,207,63,19,242,208,33,202,203,38,34,192,57,84,108,47,42,193,104,242,150,23,181,120,179,66,80,3,181,70,250,58,167,109,117,28,254,103,70,100,99,93,100,235,249,252,51,33,15,29,162,36,154,208,134,115,168,216,158,87,130,209,228,45,207,107,241,102,133,160,6,106,141,244,117,78,219,234,56,252,207,142,200,198,186,200,214,243,249,103,66,30,58,68,73,52,161,13,231,80,177,61,161,4,163,201,91,158,208,226,205,10,65,13,212,26,233,235,156,182,213,113,248,101,125,120,13,200,214,243,249,103,66,30,58,68,73,52,161,13,231,80,177,29,217,81,129,209,228,45,225,126,225,190,113,71,199,149,144,5,139,216,146,36,18,76,90,61,40,214,110,136,45,247,158,51,78,83,126,144,255,226,201,105,70,53,30,28,29,178,148,24,37,43,190,30,226,158,78,158,186,109,170,61,248,8,37,24,77,222,18,238,23,238,27,119,244,17,90,58,154,101,17,91,146,68,130,73,171,7,197,218,13,177,229,222,26,144,166,252,32,255,197,147,211,140,106,60,56,58,100,41,49,74,86,124,61,196,61,157,60,117,219,84,123,240,124,147,85,96,52,121,75,184,95,184,111,220,209,113,37,232,143,82,179,136,45,73,34,209,164,213,131,122,66,22,11,111,13,72,87,71,63,191,76,90,218,190,18,121,32,107,137,186,150,139,123,58,121,234,182,169,246,224,195,59,42,48,154,188,37,220,47,220,55,238,232,184,18,178,96,17,91,146,68,130,73,171,7,197,98,53,177,229,222,26,144,166,252,32,191,76,90,150,190,114,61,144,181,68,93,203,197,61,157,60,117,219,84,123,240,97,74,48,154,188,229,48,45,222,188,160,214,72,95,231,34,88,253,252,136,76,55,23,217,122,186,8,62,201,94,135,40,137,38,180,225,113,84,177,221,215,85,129,209,228,45,225,126,225,190,113,71,199,149,160,63,74,205,34,182,36,137,68,147,86,15,234,9,89,44,188,243,128,116,117,244,243,203,164,165,237,43,145,7,178,150,168,107,185,184,167,147,167,110,155,106,15,126,86,9,70,147,183,132,251,133,251,198,29,253,172,150,142,73,70,169,89,196,150,36,145,104,210,234,65,61,33,139,133,183,6,164,171,163,159,95,38,45,109,95,137,60,144,181,68,93,203,197,61,157,60,117,219,84,123,240,161,29,21,24,77,222,18,238,23,238,27,119,116,92,9,89,176,136,45,73,34,193,164,213,131,98,189,134,216,114,111,13,72,83,126,144,255,236,201,105,70,53,30,28,29,178,148,24,37,43,190,30,226,158,78,158,186,109,170,61,248,16,37,24,77,222,114,136,22,111,94,80,107,164,175,115,17,172,126,97,68,166,155,139,108,61,93,4,159,100,175,67,148,68,19,218,240,56,170,216,14,86,130,209,228,45,225,126,225,190,113,71,31,172,165,163,89,22,177,37,73,36,152,180,122,80,188,56,34,182,220,59,15,72,83,126,144,95,38,45,75,95,185,30,200,90,162,174,229,226,158,78,158,186,109,170,61,248,0,37,24,77,222,18,238,23,238,27,119,244,1,90,58,154,101,17,91,146,68,130,73,171,205,217,233,108,241,214,128,116,229,251,249,47,156,156,102,84,227,193,209,33,75,137,81,178,226,235,33,238,233,228,169,219,166,218,131,247,87,130,209,228,45,225,126,225,190,113,71,239,175,165,163,89,22,177,37,73,36,152,180,122,80,28,51,89,108,185,183,6,164,41,63,200,31,214,199,124,134,196,243,73,150,18,163,100,197,215,67,220,211,201,83,183,77,181,7,31,168,4,163,201,91,194,253,194,125,227,142,62,80,75,71,179,44,98,75,146,72,48,105,181,57,59,157,45,222,26,144,174,124,63,255,69,147,211,140,106,60,56,58,100,41,49,74,86,124,61,196,61,157,60,117,219,84,123,240,126,74,48,154,188,101,63,45,222,188,160,214,72,95,231,34,88,253,210,136,76,55,23,217,122,186,8,62,201,94,135,40,137,38,180,225,113,84,177,237,171,4,163,201,91,246,213,226,205,11,106,141,244,117,46,130,213,47,143,200,116,115,145,173,167,139,224,147,236,117,136,146,104,66,27,30,71,21,219,62,74,48,154,188,101,31,45,222,188,160,214,72,95,231,34,88,253,202,136,76,55,23,217,122,186,8,62,201,94,135,40,137,38,180,225,113,84,177,237,173,4,163,201,91,246,214,226,205,11,106,141,244,117,46,130,213,175,142,200,116,115,145,173,167,139,224,147,236,117,136,146,104,66,27,30,71,21,219,94,74,48,154,188,101,47,45,222,188,160,214,72,95,231,34,88,253,218,136,76,55,23,217,122,186,8,62,201,94,135,40,137,38,180,225,113,84,177,61,59,73,5,70,147,183,196,129,222,104,19,8,106,160,214,72,95,231,180,173,142,195,255,250,136,108,236,172,187,5,50,245,124,254,153,144,135,14,81,18,77,104,195,57,84,108,79,43,193,104,242,150,167,181,120,179,66,80,3,181,70,250,58,167,109,117,28,254,55,70,100,99,103,189,69,45,83,207,231,159,9,121,232,16,37,209,132,54,156,67,197,246,110,237,189,218,251,181,137,181,15,106,31,214,62,170,125,92,251,164,198,232,167,181,78,173,91,115,243,225,54,171,247,119,82,109,114,109,212,222,54,165,54,181,54,173,54,189,54,163,198,106,183,91,53,0,32,112,135,101,193,157,214,93,118,191,17,104,65,27,102,131,217,97,14,152,19,238,182,238,177,230,130,185,225,94,107,12,220,103,183,206,7,243,195,2,176,32,220,111,47,63,208,103,93,4,22,133,207,192,103,97,49,88,28,150,128,37,97,41,248,28,48,250,121,88,26,150,129,101,97,57,88,222,94,91,1,86,132,149,224,65,235,33,107,44,60,108,61,98,61,106,61,102,61,110,173,2,171,130,163,223,106,176,58,172,1,107,194,19,214,147,214,58,240,148,181,174,189,125,28,172,7,235,195,6,176,33,108,4,27,219,235,155,192,166,176,25,108,222,31,177,5,108,9,99,235,91,247,151,183,177,255,110,11,219,193,246,246,247,14,246,103,71,216,201,254,187,51,236,2,187,194,110,240,180,245,5,216,3,246,132,189,224,25,91,219,103,173,125,224,57,251,123,95,216,15,246,135,231,173,3,237,158,7,217,159,131,237,207,33,112,168,253,247,48,56,28,142,128,35,97,188,189,124,148,253,121,193,122,209,58,182,47,231,56,251,239,241,112,2,76,128,41,228,68,56,9,78,134,83,224,84,248,34,124,9,190,12,167,193,87,224,116,56,3,190,10,95,131,51,225,235,118,79,10,103,193,55,224,108,248,38,124,11,206,129,151,108,153,47,219,159,87,172,239,218,109,231,193,249,112,1,92,8,23,193,171,214,107,214,235,214,27,214,15,224,135,240,35,184,20,126,12,63,153,233,145,159,194,155,214,101,246,242,229,112,133,253,247,231,240,11,248,37,188,101,189,109,253,10,126,13,87,194,111,224,29,155,237,183,240,59,248,61,252,31,252,1,254,8,127,130,63,195,95,224,175,192,107,192,85,112,53,188,107,253,13,254,14,239,89,215,192,251,214,63,225,58,184,30,254,5,255,134,255,192,127,225,127,48,209,186,17,62,176,110,130,155,225,22,123,212,135,214,173,240,145,205,121,59,124,108,125,98,221,9,119,193,221,246,214,123,224,222,62,227,167,214,253,240,64,127,233,65,120,8,30,134,71,224,81,120,12,58,214,19,240,36,60,5,93,235,105,152,100,61,3,207,194,115,240,60,188,0,47,218,61,95,130,151,97,178,245,42,188,6,175,195,27,240,166,189,229,45,120,27,222,129,119,225,61,120,31,38,218,235,163,214,7,240,161,253,253,17,76,177,62,129,79,161,99,47,119,97,18,76,134,81,152,2,83,97,26,76,135,25,192,160,70,128,16,82,39,140,90,164,65,154,100,132,180,72,155,204,70,102,39,83,173,57,237,173,115,145,185,201,60,100,12,153,151,92,79,230,35,243,147,5,200,130,100,213,218,66,100,97,178,8,89,148,124,134,76,179,62,75,22,35,139,147,37,200,146,100,41,242,57,242,121,50,221,90,198,30,183,44,89,142,44,79,86,32,43,146,149,200,88,178,50,89,133,172,74,86,35,171,147,53,200,12,107,45,187,125,109,178,14,97,214,204,55,25,214,214,37,227,200,122,100,125,178,1,217,144,108,100,183,110,76,160,65,26,189,182,205,200,230,164,222,216,146,88,141,70,99,107,178,141,221,182,45,217,142,108,111,127,239,64,118,36,59,217,223,205,198,206,100,23,178,43,217,141,236,78,70,236,49,95,32,123,144,61,201,94,228,114,107,31,210,178,215,247,35,251,147,3,200,129,228,32,114,48,233,223,33,96,255,29,87,59,148,28,102,127,175,87,59,156,28,65,142,36,237,198,120,50,91,99,246,198,28,141,57,27,199,145,185,26,115,55,230,105,140,105,156,68,78,38,167,144,83,201,23,9,214,0,172,1,88,3,188,53,128,81,179,53,128,209,52,106,192,222,68,94,3,24,117,106,0,163,241,106,192,158,29,21,24,77,222,226,199,6,141,61,59,27,54,6,29,29,7,102,184,212,44,189,30,58,178,122,113,49,103,181,57,59,157,45,222,235,4,211,149,239,231,151,73,203,210,87,174,7,242,140,194,32,150,139,123,58,121,234,182,169,246,224,61,148,96,52,121,75,184,95,184,111,220,209,123,104,233,104,150,69,108,73,18,9,38,173,30,20,19,38,139,45,247,214,128,52,229,7,249,195,250,152,207,144,120,62,201,82,98,148,172,248,122,172,222,144,231,169,203,162,218,131,119,87,130,209,228,45,187,107,241,230,5,181,70,250,58,23,193,234,119,71,100,186,185,200,214,211,69,240,73,246,58,68,73,52,161,13,143,163,138,13,143,7,224,241,0,60,30,80,237,227,1,88,3,176,6,96,13,168,118,13,216,173,163,2,163,201,91,226,64,111,116,26,80,107,164,175,115,17,172,158,56,34,211,205,69,182,158,46,130,79,178,215,33,74,162,9,109,120,28,85,108,247,118,85,96,52,121,75,184,95,184,111,220,209,113,37,232,143,82,179,136,45,73,34,209,164,213,131,122,66,22,11,239,49,193,116,117,244,243,203,164,165,237,43,145,7,178,150,168,107,185,184,167,147,167,110,155,106,15,222,181,163,2,163,201,91,194,253,194,125,227,142,142,43,33,11,22,177,37,73,36,152,180,122,80,172,221,16,91,238,173,1,105,202,15,242,95,60,57,205,168,198,131,163,67,150,18,163,100,197,215,67,220,211,201,83,183,77,181,7,171,255,49,154,188,37,220,47,110,223,193,254,165,203,110,206,146,94,92,58,185,255,251,96,68,236,63,111,13,72,215,139,241,248,179,247,85,150,18,163,100,197,215,67,220,211,201,83,183,77,181,7,239,172,132,125,140,44,113,203,206,90,188,121,65,173,145,190,206,69,176,250,195,17,153,110,46,178,245,116,17,124,146,189,14,81,18,77,104,195,227,168,98,219,127,82,16,140,186,223,51,159,46,57,201,249,235,109,19,35,126,171,159,53,138,37,138,211,213,79,165,7,95,247,246,119,109,243,106,36,151,40,242,128,59,38,60,206,207,236,93,83,35,220,83,165,155,216,35,113,172,17,141,150,197,69,165,175,40,110,94,109,226,178,138,237,143,19,139,164,153,153,100,107,146,30,225,61,72,214,170,242,165,60,147,197,62,247,238,87,241,61,62,191,18,140,38,111,9,247,11,247,141,59,122,126,45,29,205,178,136,45,73,34,193,164,213,230,236,116,182,120,127,11,164,43,223,207,47,147,150,165,175,92,15,228,25,133,65,44,23,247,116,242,212,109,83,237,193,59,117,84,96,52,121,75,28,232,141,78,3,106,141,244,117,46,130,213,31,143,200,116,115,145,173,167,139,224,147,236,117,136,146,104,66,27,30,71,21,27,94,35,132,215,8,225,53,66,213,190,70,104,135,142,10,182,62,137,91,194,253,194,125,227,142,142,43,33,11,22,177,37,73,36,152,180,218,156,157,206,22,239,111,129,116,229,251,249,207,155,156,102,84,227,193,209,33,75,137,81,178,226,235,33,238,233,228,169,219,166,218,131,183,87,130,209,228,45,225,126,225,190,113,71,111,175,165,163,89,22,177,37,73,36,152,180,122,80,124,58,34,182,220,91,3,210,148,31,228,151,73,203,210,87,174,7,178,150,168,107,185,184,167,147,167,110,155,106,15,126,124,146,10,140,62,158,184,37,14,244,70,155,64,80,3,181,70,250,58,167,109,117,28,126,89,31,94,1,178,245,124,254,153,144,135,14,81,18,77,104,195,57,84,108,219,118,84,176,127,163,36,110,9,247,11,247,141,59,58,174,132,44,88,196,150,36,145,96,210,106,115,118,58,91,188,243,128,116,229,251,249,47,152,156,102,84,227,193,209,33,75,137,81,178,226,235,33,238,233,228,169,219,166,218,131,183,81,194,62,114,150,184,101,27,45,222,188,160,214,72,95,231,34,88,221,25,145,233,230,34,91,79,23,193,39,217,235,16,37,209,132,54,60,142,42,182,199,38,169,192,104,242,150,56,208,27,109,2,65,13,212,26,233,235,156,182,213,113,248,101,125,120,13,200,214,243,249,103,66,30,58,68,73,52,161,13,231,80,177,121,231,127,69,196,91,93,189,246,228,35,163,25,189,173,238,178,243,45,106,17,183,14,162,233,160,227,117,228,234,199,77,230,147,98,100,81,218,26,233,243,39,101,112,50,37,233,168,173,59,42,200,251,196,25,237,246,11,247,141,59,58,174,132,44,88,196,150,36,145,96,210,234,65,177,105,67,108,121,178,188,48,231,133,241,147,211,140,106,60,56,58,100,41,49,74,86,124,61,196,61,123,91,55,107,108,222,136,183,7,111,165,4,163,201,91,194,253,194,125,227,142,222,74,75,71,179,44,98,75,146,72,48,105,245,160,216,178,33,182,220,91,3,210,148,31,228,31,63,57,205,168,198,131,163,67,150,18,163,100,197,215,67,220,179,183,181,87,3,226,237,193,91,42,193,104,242,150,45,181,120,243,130,90,35,125,157,139,96,117,119,68,166,155,139,108,61,93,4,159,100,175,67,148,68,19,218,240,56,170,216,182,80,130,209,228,45,91,104,241,230,5,181,70,250,58,23,193,234,73,35,50,221,92,100,235,233,34,248,36,123,29,162,36,154,208,134,199,81,197,118,127,87,5,70,147,183,132,251,133,251,198,29,29,87,130,254,40,53,139,216,146,36,18,77,90,61,168,39,100,177,240,254,22,72,87,71,63,191,76,90,218,190,18,121,32,107,137,186,150,139,123,58,121,234,182,169,246,224,162,159,23,64,152,71,99,70,58,188,147,71,208,183,195,136,71,39,169,32,239,19,103,244,32,188,89,33,168,129,90,35,125,157,211,182,90,39,162,73,178,194,164,150,249,103,66,30,58,68,73,52,161,13,231,80,177,109,214,81,129,209,228,45,225,126,225,190,113,71,199,149,144,5,139,216,146,36,18,76,90,61,40,78,157,44,182,220,251,127,67,154,242,131,252,97,125,204,103,72,60,159,100,41,49,74,86,124,61,196,61,157,60,117,219,84,123,240,83,93,21,24,77,222,18,238,23,238,27,119,116,92,9,250,163,212,44,98,75,146,72,52,105,245,160,158,144,197,194,91,3,210,213,209,207,47,147,150,182,175,68,30,200,90,162,174,229,226,158,78,158,186,109,170,61,120,147,142,10,140,38,111,137,3,189,209,105,64,173,145,190,206,69,176,122,202,136,76,55,23,217,122,186,8,62,201,94,135,40,137,38,180,225,113,84,177,109,172,4,163,201,91,54,214,226,205,11,106,141,244,117,46,130,213,83,71,100,186,185,200,214,211,69,240,73,246,58,68,73,52,161,13,143,163,138,109,35,37,24,77,222,178,145,22,111,94,80,107,164,175,115,17,172,158,54,34,211,205,69,182,158,46,130,79,178,215,33,74,162,9,109,120,28,85,108,27,42,193,104,242,150,13,181,120,243,130,90,35,125,157,139,96,245,244,17,153,110,46,178,245,116,17,124,146,189,14,81,18,77,104,195,227,168,98,91,95,9,70,147,183,172,175,197,155,23,212,26,233,235,92,4,171,103,140,200,116,115,145,173,167,139,224,147,236,117,136,146,104,66,27,30,71,21,219,122,74,48,154,188,101,61,45,222,188,160,214,72,95,231,34,88,205,70,100,186,185,200,214,211,133,240,9,45,146,68,19,218,240,56,170,216,198,41,193,104,242,150,113,90,188,121,65,173,145,190,206,69,176,186,214,146,233,230,34,91,79,23,193,39,217,235,16,37,209,132,54,60,142,42,182,117,149,96,52,121,203,186,90,188,121,65,173,145,190,206,69,176,26,90,50,221,102,61,17,63,83,79,23,193,39,217,235,16,37,209,132,54,60,142,42,182,238,36,21,24,77,222,18,238,23,238,27,119,116,92,9,201,49,90,79,202,34,182,36,137,158,38,173,22,97,74,125,16,111,57,91,188,215,8,165,169,99,144,95,38,45,109,95,137,60,144,181,68,93,203,197,61,157,60,117,219,84,123,48,222,49,129,200,27,245,86,254,58,92,79,48,14,8,68,94,184,116,50,234,128,64,84,25,63,42,192,254,87,4,29,16,136,170,130,22,96,255,43,130,14,8,68,85,241,245,2,236,127,69,208,1,129,168,42,126,88,128,253,175,8,58,32,16,85,197,233,5,216,255,138,160,3,2,81,85,124,165,0,251,95,17,116,64,32,170,138,31,20,96,255,43,130,14,8,68,86,104,20,224,154,28,47,154,120,141,80,174,104,181,218,173,217,90,179,183,230,104,205,217,154,171,53,119,107,158,214,152,214,188,173,249,90,243,183,22,104,45,216,90,168,181,176,29,159,69,90,139,182,62,211,250,108,107,177,214,226,173,37,90,75,182,150,106,125,174,245,249,214,210,118,203,50,173,101,91,203,181,150,111,173,208,90,177,181,82,107,108,107,229,214,42,173,85,91,171,181,86,111,173,209,90,179,181,86,107,237,214,58,173,117,237,126,227,236,207,122,173,245,91,27,180,54,108,109,212,218,184,181,73,107,83,123,203,102,173,205,91,91,180,182,108,109,213,218,186,181,77,107,219,214,118,173,237,91,59,180,118,108,237,212,218,185,181,75,107,215,214,110,173,221,91,111,119,191,208,218,163,181,103,107,175,214,222,173,125,90,251,182,246,107,237,223,58,160,117,96,235,160,214,193,173,67,108,142,183,187,135,182,14,179,191,15,111,29,209,58,178,53,190,117,84,235,232,214,49,173,99,91,199,181,142,111,157,208,154,208,58,177,117,82,235,228,214,41,173,83,91,95,108,125,169,245,229,214,105,173,175,180,78,111,157,209,250,170,205,204,232,215,90,103,182,190,222,162,173,179,90,223,104,157,109,179,124,179,245,45,123,251,57,173,115,91,223,110,125,167,245,221,214,121,173,243,91,23,180,46,108,93,212,186,184,117,73,235,123,125,121,140,126,191,245,131,214,15,91,63,178,123,94,218,250,113,235,39,246,247,79,91,63,179,255,94,214,186,188,117,69,235,231,173,95,216,203,191,108,253,170,245,235,214,149,173,223,216,203,191,109,253,206,254,251,251,214,255,245,115,253,15,173,63,182,254,212,250,115,235,47,173,191,182,174,106,93,221,250,91,235,239,173,127,180,174,105,93,219,250,103,235,186,214,245,173,127,181,254,221,250,79,235,191,173,255,181,110,104,221,216,186,169,117,179,61,246,22,251,115,107,235,182,214,237,173,59,90,119,182,238,106,221,221,186,167,117,111,235,190,214,253,173,7,90,15,182,30,106,61,220,122,164,245,104,235,177,214,227,182,132,39,90,79,182,158,106,61,221,122,166,245,108,235,57,123,220,243,173,23,90,47,182,94,106,189,220,122,165,245,106,235,181,214,235,118,159,55,90,111,182,222,106,189,221,122,167,245,110,235,189,214,251,246,150,137,173,15,124,123,226,135,173,143,90,31,183,62,105,125,218,234,180,186,173,73,173,201,173,209,214,148,214,212,214,180,214,244,214,140,22,107,213,218,208,38,237,122,219,106,55,218,205,246,72,187,213,102,180,221,158,173,61,123,123,142,246,156,237,185,218,111,119,231,110,207,99,255,29,211,158,183,61,95,123,254,246,2,246,242,130,237,133,218,11,183,23,105,247,248,23,109,127,166,253,217,246,98,237,197,219,75,216,235,75,182,151,106,127,174,253,249,246,210,237,101,218,203,182,151,107,47,223,94,161,189,162,189,125,165,246,216,246,202,237,85,218,171,182,87,107,175,222,94,163,189,102,123,173,246,218,237,117,218,235,182,199,181,215,179,219,215,111,111,208,222,176,189,81,123,227,246,38,237,77,219,155,181,55,111,111,209,222,178,189,85,123,235,246,54,237,109,219,219,181,183,111,239,208,222,177,189,147,45,123,231,246,46,237,93,219,187,181,119,111,127,161,189,71,123,207,246,94,237,189,237,173,251,180,247,109,239,215,222,191,125,128,205,117,96,251,32,251,239,193,237,67,218,135,182,15,107,31,222,62,162,125,100,123,124,251,168,246,209,237,99,218,199,182,143,107,31,223,62,161,61,161,125,98,251,164,246,201,237,83,218,167,182,191,216,254,82,251,203,237,211,218,95,105,159,222,62,163,253,213,246,215,218,103,182,191,222,166,237,179,218,223,104,159,221,254,102,251,91,54,255,57,237,115,219,223,110,127,167,253,221,246,121,237,243,219,23,180,47,108,95,212,190,184,125,73,251,123,237,239,219,178,126,208,254,97,251,71,237,75,219,63,110,255,164,253,211,246,207,218,151,181,47,111,95,209,254,121,251,23,118,219,47,219,191,106,255,218,102,184,178,253,155,246,111,219,191,107,255,190,253,127,237,63,180,255,216,254,83,251,207,237,191,180,255,218,190,170,125,117,251,111,237,191,219,61,255,209,190,166,125,109,251,159,237,235,218,215,219,253,255,101,127,222,158,245,100,200,127,183,255,211,254,175,221,231,127,237,27,218,55,182,111,106,223,220,190,165,125,107,251,182,246,237,237,59,218,119,182,239,178,91,238,110,223,211,222,115,178,10,140,38,111,9,247,11,247,141,59,58,174,4,253,81,106,22,177,37,73,36,154,180,122,80,79,200,98,225,173,1,233,234,232,231,151,73,75,219,87,34,15,100,45,81,215,114,113,79,39,79,221,54,213,30,252,253,73,42,216,255,239,37,110,9,247,11,247,141,59,58,174,4,253,81,106,22,93,157,123,113,49,103,245,160,26,202,98,225,173,1,89,106,41,147,150,182,22,34,15,100,45,81,215,114,113,207,135,218,222,92,83,237,193,234,127,140,38,111,9,247,11,247,141,59,58,174,4,253,81,106,22,177,37,73,36,154,180,122,80,79,200,98,225,173,1,233,234,232,231,151,73,75,219,87,34,15,100,45,81,215,114,113,79,39,79,221,54,213,30,252,186,18,140,38,111,9,247,11,247,141,59,250,117,45,29,147,140,82,179,136,45,73,34,209,164,213,131,122,66,22,11,111,13,72,87,71,63,191,76,90,218,190,18,121,32,107,137,186,150,139,123,58,121,234,182,169,246,96,60,74,142,200,30,143,180,209,7,197,193,71,147,84,144,247,137,51,218,237,23,238,27,119,116,92,9,250,163,212,44,98,75,146,72,52,105,245,160,158,144,197,34,89,94,152,243,130,76,90,218,190,18,121,32,107,137,186,150,139,123,58,121,234,182,169,246,224,15,149,176,207,19,37,110,9,247,11,247,141,59,250,67,45,29,147,140,82,179,136,45,73,34,209,164,213,131,122,66,22,11,223,185,193,84,117,244,243,203,164,165,237,43,145,7,178,150,168,107,185,184,167,147,167,110,155,106,15,126,183,246,94,237,253,218,196,218,7,181,15,107,31,213,62,174,125,82,99,244,211,90,167,214,173,185,217,112,155,213,63,186,80,155,92,27,181,183,77,169,77,173,77,171,77,175,205,168,177,218,237,86,13,0,8,220,97,89,112,167,117,151,221,111,4,90,208,134,217,96,118,152,3,230,132,187,173,123,172,185,96,110,184,215,26,3,247,217,173,243,193,252,176,0,44,8,247,219,203,15,244,89,23,129,69,225,51,240,89,88,12,22,135,37,96,73,88,10,62,7,140,126,30,150,134,101,96,89,88,14,150,183,215,86,128,21,97,37,120,208,122,200,26,11,15,91,143,88,143,90,143,89,143,91,171,192,170,224,232,183,26,172,14,107,192,154,240,132,245,164,181,14,60,101,173,107,111,31,7,235,193,250,176,1,108,8,27,193,198,246,250,38,176,41,108,6,155,247,71,108,1,91,194,216,250,214,253,229,109,236,191,219,194,118,176,189,253,189,131,253,217,17,118,178,255,238,12,187,192,174,176,27,60,109,125,1,246,128,61,97,47,120,198,214,246,89,107,31,120,206,254,222,23,246,131,253,225,121,235,64,187,231,65,246,231,96,251,115,8,28,106,255,61,12,14,135,35,224,72,24,111,47,31,101,127,94,176,94,180,142,237,203,57,206,254,123,60,156,0,19,96,10,57,17,78,130,147,225,20,56,21,190,8,95,130,47,195,105,240,21,56,29,206,128,175,194,215,224,76,248,186,221,147,194,89,240,13,56,27,190,9,223,130,115,224,37,91,230,203,246,231,21,235,187,118,219,121,112,62,92,0,23,194,69,240,170,245,154,245,186,245,134,245,3,248,33,252,8,46,133,31,195,79,102,122,228,167,240,166,117,153,189,124,57,92,97,255,253,57,252,2,126,9,111,89,111,91,191,130,95,195,149,240,27,120,199,102,251,45,252,14,126,15,255,7,127,128,63,194,159,224,207,240,23,248,43,240,10,112,21,92,13,239,90,127,131,191,195,123,214,53,240,190,245,79,184,14,174,135,127,193,191,225,63,240,95,248,31,76,180,110,132,15,172,155,224,102,184,197,30,245,161,117,43,124,100,115,222,14,31,91,159,88,119,194,93,112,183,189,245,30,184,183,207,248,169,117,63,60,208,95,122,16,30,130,135,225,17,120,20,30,131,142,245,4,60,9,79,65,215,122,26,38,89,207,192,179,240,28,60,15,47,192,139,118,207,151,224,101,152,108,189,10,175,193,235,240,6,188,105,111,121,11,222,134,119,224,93,120,15,222,135,137,246,250,168,245,1,124,104,127,127,4,83,172,79,224,83,232,216,203,93,152,4,147,97,20,166,192,84,152,6,211,97,6,48,168,17,32,132,212,9,163,22,105,144,38,25,33,45,210,38,179,145,217,201,84,107,78,123,235,92,100,110,50,15,25,67,230,37,215,147,249,200,252,100,1,178,160,189,117,33,178,48,89,132,44,74,62,67,166,89,159,37,139,145,197,201,18,100,73,178,20,249,28,249,60,153,110,45,99,247,88,150,44,71,150,39,43,144,21,201,74,100,44,89,153,172,66,86,37,171,145,213,201,26,100,134,181,150,221,190,54,89,135,48,203,245,230,186,100,28,89,143,172,79,54,32,27,146,141,236,214,141,9,52,72,163,215,178,25,217,156,212,27,91,18,171,209,104,108,77,182,177,219,182,37,219,145,237,237,239,29,200,142,100,39,251,187,217,216,153,236,66,118,37,187,145,221,201,136,61,230,11,100,15,178,39,217,139,236,77,246,33,45,123,125,63,178,63,57,128,28,72,14,34,7,247,175,114,58,164,255,247,80,114,88,255,251,112,114,4,57,146,180,27,227,201,108,141,217,27,115,52,230,108,28,71,230,106,204,221,152,167,49,166,113,18,57,153,156,66,78,37,95,36,147,39,169,192,104,242,150,112,191,112,223,184,163,227,74,208,31,165,102,17,91,146,68,162,73,171,7,245,132,44,22,222,121,64,186,58,250,249,101,210,210,246,149,200,3,89,75,212,181,92,220,211,201,83,183,77,181,7,79,83,130,209,228,45,225,126,225,190,113,71,79,211,210,49,201,40,53,139,216,146,36,18,77,90,61,168,39,100,177,240,214,128,116,117,244,243,203,164,165,237,43,145,7,178,150,168,107,185,184,167,147,167,110,155,106,15,190,68,9,70,147,183,132,251,133,251,198,29,125,137,150,142,73,70,169,89,122,61,30,107,235,232,105,210,234,65,61,33,139,133,183,6,100,169,165,76,90,218,90,136,60,144,181,68,93,203,197,61,157,61,206,109,83,237,193,21,62,39,50,89,123,148,143,225,137,118,228,136,201,67,101,101,26,114,241,206,188,108,188,94,58,63,127,208,141,110,127,170,109,154,57,90,162,183,213,93,118,190,69,45,226,214,65,52,29,116,188,142,92,253,184,201,124,82,140,44,74,91,35,125,254,164,12,78,166,228,233,233,52,240,126,87,175,61,249,200,104,70,111,171,187,236,124,139,90,196,173,131,104,58,232,248,247,187,121,198,77,230,147,98,100,81,218,26,233,243,39,101,112,50,229,253,146,213,0,132,121,60,93,176,171,244,158,41,128,62,85,126,126,192,212,73,42,200,251,196,25,237,246,11,247,141,59,58,174,4,253,81,106,22,177,37,73,36,154,180,122,80,79,200,98,145,44,47,204,121,65,38,45,109,95,137,60,144,181,68,93,203,197,61,157,60,117,219,84,123,240,115,93,21,24,77,222,18,238,23,238,27,119,116,92,9,250,163,212,44,98,75,146,72,52,105,245,160,158,144,197,194,91,3,210,213,209,207,47,147,150,182,175,68,30,200,90,162,174,229,226,158,78,158,186,109,170,61,248,25,37,236,185,90,226,150,112,191,112,223,184,163,159,209,210,49,201,40,53,139,216,146,36,18,77,90,61,168,39,100,177,240,205,207,83,213,209,207,47,147,150,182,175,68,30,200,90,162,174,229,226,158,78,158,186,109,170,61,120,241,73,42,48,154,188,37,220,47,220,55,238,232,184,18,146,99,180,158,148,69,108,73,18,61,77,90,45,194,148,250,32,222,114,182,120,107,64,154,58,6,249,101,210,210,246,149,200,3,89,75,212,181,92,220,211,201,83,183,77,181,7,159,56,121,112,48,26,191,95,184,111,220,209,38,53,137,30,165,102,17,91,146,68,162,73,171,77,251,207,91,3,210,149,22,143,63,123,95,101,41,49,74,86,124,61,196,61,157,60,117,219,228,108,78,203,215,52,192,104,252,126,225,190,113,71,155,212,36,122,148,154,69,108,73,18,137,38,173,30,20,207,183,197,158,240,214,128,52,229,199,229,207,222,87,89,74,140,146,21,95,15,113,79,39,79,221,54,57,155,211,242,37,13,48,26,191,95,184,111,220,209,38,53,137,30,165,102,17,91,146,68,162,73,171,77,251,207,91,3,210,149,22,143,63,123,95,101,41,49,74,86,124,61,196,61,157,60,117,219,228,108,78,203,23,53,192,104,252,126,225,190,113,71,155,212,36,122,148,154,69,108,73,18,137,38,173,54,237,63,111,13,72,87,90,60,254,236,125,149,165,196,40,89,241,245,16,247,116,242,212,109,147,179,57,45,248,252,0,124,126,0,62,63,160,218,207,15,56,119,242,224,96,52,126,191,112,223,184,163,77,106,18,61,74,205,34,182,36,137,68,147,86,155,243,150,179,197,59,15,72,87,126,60,254,236,125,149,165,196,40,89,241,245,16,247,116,242,212,109,147,179,57,45,223,214,0,163,241,251,133,251,198,29,109,82,147,232,81,106,22,177,37,73,36,154,180,218,156,183,156,45,222,26,144,174,252,120,252,217,251,42,75,137,81,178,226,235,33,238,233,228,169,219,38,103,115,90,190,163,1,70,227,247,11,247,141,59,218,164,38,209,163,212,44,98,75,146,72,52,105,181,57,111,57,91,188,53,32,93,249,241,248,179,247,85,150,18,163,100,197,215,67,220,211,201,83,183,77,206,22,142,59,34,125,76,169,240,189,41,136,98,226,187,147,7,71,220,209,189,126,225,190,122,178,77,112,5,71,169,89,196,150,36,145,104,210,106,115,222,114,182,152,202,11,83,94,200,222,87,89,74,140,146,21,95,15,113,79,39,79,221,54,57,155,211,50,65,3,140,198,239,23,238,27,119,180,73,77,162,71,169,89,196,150,36,145,104,210,106,211,254,243,214,128,116,165,197,227,207,222,87,89,74,140,146,21,95,143,213,27,19,164,121,234,178,200,217,244,237,197,26,48,33,165,236,159,144,75,238,99,13,168,102,13,56,73,3,140,198,239,23,238,27,119,180,73,77,162,71,169,89,196,150,36,145,104,210,106,211,254,243,214,128,116,165,197,227,207,222,87,89,74,140,146,21,95,15,113,79,39,79,221,54,57,155,211,114,142,6,24,141,223,47,220,55,238,104,147,154,68,143,82,179,136,45,73,34,209,164,213,230,188,229,108,241,214,128,116,229,199,227,207,222,87,89,74,140,146,21,95,15,113,79,39,79,221,54,57,155,211,242,115,37,94,105,203,90,24,253,249,228,56,232,245,11,247,141,59,58,174,4,253,81,106,22,177,37,73,36,154,180,218,156,183,156,45,222,26,144,174,124,63,191,76,90,150,190,114,61,144,103,20,6,177,92,220,211,201,83,183,77,206,22,142,59,2,207,13,34,16,8,4,34,109,188,142,239,94,71,32,42,141,55,10,85,3,142,157,60,56,226,142,238,245,11,247,213,147,109,130,43,56,74,205,34,182,36,137,68,147,86,155,243,150,179,197,84,94,152,242,66,246,190,202,82,98,148,172,248,122,136,123,58,121,234,182,201,217,194,113,71,164,15,60,30,128,40,26,142,159,60,56,226,142,238,245,11,247,213,147,109,130,43,56,74,205,34,182,36,137,68,147,86,155,243,150,179,197,84,94,152,242,66,246,190,202,82,98,148,172,248,122,136,123,58,121,234,182,201,217,156,150,95,43,193,104,242,150,112,191,112,223,184,163,127,173,165,99,146,81,106,22,177,37,73,36,154,180,90,132,183,218,131,120,203,217,226,173,1,105,234,24,228,151,73,75,219,87,34,15,100,45,81,215,114,113,79,39,79,221,54,213,30,252,59,37,24,77,222,18,238,23,238,27,119,244,239,180,116,76,50,74,205,34,182,36,137,68,147,86,139,240,118,123,16,111,57,91,188,53,32,77,29,131,252,50,105,105,251,74,228,129,172,37,234,90,46,238,233,228,169,219,166,218,131,241,215,16,30,15,64,84,27,135,79,30,28,113,71,247,250,133,251,234,201,54,193,21,28,165,102,17,91,146,68,162,73,171,205,121,203,217,98,42,47,146,122,65,38,45,75,95,185,30,200,78,226,187,109,19,249,44,238,233,228,169,219,38,103,115,90,14,211,0,163,241,251,133,251,198,29,109,82,147,232,81,106,22,177,37,73,36,154,180,218,156,183,156,45,222,26,144,174,124,63,191,76,90,150,190,114,61,144,157,196,247,218,38,242,89,220,211,201,83,183,77,206,22,142,59,2,127,11,32,170,135,67,39,15,142,184,163,123,253,194,125,245,100,155,224,10,142,82,179,136,45,73,34,209,164,213,230,188,229,108,49,149,23,73,189,32,147,150,165,175,92,15,100,39,113,98,219,68,62,139,123,58,121,234,182,201,217,156,150,35,52,192,104,252,126,225,190,113,71,155,212,36,122,148,154,69,108,73,18,137,38,173,54,231,45,103,139,183,6,164,43,223,207,47,147,150,165,175,92,15,228,25,133,65,44,23,247,116,242,212,109,147,179,57,45,123,107,128,209,248,253,194,125,227,142,54,169,73,244,40,53,139,216,146,36,18,77,90,61,40,62,104,139,61,225,173,1,105,202,15,242,203,164,101,233,43,215,3,89,75,212,181,92,220,211,201,83,183,77,206,230,180,28,169,1,70,227,247,11,247,141,59,218,164,38,209,163,212,44,98,75,146,72,52,105,181,57,111,57,91,188,53,32,93,249,126,126,153,180,44,125,229,122,32,59,137,31,182,77,228,179,184,167,147,167,110,155,156,205,105,249,137,6,24,141,223,47,220,55,238,104,147,154,68,143,82,179,136,45,73,34,209,164,213,230,188,229,108,241,214,128,116,229,251,249,101,210,178,244,149,235,129,60,163,48,136,229,226,158,78,158,186,109,114,54,167,229,16,13,48,26,191,95,184,111,220,209,38,53,137,30,165,102,17,91,146,68,162,73,171,205,121,203,217,226,173,1,233,202,247,243,203,164,101,233,43,215,3,121,70,97,16,203,197,61,157,60,117,219,228,108,78,75,248,157,163,127,104,58,239,28,253,99,243,79,205,63,55,255,210,252,107,243,170,230,213,77,231,157,163,127,107,122,223,57,202,168,243,206,209,58,88,208,128,38,252,189,233,127,231,232,63,154,215,52,123,239,28,157,7,198,192,188,112,109,211,125,231,232,66,240,207,230,194,192,232,117,77,209,59,71,175,111,122,223,57,250,175,166,243,206,209,127,55,255,211,28,11,255,109,174,12,255,107,222,208,188,177,25,126,231,232,90,176,54,172,3,55,53,215,133,155,155,254,119,142,222,210,116,223,57,122,107,243,182,102,239,157,163,91,129,251,206,209,219,155,206,59,71,239,104,186,239,28,189,179,233,190,115,116,119,112,223,57,186,183,221,118,87,115,31,251,239,221,77,231,157,163,7,192,129,112,79,243,32,184,183,233,190,115,244,190,38,127,231,232,253,205,222,59,71,143,134,99,224,88,120,160,217,123,231,232,131,77,231,157,163,140,62,212,140,126,231,232,195,77,255,59,71,207,133,71,154,223,134,71,155,223,129,239,194,99,77,254,206,209,139,225,18,248,30,124,31,188,239,28,125,220,150,245,68,243,167,240,51,112,223,57,250,100,211,121,231,232,83,205,167,155,238,59,71,123,150,171,223,57,202,104,239,157,163,255,128,107,224,90,8,190,115,244,6,184,17,158,105,186,239,28,101,244,86,184,13,122,239,28,125,182,121,7,56,239,28,125,174,217,123,231,232,243,205,23,154,247,65,239,157,163,47,54,95,106,122,223,57,250,56,56,239,28,101,244,105,251,227,125,231,232,203,205,222,59,71,95,1,254,206,209,87,154,193,119,142,50,234,190,115,244,99,112,222,57,250,106,51,234,157,163,175,53,131,239,28,157,131,248,223,57,202,168,251,206,209,215,155,252,157,163,111,52,131,239,28,93,154,44,67,222,108,202,223,57,186,38,89,139,188,213,236,189,115,244,237,166,227,203,119,155,254,119,142,190,215,220,152,108,66,54,37,239,55,39,54,123,239,28,221,130,108,73,182,34,31,52,69,239,28,253,176,249,81,147,191,115,244,227,230,39,77,239,59,71,247,37,159,54,189,239,28,237,52,187,205,67,200,164,230,228,166,255,157,163,140,142,39,71,145,163,201,49,228,88,114,28,57,158,156,64,38,144,19,9,127,231,232,197,147,7,7,163,241,251,133,251,198,29,109,82,19,63,62,110,39,101,17,91,146,68,79,147,86,15,138,181,27,98,255,121,231,1,105,202,15,242,203,164,101,233,43,215,3,89,75,212,181,92,220,211,201,83,183,77,206,230,180,124,95,3,140,198,239,23,238,27,119,180,73,77,162,71,169,89,196,150,36,145,104,210,106,115,222,114,182,120,107,64,186,242,253,252,50,105,89,250,202,245,64,158,81,24,196,114,113,79,39,79,221,54,57,91,56,238,8,68,85,113,61,94,191,89,65,28,63,5,125,128,25,128,25,86,101,28,136,17,66,96,134,217,8,159,23,96,212,57,47,224,239,231,156,23,96,52,124,94,128,209,101,234,22,44,91,95,174,206,168,255,188,64,111,92,239,188,192,242,245,49,176,130,221,234,158,23,232,109,95,184,255,87,116,94,128,81,239,121,1,70,157,243,2,189,222,99,237,191,43,207,60,122,29,62,47,176,98,125,165,250,58,246,182,117,237,143,255,188,0,163,238,121,129,94,255,222,121,129,177,117,247,188,128,125,36,182,127,94,192,62,18,59,243,188,0,163,238,121,1,70,221,243,2,142,164,125,250,223,206,121,129,149,235,7,218,107,7,217,31,247,188,0,163,252,188,0,163,71,205,28,115,108,255,251,255,217,187,14,120,55,138,227,173,89,157,100,251,217,20,211,123,55,213,52,3,182,233,53,244,222,123,47,161,215,36,64,66,148,70,18,2,105,255,36,164,65,18,72,72,161,39,33,9,164,209,123,51,189,183,208,59,230,206,29,251,254,167,183,94,180,146,102,87,183,187,186,119,167,213,248,251,61,237,74,223,205,183,179,179,163,241,233,238,116,58,49,121,20,231,5,214,42,235,207,11,196,181,250,121,129,184,38,206,11,172,157,68,110,157,228,111,221,242,5,201,171,141,243,2,98,101,228,243,2,252,149,159,39,173,56,47,16,215,248,121,129,250,235,54,231,5,198,149,111,128,245,202,205,231,5,234,91,220,156,60,202,231,5,234,143,119,38,143,235,151,249,121,129,184,86,63,47,80,127,149,159,23,168,247,248,121,129,184,86,63,47,144,156,191,80,156,23,136,107,245,243,2,113,237,213,228,143,159,23,136,107,234,243,2,27,148,249,121,129,184,166,59,47,16,215,90,207,11,196,53,213,121,129,184,214,56,47,16,215,150,98,227,203,242,121,129,9,229,49,201,171,234,243,2,73,4,146,191,250,121,129,70,52,155,207,11,196,181,205,216,196,242,134,229,58,83,63,47,16,215,182,25,220,22,59,47,80,127,189,113,94,160,254,76,156,23,72,178,145,109,148,104,200,231,5,234,252,225,131,143,173,231,5,112,136,243,2,105,234,196,52,186,27,58,129,224,45,220,247,3,26,215,7,168,246,3,248,245,1,141,253,128,69,193,118,63,224,218,50,223,15,184,174,172,186,62,32,221,126,64,227,250,0,221,126,64,243,245,1,205,251,1,245,235,3,58,237,7,240,235,3,90,247,3,174,79,181,31,32,95,31,16,215,190,149,252,213,175,15,144,247,3,176,235,3,196,126,64,227,250,0,215,253,0,245,245,1,205,251,1,252,250,128,184,38,174,15,80,239,7,116,186,62,128,239,7,200,215,7,232,246,3,196,245,1,166,251,1,234,235,3,228,253,128,63,151,177,235,3,116,251,1,245,235,3,58,239,7,212,175,15,16,251,1,252,250,0,211,253,0,126,125,64,218,253,0,253,245,1,103,198,173,136,107,162,149,209,204,241,94,243,51,249,121,67,161,93,87,214,150,183,62,96,88,251,118,13,13,222,54,251,211,174,209,234,87,187,215,173,125,121,102,248,44,154,183,110,157,81,227,175,89,187,57,142,205,227,168,71,193,103,32,251,214,172,134,121,217,26,47,213,204,85,214,13,5,189,167,173,107,128,103,68,235,248,173,49,198,103,171,90,63,76,171,83,60,117,249,137,231,136,201,22,157,34,211,190,94,216,138,180,122,168,218,70,159,237,205,107,142,189,107,117,89,211,187,96,195,104,95,142,96,135,153,244,25,119,16,43,204,106,133,120,13,219,174,177,125,189,215,252,76,126,222,80,104,215,149,181,219,71,111,85,17,91,241,182,217,31,76,163,217,175,118,175,91,61,146,103,134,207,66,182,196,237,27,158,225,202,173,227,168,71,193,103,32,251,214,172,134,121,217,26,175,246,153,171,35,223,28,93,189,167,173,107,128,103,68,235,248,173,49,198,103,171,203,136,86,173,78,241,212,229,39,158,35,38,91,232,71,195,214,11,91,145,86,15,85,219,232,179,189,121,205,177,119,45,142,49,109,72,142,243,207,109,101,52,115,188,215,252,76,126,222,80,104,215,149,181,199,104,198,111,214,224,109,179,63,152,70,179,95,237,94,183,246,229,153,225,179,104,222,186,117,70,141,191,102,237,230,56,54,143,163,30,5,159,129,236,91,179,26,230,101,107,188,84,51,87,89,55,20,244,158,182,174,1,158,17,173,227,183,198,24,159,173,46,35,90,181,58,197,83,151,159,120,142,152,108,209,41,50,237,235,133,173,72,171,135,170,109,244,217,222,188,230,216,187,22,7,29,15,160,227,1,116,60,160,191,143,7,172,56,171,21,201,113,249,185,173,140,102,142,247,154,159,201,207,27,10,237,186,178,118,251,232,173,42,98,43,222,54,251,131,105,52,251,213,238,117,171,71,242,204,240,89,200,150,184,125,195,51,92,185,117,28,245,40,248,12,100,223,154,213,48,47,91,227,213,62,115,117,228,155,163,171,247,180,117,13,240,140,104,29,191,53,198,248,108,117,25,209,170,213,41,158,186,252,196,115,196,100,11,253,104,216,122,97,43,210,234,161,106,27,125,182,55,175,57,246,174,197,177,82,27,226,154,104,101,52,115,188,215,252,76,126,222,80,104,215,149,181,87,210,140,223,172,193,219,102,127,48,141,102,191,218,189,110,237,203,51,195,103,209,188,117,235,140,26,127,205,218,205,113,108,30,71,61,10,62,3,217,183,102,53,204,203,214,120,169,102,174,178,110,40,232,61,109,93,3,60,35,90,199,111,141,49,62,91,93,70,180,106,117,138,167,46,63,241,28,49,217,162,83,100,218,215,11,91,145,86,15,85,219,232,179,189,121,205,177,119,45,14,250,44,64,159,5,232,179,64,127,127,22,232,223,26,208,250,78,165,26,64,53,160,187,53,0,95,47,186,62,160,56,56,130,190,51,68,160,12,75,137,57,115,76,57,157,69,183,70,30,58,237,172,188,232,166,174,172,149,101,212,122,111,141,231,204,225,143,118,153,171,242,78,173,215,96,210,204,172,123,179,111,31,191,155,40,197,166,156,206,162,91,35,15,157,118,86,94,116,83,87,214,202,50,106,189,183,198,245,47,182,96,163,164,203,92,149,119,106,189,6,147,102,102,221,155,125,251,248,4,194,28,186,22,150,144,2,182,223,27,76,94,147,190,55,24,215,76,191,55,200,33,127,111,48,174,225,223,27,140,107,242,253,3,4,138,246,189,65,238,75,154,239,13,158,199,234,223,27,76,142,211,104,190,55,24,215,84,223,27,172,227,162,164,237,244,189,193,122,123,201,224,163,235,247,6,227,154,238,123,131,124,251,244,223,27,140,107,245,239,13,198,181,60,190,55,152,228,167,225,247,6,235,247,15,16,223,27,140,107,246,223,27,140,107,217,125,111,48,174,185,126,111,144,170,160,195,222,215,0,197,128,224,227,126,192,223,135,245,214,126,192,63,134,153,238,7,220,56,172,123,251,1,55,13,147,247,3,254,57,44,175,253,128,127,13,251,247,176,222,221,15,248,207,176,52,251,1,255,29,214,157,253,128,155,135,53,239,7,220,50,172,121,63,224,214,97,221,220,15,184,109,88,125,63,224,246,97,105,247,3,238,24,54,212,251,1,116,15,17,186,135,8,221,67,164,191,239,33,66,123,66,246,40,211,103,1,2,161,135,113,16,93,35,68,160,12,171,209,121,1,58,47,208,223,231,5,130,1,58,47,208,191,85,250,40,218,15,32,80,134,213,122,237,190,194,186,223,23,160,99,130,116,76,208,254,152,224,141,172,211,126,0,29,19,36,16,204,49,140,142,154,18,156,177,247,12,61,255,244,136,110,43,235,71,148,89,209,231,45,198,224,172,141,167,195,7,178,137,95,182,235,166,138,73,49,178,40,107,143,220,245,77,21,234,219,239,61,35,207,72,23,51,142,84,3,168,6,80,13,112,197,106,177,41,167,179,232,214,200,67,167,157,149,23,221,212,149,181,178,140,90,239,173,241,106,49,127,180,203,92,149,119,106,189,6,147,102,102,221,155,125,251,248,253,141,201,115,200,71,2,161,159,49,178,7,142,69,141,162,227,101,4,66,23,48,47,250,78,250,168,7,254,143,237,5,31,9,132,252,241,230,84,27,190,147,85,218,109,244,86,162,207,91,140,233,254,248,221,142,95,86,163,180,199,164,120,89,100,238,157,153,133,126,235,236,98,51,84,81,255,90,197,100,235,249,10,185,223,123,221,148,110,110,107,162,70,32,80,190,228,143,13,98,138,1,129,50,44,29,170,177,41,87,141,179,31,121,232,180,179,242,162,155,186,178,86,150,81,139,123,110,141,171,49,127,140,173,50,87,229,157,90,175,193,164,153,89,247,102,223,62,126,55,177,114,108,202,173,28,103,63,242,208,105,103,229,69,55,117,101,173,44,163,214,123,107,188,114,204,31,237,50,87,229,157,90,175,193,164,153,89,247,102,223,62,126,55,49,44,54,229,134,197,217,143,60,116,218,89,121,209,77,93,89,43,203,168,245,222,26,15,139,249,163,93,230,170,188,83,235,53,152,52,51,235,222,236,219,199,239,38,86,138,77,185,149,226,236,71,30,58,237,172,188,232,166,174,172,149,101,212,122,111,141,87,138,249,163,93,230,170,188,83,235,53,152,52,51,235,222,236,219,199,239,38,198,196,166,220,152,56,251,145,135,78,59,43,47,186,169,43,107,101,25,181,222,91,227,49,49,127,180,203,92,149,119,106,189,6,147,102,102,221,155,125,251,248,221,196,42,177,41,183,74,156,253,200,67,167,157,149,23,221,212,149,181,178,140,90,239,173,241,42,49,127,180,203,92,149,119,106,189,6,147,102,102,221,155,125,251,248,221,196,170,177,41,183,106,156,253,200,67,167,157,149,23,221,212,149,181,178,140,90,239,173,241,170,49,127,180,203,92,149,119,106,189,6,147,102,102,221,155,125,251,248,105,225,219,125,132,230,31,160,251,8,245,218,125,132,70,15,208,125,132,138,126,31,161,5,61,253,118,203,183,167,118,115,219,111,23,228,186,88,130,127,217,71,200,6,235,199,20,3,2,101,152,127,88,40,211,125,150,149,170,174,10,51,217,194,22,30,174,83,118,27,117,17,139,49,199,56,207,53,45,22,53,246,110,229,174,251,118,35,221,89,147,64,232,107,80,13,232,93,92,138,252,143,48,57,213,255,154,235,197,189,58,231,143,203,69,240,34,44,128,23,81,33,34,225,95,134,21,1,75,103,184,71,191,12,221,191,135,64,144,224,219,185,193,229,50,59,55,24,12,219,31,234,199,3,220,206,13,206,100,189,114,110,112,76,213,253,220,96,101,88,154,115,131,203,27,159,27,92,185,234,219,185,193,234,48,250,141,145,52,88,153,254,7,39,16,104,63,160,195,126,192,42,180,31,64,251,1,180,31,64,191,53,150,238,120,18,221,211,147,64,25,214,215,152,74,43,68,160,12,35,120,141,213,232,248,9,129,160,193,49,61,242,235,240,4,202,176,108,97,123,76,48,121,77,58,38,24,215,76,143,9,114,200,199,4,227,26,126,76,48,174,201,199,4,5,84,199,4,147,35,48,185,124,111,144,251,146,230,123,131,231,177,250,49,193,184,166,59,38,24,215,84,199,4,235,184,40,105,59,29,19,172,183,151,12,62,186,126,111,48,174,233,142,9,242,237,211,127,111,48,174,213,143,9,198,53,249,152,96,92,27,154,239,13,38,249,169,60,38,152,100,103,135,99,130,113,205,254,152,96,92,203,238,123,131,113,205,245,152,224,227,211,91,17,215,68,43,32,191,38,111,213,252,76,126,222,80,104,215,149,181,241,113,219,125,18,90,178,79,173,250,152,95,237,94,183,122,36,143,138,143,220,60,190,46,90,234,81,211,206,82,55,127,213,56,173,94,226,51,82,175,69,251,170,224,171,217,105,196,78,241,193,51,165,221,74,173,209,58,151,206,51,74,15,253,106,169,183,80,107,53,242,53,205,74,54,207,168,179,55,234,119,97,251,138,119,242,247,137,54,36,53,122,110,43,32,191,38,111,213,252,76,126,222,80,104,215,149,181,241,113,159,64,189,226,35,202,150,173,10,237,126,181,123,221,234,145,60,42,62,114,243,248,186,104,169,71,77,59,75,221,252,85,227,180,122,137,207,72,189,22,237,171,130,175,102,167,17,59,197,7,207,148,118,43,181,70,235,92,58,207,40,61,244,171,165,222,66,173,213,200,215,52,43,217,60,163,206,222,168,223,133,237,43,222,201,223,215,166,182,34,174,137,86,64,126,77,222,170,249,153,252,188,161,208,174,47,171,171,88,124,251,102,159,244,250,216,140,90,61,156,81,110,158,153,78,173,57,14,88,180,210,141,170,222,62,221,28,244,115,78,62,171,149,241,25,53,219,225,26,173,209,77,187,46,186,237,91,231,219,186,109,123,84,59,143,107,230,161,89,124,213,175,170,178,72,101,165,202,40,93,94,232,179,3,207,49,149,55,38,254,102,131,157,63,113,179,95,35,229,49,237,251,134,229,229,33,161,23,48,118,32,191,117,166,12,27,26,176,97,253,61,127,130,61,214,162,115,167,131,248,104,70,43,228,215,90,183,107,112,245,94,243,179,102,75,97,173,215,197,198,109,125,85,104,243,17,101,75,108,6,205,126,181,123,221,234,145,60,42,62,11,217,18,183,111,120,134,43,183,142,163,30,5,159,129,236,91,179,26,230,101,107,188,218,103,142,175,123,123,116,245,158,182,174,1,158,17,173,227,183,198,24,159,173,58,35,219,181,58,197,83,151,159,120,142,152,108,161,31,13,91,47,108,69,90,61,84,109,163,155,65,235,154,99,239,90,28,97,27,226,154,220,23,104,229,234,189,230,103,205,150,194,90,175,139,141,219,250,170,208,230,35,202,150,237,26,173,126,181,123,221,234,145,60,42,62,11,217,18,183,111,120,134,43,183,142,163,30,5,159,129,236,91,179,26,230,101,107,188,218,103,222,30,53,108,181,59,121,218,186,6,120,70,180,142,223,26,99,124,182,234,140,108,215,234,20,79,93,126,226,57,98,178,133,126,52,108,189,176,21,105,245,80,181,13,54,131,175,51,60,71,177,119,173,46,107,84,88,167,109,111,105,221,182,87,198,89,236,81,173,215,149,189,176,195,135,199,181,61,166,13,205,254,210,247,135,155,90,92,54,104,81,247,239,10,196,118,125,171,8,108,48,48,126,224,238,148,158,60,155,108,55,65,49,202,27,41,52,38,167,26,39,24,81,25,81,29,161,219,98,226,160,15,27,14,224,43,181,204,8,243,40,140,31,49,97,68,61,178,110,107,111,106,191,145,197,138,157,63,226,155,70,243,187,100,132,203,140,250,21,27,211,103,58,130,37,54,161,220,241,2,191,172,168,152,163,103,244,254,236,178,153,67,179,170,15,113,42,114,204,187,165,151,221,170,209,181,194,116,173,48,93,43,220,223,215,10,83,13,160,26,64,53,160,191,107,64,154,125,133,205,233,115,19,129,64,240,14,51,98,138,1,129,50,172,247,65,215,9,18,108,177,5,237,223,122,129,119,103,12,189,37,129,64,25,86,28,108,105,93,203,223,166,21,34,100,10,202,176,162,163,76,247,18,35,80,134,121,128,247,103,12,189,101,175,227,146,10,229,77,177,115,115,104,177,253,140,86,136,215,26,91,52,182,195,182,111,183,236,204,54,171,234,84,116,154,157,102,208,254,92,222,94,204,77,246,72,61,34,22,1,97,211,110,215,172,44,63,235,140,246,45,59,249,134,71,36,205,108,48,107,213,186,116,242,23,91,55,217,155,180,170,248,252,211,172,133,105,102,154,205,51,189,93,243,59,72,199,118,138,165,58,147,241,152,203,239,171,244,17,223,174,13,113,77,180,28,188,215,204,225,72,207,54,171,234,84,116,154,194,191,78,126,52,158,203,219,139,185,201,30,169,71,196,34,32,108,218,237,154,149,229,103,157,209,190,101,39,223,240,136,164,153,13,102,173,90,151,78,254,98,235,38,123,147,86,21,159,127,154,181,48,205,76,179,121,166,183,107,126,7,233,216,78,177,84,103,50,30,115,249,125,101,18,113,66,191,97,233,18,197,64,141,181,187,28,157,245,50,137,246,4,90,67,2,213,0,170,1,93,66,231,239,11,220,17,212,31,177,223,28,189,51,224,223,23,184,43,8,224,238,224,158,160,245,251,2,247,6,247,5,245,239,11,220,31,140,134,7,130,198,247,5,30,76,250,15,13,170,166,255,205,209,135,131,73,193,88,120,36,120,52,120,44,120,60,120,34,104,255,190,192,147,193,83,193,120,120,58,72,243,125,129,177,229,52,223,23,120,38,16,223,23,120,54,241,246,185,96,127,120,62,16,223,23,120,33,232,252,155,163,47,6,47,5,237,191,57,122,42,152,253,230,232,203,201,152,175,36,127,255,11,154,127,115,244,213,224,181,224,245,224,141,0,251,190,192,155,65,235,111,142,190,21,188,29,136,239,11,188,19,164,249,190,192,187,65,253,251,2,239,5,55,192,251,65,235,247,5,62,8,110,134,15,3,241,155,163,31,5,183,195,228,160,254,125,129,143,131,48,104,253,190,64,20,96,191,57,58,37,224,223,23,152,26,60,3,211,130,246,239,11,76,15,116,223,23,152,17,136,239,11,204,12,236,126,115,116,86,144,230,55,71,63,9,90,127,115,116,118,160,255,190,192,156,224,211,239,11,4,159,190,95,219,126,115,20,42,108,240,184,108,253,251,2,229,202,54,44,168,84,42,248,247,5,170,149,198,247,5,134,85,154,191,47,48,188,146,238,55,71,71,84,142,101,3,149,145,149,81,149,121,42,39,178,121,43,243,85,230,175,140,174,208,111,142,210,126,0,129,246,3,8,246,216,161,239,174,50,221,145,174,171,37,16,10,138,157,135,248,221,185,75,129,170,193,174,67,228,203,110,5,152,243,238,153,249,208,126,60,96,143,1,58,30,64,199,3,232,120,64,255,28,15,160,99,130,84,3,240,26,176,247,64,113,107,192,62,3,84,3,250,231,152,224,168,25,197,85,190,170,162,82,26,69,215,93,20,42,14,184,31,89,123,151,215,236,125,203,190,241,51,138,171,44,20,218,149,198,247,125,13,184,166,82,164,56,224,126,100,237,93,94,179,247,45,251,54,152,81,44,229,43,43,237,10,237,74,27,20,102,21,174,174,248,185,122,221,240,35,107,239,242,154,125,113,178,175,59,88,111,70,177,148,175,172,164,81,90,175,239,107,0,223,15,40,74,28,112,63,178,246,46,175,217,23,39,251,186,131,249,102,20,75,89,182,58,124,64,165,52,95,97,86,33,47,79,248,184,69,137,3,238,71,214,222,229,27,123,127,48,114,70,177,148,101,43,209,111,87,26,89,152,85,200,203,19,62,110,81,226,128,251,145,181,119,249,198,222,31,148,103,20,75,89,182,18,253,118,165,114,97,86,97,104,60,105,30,229,200,1,241,74,81,226,128,251,97,238,157,153,69,94,179,47,78,246,249,9,249,120,192,85,61,112,63,158,124,143,7,16,8,238,56,99,70,177,148,55,159,209,222,111,87,58,163,48,149,120,243,25,121,142,91,148,56,224,126,100,237,93,94,179,55,29,151,126,107,140,126,107,44,203,223,26,59,183,76,191,53,70,191,55,72,53,128,126,111,144,106,0,213,0,170,1,180,31,64,53,160,151,107,192,9,3,62,214,128,73,211,169,6,244,203,126,192,164,233,88,13,152,52,189,115,13,152,52,221,190,6,212,51,172,187,53,96,210,116,125,13,152,52,61,171,223,29,38,16,250,21,39,245,193,189,83,232,187,195,244,221,97,186,127,0,125,119,184,63,177,19,253,18,20,129,50,108,72,112,10,221,137,142,64,32,16,8,132,38,156,74,255,55,18,8,125,141,211,168,6,16,8,5,193,233,125,254,110,180,189,70,168,126,94,128,95,31,16,215,198,148,3,88,185,188,74,89,117,125,192,170,229,209,176,90,185,113,94,160,254,250,98,131,143,233,207,11,212,183,174,95,31,176,230,220,163,215,237,231,5,86,47,175,81,78,123,125,64,186,243,2,201,81,216,185,231,5,248,72,242,245,1,107,150,59,159,23,168,163,253,250,128,181,202,105,206,11,156,49,32,206,11,172,157,68,110,157,228,111,221,242,5,112,230,64,227,188,128,88,25,236,188,64,92,107,61,47,80,127,221,230,250,128,113,229,27,96,189,114,243,121,129,250,22,226,250,128,219,6,159,221,62,248,88,191,62,96,253,178,234,250,128,179,6,248,121,129,207,13,212,207,11,196,53,253,245,1,113,237,213,228,175,243,245,1,27,148,237,206,11,196,181,180,215,8,125,126,64,62,47,48,161,172,63,47,144,68,160,233,26,161,47,12,96,231,5,38,150,55,44,215,217,250,121,129,184,182,205,224,182,102,215,8,37,217,200,54,42,159,61,144,230,188,128,178,246,101,124,94,224,27,179,134,166,134,217,143,51,84,30,246,102,92,123,123,54,178,174,219,24,46,214,126,173,21,129,64,232,46,190,74,199,3,8,4,66,87,240,53,170,38,4,66,15,226,235,244,206,37,16,10,130,111,244,249,187,113,239,79,58,65,189,77,26,107,27,221,161,194,199,35,76,61,114,247,57,235,89,187,232,155,100,69,81,124,246,201,135,238,122,211,208,232,164,70,255,11,16,8,121,224,124,250,44,64,32,244,53,190,73,53,128,64,40,8,190,69,239,70,130,199,248,54,229,55,161,3,54,152,217,10,241,26,182,93,243,246,173,214,237,207,229,87,90,251,248,232,170,49,248,214,194,142,191,218,105,6,237,207,229,237,27,138,13,143,48,107,181,118,195,35,21,211,62,78,103,180,111,153,214,183,230,136,52,91,180,207,92,101,173,98,117,121,210,58,231,230,184,234,199,236,148,85,234,245,84,101,87,154,152,166,123,213,196,174,149,87,69,83,23,17,125,212,212,90,205,153,214,24,63,157,191,19,218,16,215,68,43,163,153,195,158,97,207,229,87,90,251,205,172,74,69,246,166,97,199,95,149,61,75,231,151,188,125,67,177,225,17,102,173,214,110,120,164,98,218,199,233,140,246,45,211,250,214,28,145,102,139,246,153,171,172,85,172,46,79,90,231,220,28,87,253,152,157,178,74,189,158,170,236,74,19,211,116,175,154,216,181,242,170,104,234,34,162,143,154,90,171,57,211,26,227,167,243,119,253,54,196,53,209,202,104,230,176,103,216,115,249,149,214,126,51,171,82,145,189,105,216,241,87,101,207,210,249,37,111,223,80,108,120,132,89,171,181,27,30,169,152,246,113,58,163,125,203,180,190,53,71,164,217,162,125,230,42,107,21,171,203,147,214,57,55,199,85,63,102,167,172,82,175,167,42,187,210,196,52,221,171,38,118,173,188,42,154,186,136,232,163,166,214,106,206,180,198,248,233,252,93,175,13,113,77,180,50,154,57,236,25,246,92,126,165,181,223,204,170,84,100,111,26,118,252,85,217,179,116,126,201,219,55,20,27,30,97,214,106,237,134,71,42,166,125,156,206,104,223,50,173,111,205,17,105,182,104,159,185,202,90,197,234,242,164,117,206,205,113,213,143,217,41,171,212,235,169,202,174,52,49,77,247,170,137,93,43,175,138,166,120,126,193,128,122,166,120,212,212,90,205,153,214,24,63,173,191,249,224,59,116,172,138,64,32,16,8,125,139,11,11,243,191,96,214,191,51,116,108,153,126,103,168,87,127,99,228,248,178,111,191,53,118,66,25,251,157,161,19,203,248,61,68,206,169,116,239,119,134,46,26,144,239,33,114,114,153,255,198,200,41,229,60,127,103,232,212,50,191,135,200,184,153,173,136,107,162,149,209,204,97,207,176,231,242,43,173,253,102,86,165,34,123,211,176,227,175,202,158,165,243,75,222,190,161,216,240,8,179,86,107,55,60,82,49,237,227,116,70,251,150,105,125,107,142,72,179,69,251,204,85,214,42,86,151,39,173,115,110,142,171,126,204,78,89,165,94,79,85,118,165,137,105,186,87,77,236,90,121,85,52,117,17,209,71,77,173,213,156,105,141,241,211,249,187,110,27,226,154,104,101,52,115,216,51,236,185,252,74,107,191,153,85,169,200,222,52,236,248,171,178,103,233,252,146,183,111,40,54,60,194,172,213,218,13,143,84,76,251,56,157,209,190,101,90,223,154,35,210,108,209,62,115,149,181,138,213,229,73,235,156,155,227,170,31,179,83,86,169,215,83,149,93,105,98,154,238,85,19,187,86,94,21,77,93,68,244,81,83,107,53,103,90,99,252,180,254,22,11,15,84,134,106,164,77,63,157,251,131,149,161,156,225,67,67,58,154,140,135,115,27,89,133,239,121,125,100,120,83,233,221,245,120,18,251,39,10,23,255,126,199,204,57,20,3,2,101,88,63,99,117,250,37,40,2,101,88,95,99,77,90,33,2,101,88,1,49,116,199,3,54,163,227,1,185,195,239,227,1,155,209,241,0,43,108,50,115,232,71,218,100,166,159,51,44,206,200,189,227,81,86,179,171,247,139,58,219,181,103,182,66,188,134,109,215,188,125,171,117,251,115,249,149,214,62,62,186,106,12,190,181,176,227,175,118,154,65,251,115,121,251,134,98,195,35,204,154,227,135,3,170,89,96,118,205,202,242,179,206,104,223,178,147,111,205,17,111,94,171,102,47,176,117,105,181,86,177,186,60,105,157,115,115,92,245,99,118,202,42,245,122,170,178,43,77,76,211,189,106,98,215,202,171,162,169,139,136,62,106,106,173,230,76,107,140,159,214,95,130,45,126,164,220,147,253,113,70,251,184,63,161,111,89,88,227,98,138,93,238,248,121,202,53,248,69,238,107,245,75,3,15,46,161,204,202,28,151,246,113,140,127,213,151,115,191,204,105,214,151,211,123,114,136,240,91,138,52,129,64,32,88,227,119,84,67,149,184,130,98,67,232,3,252,158,242,60,35,252,129,34,59,68,248,163,55,145,254,19,229,76,193,112,37,173,8,129,64,24,2,44,67,231,69,9,148,97,125,133,171,20,251,23,87,211,126,71,110,184,38,163,216,95,75,107,106,140,109,226,246,94,119,117,211,51,166,158,152,123,172,179,104,231,244,250,205,172,75,244,220,34,111,103,221,221,213,206,118,140,109,98,174,228,30,227,86,5,252,121,186,113,58,175,127,179,90,167,177,237,222,51,221,136,241,214,113,123,175,27,80,171,117,30,39,173,39,230,30,235,44,218,57,189,126,51,235,18,61,183,200,219,89,119,119,181,179,29,99,235,152,43,185,199,184,85,1,127,158,110,156,206,235,223,172,214,105,108,187,247,204,80,172,35,129,224,47,174,167,79,14,125,138,67,103,83,12,8,249,101,88,209,242,239,223,159,222,9,249,47,93,173,137,127,85,170,221,204,58,217,222,194,210,141,49,16,152,122,117,131,102,142,183,183,141,122,135,214,143,59,155,216,191,57,68,111,158,192,222,54,174,157,98,149,81,247,50,151,49,211,225,239,93,202,168,39,75,255,24,84,122,200,193,231,209,131,49,190,177,197,163,71,91,20,31,27,124,254,120,170,113,158,104,218,106,65,100,13,159,26,220,98,161,185,204,51,45,170,55,181,69,231,159,22,241,122,209,105,29,179,254,125,129,121,129,126,95,160,87,127,95,224,207,224,219,239,11,12,99,216,239,11,140,102,248,239,11,44,201,186,247,251,2,27,50,249,247,5,54,103,252,247,5,182,100,121,254,190,192,233,140,255,190,64,195,211,137,83,241,126,183,145,165,118,250,113,235,207,248,43,106,127,254,59,48,212,115,113,215,203,62,186,98,4,245,72,237,140,106,219,172,188,21,43,155,127,60,179,152,97,118,107,60,170,42,237,151,86,179,203,161,249,50,212,214,97,254,166,113,71,127,250,108,1,7,127,22,236,242,92,22,202,41,54,38,56,103,174,143,139,40,125,93,180,141,89,76,177,237,226,25,205,247,230,193,234,189,100,117,41,103,253,91,10,120,188,112,153,30,200,18,2,129,227,54,58,226,78,240,12,43,57,87,224,153,172,87,230,58,166,192,255,219,172,76,255,19,18,8,132,76,112,7,237,185,160,56,119,150,41,167,179,232,214,200,67,167,157,149,23,221,212,149,181,178,140,90,239,173,241,185,179,248,163,93,230,170,188,83,235,53,152,52,51,235,222,236,219,199,239,38,206,156,101,202,157,57,43,251,145,135,78,59,43,47,186,169,43,107,157,57,36,53,160,87,214,248,204,89,252,209,46,115,85,222,169,245,26,76,154,153,117,111,246,237,227,19,56,158,167,239,111,18,8,132,62,195,157,244,153,150,64,32,16,10,142,187,10,83,169,233,90,97,186,86,152,174,21,166,107,133,9,4,194,80,227,30,250,196,70,240,16,247,82,94,19,60,7,93,39,88,12,208,117,130,132,206,184,223,195,255,145,30,160,255,101,9,25,32,235,99,130,199,150,233,152,96,175,30,19,60,190,236,219,49,193,19,202,216,49,193,7,7,240,99,130,15,13,100,117,76,240,228,50,63,38,248,240,64,158,199,4,79,45,167,63,38,120,206,44,83,238,156,46,93,171,116,78,134,215,60,165,215,206,202,139,110,234,202,90,231,12,201,149,98,189,178,198,231,204,226,143,118,153,171,242,78,173,215,96,210,204,172,123,179,111,31,191,155,248,226,44,83,238,139,179,178,31,121,232,180,179,242,162,155,186,178,214,23,135,164,6,244,202,26,127,113,22,127,180,203,92,149,119,106,189,6,147,102,102,221,155,125,251,248,69,249,44,64,215,7,244,238,103,1,186,62,128,174,15,16,56,123,150,41,119,118,151,170,219,217,25,254,31,145,94,59,43,47,186,169,43,107,157,61,36,251,1,189,178,198,103,207,226,143,118,153,171,242,78,173,215,96,210,204,172,123,179,111,31,191,155,152,62,199,148,211,89,116,107,228,161,211,206,202,139,110,234,202,90,89,70,173,247,214,120,250,28,254,104,151,185,42,239,212,122,13,38,205,204,186,55,251,246,241,187,137,83,102,153,114,167,204,202,126,228,161,211,206,202,139,110,234,202,90,167,12,201,126,64,175,172,241,41,179,248,163,93,230,170,188,83,235,53,152,52,51,235,222,236,219,199,207,23,123,205,42,150,142,155,118,86,94,244,154,110,111,174,49,215,111,31,5,31,183,245,85,149,119,106,189,6,179,215,144,190,27,247,42,216,125,3,62,168,116,71,231,195,74,118,62,238,158,58,102,31,101,228,197,228,140,116,63,206,48,106,13,68,93,26,101,106,134,222,174,158,28,183,126,116,240,202,170,233,109,163,204,64,199,157,217,242,234,99,138,235,178,62,105,179,158,61,247,149,57,21,243,12,235,10,42,67,58,90,15,225,73,186,182,142,64,208,194,246,220,224,156,146,56,55,24,215,198,148,3,88,185,188,74,89,117,110,112,213,242,104,88,173,220,56,55,88,127,125,177,193,71,249,220,224,178,128,159,27,92,13,228,115,131,107,206,61,27,213,126,110,112,245,242,26,229,180,231,6,199,150,211,156,27,76,246,175,230,158,27,228,35,201,231,6,215,44,55,159,27,60,34,121,60,18,154,207,13,214,209,126,110,112,173,114,253,220,224,25,160,59,55,248,21,56,99,64,156,27,92,59,137,220,58,201,223,186,229,11,224,204,129,239,192,133,112,17,124,23,190,247,233,153,60,236,220,96,92,251,37,212,207,13,94,10,174,231,6,199,149,111,128,245,202,205,231,6,235,91,136,115,131,183,13,62,187,125,240,177,126,110,112,253,178,254,220,224,35,240,185,129,199,224,241,228,185,254,220,96,92,123,53,249,235,124,110,112,131,114,250,115,131,85,214,56,55,24,215,230,97,79,13,164,57,55,248,249,1,126,110,112,121,86,63,55,56,161,172,63,55,152,68,0,57,55,56,145,53,159,27,156,88,222,176,92,103,234,231,6,227,218,54,131,219,154,157,27,76,178,145,109,84,62,123,224,64,118,16,235,124,110,16,135,201,185,193,43,140,247,105,174,152,117,69,87,246,131,58,171,116,218,66,205,167,247,48,221,150,54,81,202,34,34,118,186,230,30,116,99,148,186,70,22,222,202,62,242,126,251,40,120,142,182,190,166,242,14,211,107,101,244,51,235,246,188,179,93,245,203,103,153,91,92,62,107,104,70,238,180,133,154,191,124,214,140,114,55,231,111,19,165,238,71,100,102,185,243,54,47,76,237,198,154,116,99,133,235,26,151,207,202,46,99,27,250,237,163,224,57,218,250,154,202,59,76,175,149,209,207,172,219,243,190,188,96,199,4,9,4,130,30,207,210,145,42,2,129,96,132,231,168,106,16,8,61,139,231,11,252,254,165,239,12,209,119,134,232,59,67,253,253,157,161,161,171,1,63,31,104,173,1,47,14,96,53,224,23,3,121,215,128,151,6,210,215,128,75,6,108,106,192,203,3,84,3,210,215,128,75,7,250,183,6,252,106,32,251,26,240,250,204,86,36,103,101,231,182,50,154,57,222,107,126,38,63,111,40,180,235,54,180,95,27,192,198,125,125,0,211,224,109,179,63,178,103,184,95,237,94,183,246,229,153,225,179,104,222,186,117,70,141,191,102,237,230,56,234,124,194,226,223,204,202,190,225,106,205,113,197,252,109,159,185,202,186,161,160,247,180,117,13,240,140,104,29,191,53,198,248,108,245,177,106,245,80,31,79,93,126,226,57,98,178,69,167,200,180,175,23,182,34,173,30,170,182,209,103,123,243,154,99,239,90,93,214,16,8,249,227,77,58,230,69,32,120,134,183,232,93,77,32,16,10,137,183,7,171,211,59,133,168,81,239,230,236,69,241,142,7,188,231,245,241,128,206,159,209,232,120,0,29,15,40,198,241,128,15,104,47,142,208,227,248,80,147,195,31,13,114,147,11,145,229,31,211,123,141,64,24,114,132,244,190,107,124,22,161,107,132,232,26,33,186,70,136,238,43,236,49,158,207,244,236,231,148,46,255,111,50,149,254,119,34,16,8,61,143,105,84,201,232,179,0,125,22,160,207,2,244,89,128,62,11,16,10,139,25,244,255,52,129,64,32,228,140,153,84,137,9,132,190,198,44,170,1,125,140,79,104,245,9,4,66,142,152,77,53,136,208,14,202,138,190,65,105,36,213,128,161,7,140,116,177,102,198,214,229,145,197,141,69,103,84,122,218,123,2,129,48,180,168,90,87,140,87,230,248,19,5,66,17,65,25,86,116,188,68,43,68,160,12,243,0,143,206,25,122,75,2,129,50,172,56,248,225,156,161,183,36,16,40,195,122,7,195,232,8,35,129,224,140,175,206,54,225,234,175,232,44,76,198,250,234,108,181,18,103,186,49,82,39,141,116,99,200,91,165,139,88,122,15,58,43,167,25,29,123,93,188,102,238,129,125,228,155,87,215,93,71,63,130,106,20,60,183,90,183,213,197,178,53,87,117,171,170,218,190,123,179,239,222,186,16,116,24,238,188,87,49,147,190,165,69,32,244,48,70,80,13,32,16,8,132,174,97,128,142,214,244,8,190,60,219,132,171,191,242,229,217,221,25,235,203,179,213,74,156,233,198,72,157,52,210,141,33,111,149,46,98,233,61,232,172,156,102,116,236,117,241,154,185,7,95,158,237,158,87,110,185,146,110,4,213,40,120,110,181,110,171,139,101,107,174,234,86,85,181,125,247,102,223,189,117,33,20,25,35,233,255,77,66,134,152,56,21,239,103,57,206,80,206,170,121,220,250,51,254,138,218,159,81,35,135,122,46,238,122,217,71,87,140,160,30,169,157,81,109,155,149,183,98,101,123,33,158,69,242,105,84,181,209,159,167,154,221,12,230,203,80,187,29,207,125,122,95,225,249,155,198,29,253,233,179,5,28,252,89,176,203,115,89,104,72,99,99,135,133,231,250,184,136,210,215,69,219,152,197,20,219,46,158,209,124,231,25,172,222,75,86,151,114,214,159,183,128,123,94,203,244,64,150,16,8,132,44,48,154,62,11,18,8,125,141,5,50,169,1,182,247,22,159,83,18,247,22,143,107,99,202,1,172,92,94,165,172,186,183,248,170,229,209,176,90,185,113,111,241,193,189,195,193,71,249,222,226,203,2,126,111,241,213,64,190,183,248,154,115,239,102,221,126,111,241,213,203,107,148,211,222,91,124,108,57,205,189,197,227,154,184,183,56,31,73,190,183,248,154,229,230,123,139,31,145,60,30,9,205,247,22,175,163,253,222,226,107,149,235,247,22,63,3,116,247,22,255,74,242,40,238,45,190,118,18,185,117,146,191,117,203,245,123,139,127,7,46,132,139,224,187,240,189,79,239,4,142,221,91,60,174,253,18,234,247,22,191,20,92,239,45,62,174,124,3,172,87,110,190,183,248,130,73,38,138,123,139,223,54,104,117,251,224,99,253,222,226,235,151,245,247,22,127,36,233,61,6,143,39,143,250,123,139,199,181,87,147,191,206,247,22,223,160,156,254,222,226,85,214,184,183,120,242,121,33,229,189,197,199,151,249,189,197,151,103,245,123,139,79,40,235,239,45,158,68,0,185,183,248,68,214,124,111,241,137,229,13,203,117,166,126,111,241,184,182,205,224,182,102,247,22,79,178,145,109,84,174,223,91,252,32,214,249,222,226,56,178,190,183,248,166,179,134,166,50,218,143,227,238,225,80,205,49,239,49,139,62,27,189,138,219,24,46,214,126,173,21,129,64,232,46,22,166,207,246,132,220,176,8,101,95,19,22,237,243,120,244,242,111,141,253,119,240,51,213,208,252,214,216,205,101,211,223,26,187,181,44,126,107,236,182,114,30,191,53,118,123,89,253,91,99,119,148,59,31,15,184,179,156,238,183,198,238,42,187,252,214,216,221,101,243,223,26,187,167,124,111,185,55,126,107,236,190,242,253,229,226,255,214,24,253,222,32,253,222,32,253,222,96,127,255,222,32,213,0,170,1,84,3,232,55,71,9,4,194,80,99,73,58,42,67,32,244,53,150,42,76,13,200,250,179,192,177,101,250,44,208,171,159,5,142,47,251,246,89,224,132,50,246,89,96,233,145,248,103,129,135,6,178,250,44,112,114,153,127,22,120,120,32,207,207,2,167,150,179,252,44,240,65,165,59,58,31,86,178,171,126,187,167,190,130,227,163,140,188,152,156,145,238,199,25,70,173,129,168,75,163,76,205,208,219,213,147,255,167,30,29,252,101,181,233,109,163,204,64,199,157,217,242,234,99,138,223,101,251,164,205,122,246,220,87,230,84,204,51,172,43,168,12,233,104,61,132,101,233,83,23,129,144,235,103,129,110,159,23,88,110,36,125,22,232,165,243,2,231,150,251,253,188,192,242,35,87,24,73,231,6,169,6,80,13,160,26,64,231,6,9,4,130,140,213,232,83,42,129,208,215,88,189,111,206,13,210,103,129,226,125,22,88,121,24,125,22,160,207,2,62,125,22,88,147,246,169,8,4,2,129,128,237,111,151,92,21,214,162,255,97,8,4,66,38,88,167,144,213,229,228,184,123,150,182,90,152,93,55,181,48,246,228,88,244,59,141,212,202,99,26,122,91,253,118,166,227,219,197,35,157,138,205,88,166,54,182,121,211,57,218,38,254,185,69,85,183,214,205,175,184,70,167,93,181,61,11,93,61,63,41,238,158,165,173,22,102,215,77,45,140,61,41,22,253,78,35,181,242,152,134,222,86,191,157,233,248,118,241,72,167,98,51,150,169,141,109,222,116,142,182,137,127,110,81,213,173,117,243,43,174,209,105,87,109,207,194,110,207,36,15,28,23,231,49,210,208,141,170,31,107,40,253,232,247,245,47,254,92,90,237,249,115,202,17,2,33,61,232,152,32,129,64,40,42,214,163,234,66,32,244,53,214,167,123,136,12,130,238,33,66,247,16,201,255,30,34,27,208,61,68,50,0,221,67,36,13,232,30,34,117,208,61,68,186,4,186,135,136,2,19,232,83,23,129,144,235,103,1,186,183,120,239,126,22,160,123,139,211,189,197,9,4,66,86,216,144,246,80,9,132,190,198,70,116,255,0,250,44,64,159,5,232,179,64,79,223,79,112,78,73,212,128,184,54,166,28,192,202,229,85,202,170,26,176,106,121,52,172,86,110,212,128,250,235,139,65,107,13,88,22,240,26,176,26,200,53,96,77,80,213,128,213,203,107,148,211,214,128,177,229,52,53,32,137,248,220,26,192,71,146,107,192,154,229,230,26,112,68,242,120,36,52,215,128,58,218,107,192,90,229,122,13,56,3,116,53,224,43,201,163,168,1,107,39,145,91,39,249,91,183,92,175,1,223,129,11,225,34,248,46,124,239,211,119,44,86,3,226,218,47,161,94,3,46,5,215,26,48,174,124,3,172,87,110,174,1,245,45,68,13,184,13,120,13,168,63,214,107,192,250,101,125,13,120,36,233,61,6,143,39,143,250,26,16,215,94,77,254,58,215,128,13,202,233,107,64,149,53,106,64,92,75,91,3,226,26,175,1,203,179,122,13,152,80,214,215,128,36,2,72,13,152,200,154,107,192,196,242,134,101,81,3,226,218,54,131,219,154,213,128,36,27,217,70,229,122,13,56,136,117,174,1,56,232,120,128,13,86,170,186,42,204,236,153,136,143,169,22,215,183,149,11,236,155,159,248,254,236,236,182,182,87,227,140,253,104,221,245,211,77,59,75,95,210,141,156,222,131,238,249,58,20,179,214,141,161,226,228,215,109,236,243,95,213,124,177,153,215,71,59,191,54,59,127,133,222,153,107,127,250,70,160,207,2,244,89,128,62,11,16,168,6,80,13,160,26,64,200,30,91,21,224,83,199,148,129,238,234,77,29,24,234,25,108,61,55,138,219,208,21,43,132,46,225,51,148,75,4,2,129,64,32,116,192,182,61,245,191,229,249,179,179,219,218,94,141,51,246,163,217,88,158,24,187,106,227,10,231,207,206,123,109,219,61,80,205,181,123,190,218,43,165,93,7,253,24,42,78,126,221,198,62,239,85,221,106,238,209,146,173,233,168,9,193,25,219,211,39,187,254,193,64,95,207,190,175,80,26,57,155,86,187,9,59,12,65,165,3,167,49,152,177,117,153,170,119,70,72,191,15,154,157,66,239,204,181,63,125,203,31,253,246,89,160,106,93,239,158,159,67,217,66,200,18,62,101,216,110,70,245,100,247,33,170,62,123,56,142,243,243,2,93,111,186,103,110,21,123,175,185,35,239,157,218,131,157,186,182,151,185,239,16,204,122,127,139,49,14,72,105,115,80,181,119,50,204,21,63,154,157,221,214,246,106,174,227,252,104,118,81,34,150,173,47,233,70,78,239,65,247,124,29,138,89,235,198,80,113,105,253,234,180,221,143,232,91,13,4,2,65,137,93,232,168,29,129,208,215,216,149,106,0,193,67,236,214,179,121,125,35,221,77,167,15,49,150,62,173,17,40,195,250,26,107,210,10,13,25,22,235,203,171,86,123,37,195,232,190,194,116,95,97,186,175,48,253,198,8,129,64,24,106,236,69,199,4,9,132,190,198,222,84,3,8,132,130,96,31,135,119,227,190,244,78,38,16,134,24,251,209,187,142,64,32,116,29,116,125,64,63,226,27,51,41,6,4,202,48,2,161,215,112,0,125,22,32,116,9,231,83,149,38,80,134,17,8,132,156,112,32,237,207,16,8,86,56,136,222,59,4,2,193,3,28,76,181,140,144,27,86,30,214,203,222,31,66,239,29,2,161,175,107,0,129,208,45,44,71,71,109,9,148,97,125,141,229,105,133,8,148,97,125,142,207,86,210,111,123,65,197,215,40,16,242,193,133,148,81,4,66,31,225,240,2,31,201,164,251,8,209,125,132,178,188,143,208,185,101,186,143,16,221,71,136,64,72,135,35,233,172,31,129,208,215,56,138,106,0,161,231,48,165,203,191,226,61,149,126,21,156,48,228,120,125,102,43,196,107,216,118,141,237,235,189,230,103,242,243,134,66,187,110,67,251,181,1,108,220,163,71,98,26,188,109,246,7,155,65,179,95,237,94,183,246,229,153,225,179,104,222,186,117,70,141,191,102,237,230,56,54,143,163,30,5,159,129,236,91,179,26,230,101,107,188,84,51,87,89,55,20,244,158,182,174,1,158,17,173,227,183,198,24,159,237,235,51,117,175,180,122,248,186,54,158,175,107,242,243,117,52,71,76,182,232,20,153,246,245,18,253,99,70,182,191,218,158,37,173,239,154,215,53,185,210,188,230,216,187,246,117,77,214,196,244,255,79,223,160,52,114,54,173,118,19,142,27,130,207,32,224,52,6,51,182,46,247,209,231,170,170,245,92,223,244,232,215,225,9,69,4,101,88,225,63,5,209,10,17,40,195,8,4,66,78,248,44,157,5,33,16,250,26,199,83,13,32,228,6,58,38,72,32,80,13,32,16,4,232,251,2,244,125,1,250,221,225,254,254,190,0,213,0,170,1,84,3,168,6,80,13,160,26,64,53,128,106,0,213,0,170,1,84,3,168,6,80,13,160,26,64,53,128,238,31,144,14,167,211,185,77,2,33,87,156,145,243,123,240,76,170,1,4,66,95,227,44,170,1,4,2,129,64,32,88,227,115,61,254,255,232,231,105,63,128,64,112,194,23,28,223,67,103,211,123,144,96,141,115,40,123,154,112,46,197,163,167,241,69,235,245,59,141,190,221,77,200,20,148,97,67,131,83,231,12,189,37,129,64,25,70,32,244,2,86,47,185,42,172,213,7,159,19,108,175,19,156,83,146,175,19,12,192,244,58,193,197,6,89,249,58,193,101,1,191,78,112,53,104,92,39,120,109,121,205,193,222,117,229,162,93,39,120,68,242,120,36,164,185,78,240,250,114,253,58,193,51,64,119,157,224,87,64,117,157,224,119,224,66,184,8,190,11,157,174,19,252,37,212,175,19,188,20,220,175,19,188,1,116,215,9,222,54,104,149,254,58,193,71,160,126,157,224,227,144,199,117,130,85,102,122,157,224,159,203,141,235,4,151,103,246,215,9,78,100,221,184,78,240,188,145,216,117,130,7,49,250,157,33,2,161,23,241,21,58,18,169,192,113,113,30,35,13,221,168,250,177,134,210,143,126,95,255,226,207,165,213,158,63,167,28,33,16,210,131,142,7,164,1,125,111,144,190,55,72,223,27,236,239,239,13,190,94,184,223,26,107,253,229,41,250,173,49,250,173,49,31,127,107,236,27,244,91,99,132,156,64,191,53,214,138,111,210,111,141,245,52,236,127,107,236,89,186,130,131,144,41,40,195,8,132,78,248,86,70,255,91,125,155,206,187,17,8,125,129,11,148,239,245,239,56,86,129,11,169,138,244,12,246,152,153,238,53,219,173,122,101,206,253,233,69,177,215,176,119,51,172,183,176,247,204,116,175,217,110,213,43,115,238,79,47,138,189,134,189,155,97,189,133,189,102,166,123,205,118,171,94,153,115,127,122,81,236,53,236,221,12,235,125,76,46,251,61,191,143,11,49,191,176,0,94,68,158,175,52,33,13,118,157,153,238,53,219,173,122,101,206,253,233,69,177,215,176,87,50,172,243,181,194,119,4,245,71,236,187,195,119,6,252,90,225,187,130,0,238,14,238,9,90,175,21,190,55,184,47,168,95,43,124,127,48,26,30,8,26,215,10,63,152,244,31,26,84,77,255,221,225,135,131,73,193,88,120,36,120,52,120,44,120,60,120,34,104,191,86,248,201,224,169,96,60,60,29,164,185,86,120,108,57,205,181,194,207,4,226,90,225,103,19,111,159,11,246,135,231,3,113,173,240,11,65,231,239,14,191,24,188,20,180,94,43,60,147,157,10,102,223,29,126,57,25,243,149,228,239,127,65,243,119,135,95,13,94,11,94,15,222,8,176,107,133,223,12,90,191,59,252,86,240,118,32,174,21,126,39,72,115,173,240,187,65,253,90,225,247,130,27,224,253,160,245,90,225,15,130,155,225,195,64,124,119,248,163,224,118,152,28,212,175,21,254,56,8,131,214,107,133,163,0,251,238,240,148,128,95,43,60,53,120,6,166,5,237,215,10,79,15,116,215,10,207,8,196,181,194,51,3,187,239,14,207,10,154,175,21,190,145,97,215,10,127,18,180,126,119,120,118,160,191,86,120,78,240,233,181,194,129,136,102,251,119,135,161,194,42,117,166,126,173,112,185,178,13,11,42,149,10,126,173,112,181,210,184,86,120,88,165,249,90,225,225,149,116,223,29,30,81,57,150,13,84,70,86,70,85,230,169,156,200,230,173,204,87,153,191,50,186,98,242,59,67,84,3,168,6,80,13,240,185,6,124,48,173,19,226,154,57,147,6,110,214,221,64,171,7,157,61,114,247,57,235,89,167,209,87,109,211,168,1,67,27,249,252,51,33,15,31,116,35,118,195,155,134,70,39,181,94,253,76,76,32,184,226,7,116,29,16,29,15,160,207,2,244,89,128,62,11,228,120,47,177,255,43,92,21,254,17,253,191,64,32,180,96,157,182,111,153,174,219,246,202,56,139,111,162,174,215,149,111,175,30,62,60,174,237,50,68,159,102,190,63,220,212,226,178,79,45,174,64,108,215,183,138,192,6,3,227,7,238,78,233,201,179,201,118,19,20,163,188,145,66,99,114,170,113,130,17,149,17,213,17,186,45,38,14,250,176,225,0,190,82,203,140,48,143,194,248,17,19,70,216,68,175,21,102,185,179,145,197,138,157,63,226,155,70,158,94,210,149,121,245,27,126,76,255,119,247,202,167,239,194,93,207,179,217,12,90,21,31,176,27,29,213,164,149,162,220,233,81,252,104,22,121,148,15,94,156,74,254,20,61,38,67,137,101,166,216,195,205,186,120,240,109,62,230,243,239,70,86,16,138,145,137,13,141,78,106,75,59,32,174,45,61,197,39,248,54,31,243,249,11,244,119,28,252,200,196,134,70,39,181,165,28,16,215,150,154,226,19,124,155,143,249,252,5,250,59,14,126,100,98,67,163,147,218,146,14,136,107,75,78,241,9,190,205,199,124,254,2,253,29,7,63,50,177,161,209,73,109,9,7,196,181,37,166,248,4,223,230,99,62,127,129,254,142,131,31,153,216,208,232,164,182,184,3,226,218,226,83,124,130,111,243,49,159,191,64,127,199,193,143,76,108,104,116,82,91,204,1,113,109,177,41,62,193,183,249,152,207,95,160,191,227,224,71,38,54,52,58,169,45,234,128,184,182,232,20,159,224,219,124,204,231,47,208,223,113,240,35,19,27,26,157,212,22,113,64,92,91,100,138,79,240,109,62,230,243,23,232,239,56,248,145,137,13,141,78,106,11,59,32,174,45,60,197,39,248,54,31,243,249,11,244,119,28,252,200,196,134,70,39,181,133,28,16,215,22,154,226,19,124,155,143,249,252,5,250,59,14,126,100,98,67,163,147,218,130,14,136,107,11,78,241,9,190,205,199,124,254,2,253,29,7,63,50,177,161,209,73,109,1,7,196,181,5,166,248,4,223,230,99,62,127,129,254,142,131,31,153,216,208,232,164,54,218,1,113,109,244,20,159,224,219,124,204,231,47,208,223,113,240,35,19,27,26,157,212,230,119,64,92,155,127,138,79,240,109,62,230,243,23,232,239,56,248,145,137,13,141,78,106,243,57,32,174,205,55,197,39,248,54,31,243,249,11,244,119,28,252,200,196,134,70,39,181,121,29,16,215,230,157,226,19,124,155,143,249,252,5,250,59,14,126,100,98,67,163,147,218,60,14,136,107,243,76,241,9,190,205,103,30,227,249,11,244,215,188,139,184,18,221,212,232,164,54,202,1,113,109,212,20,159,224,219,124,204,231,47,208,223,113,240,35,19,27,26,157,212,70,58,32,174,141,156,226,19,124,155,143,249,252,5,250,59,14,126,100,98,67,163,147,218,128,3,226,218,192,20,159,224,219,124,204,231,47,208,223,113,240,35,19,27,26,157,212,70,56,32,174,141,152,226,19,124,155,143,249,252,5,250,59,14,126,100,98,67,163,147,218,112,7,196,181,225,83,124,130,111,243,49,159,191,64,127,199,193,143,76,108,104,116,82,27,230,128,184,54,108,138,79,240,109,62,230,243,23,232,239,56,248,145,137,13,141,78,106,85,7,196,181,234,20,159,224,219,124,204,231,47,208,223,113,240,35,19,27,26,157,212,42,14,136,107,149,41,62,193,183,249,152,207,95,160,191,227,224,71,38,54,52,58,169,5,14,136,107,193,20,159,224,219,124,204,231,47,208,223,113,240,35,19,27,26,157,212,202,14,136,107,229,41,62,193,183,249,152,207,95,160,191,227,224,71,38,54,52,58,169,49,7,196,53,54,197,39,248,54,31,243,249,11,244,119,28,252,200,196,134,70,39,53,112,64,92,131,41,62,193,183,249,152,207,95,160,191,227,224,71,38,54,52,58,169,149,28,16,215,74,83,124,130,111,243,49,159,191,64,127,199,193,143,76,108,104,116,82,139,35,7,212,156,172,139,7,223,230,99,62,127,129,254,142,131,31,153,88,75,171,54,199,1,113,109,78,228,19,124,155,143,249,252,5,250,59,14,126,100,98,67,163,147,218,108,7,196,181,217,145,79,240,109,62,230,243,23,232,239,56,248,145,137,13,141,78,106,159,56,32,174,125,18,249,4,223,230,99,62,127,129,254,142,131,31,153,216,208,232,164,54,203,1,113,109,86,228,19,124,155,143,249,252,5,250,59,14,126,100,98,67,163,147,218,76,7,196,181,153,145,79,240,109,62,230,243,23,232,239,56,248,145,137,13,141,78,106,51,28,16,215,102,68,62,193,183,249,152,207,95,160,191,227,224,71,38,54,52,58,169,77,119,64,92,155,30,249,4,223,230,99,62,127,129,254,142,131,31,153,216,208,232,164,118,237,84,123,196,53,23,235,226,193,183,249,152,207,95,160,191,227,224,71,38,54,52,58,169,77,141,236,17,215,92,172,139,7,223,230,99,62,127,129,254,142,131,31,153,216,208,232,164,54,197,1,113,109,74,228,19,124,155,143,249,252,5,250,59,14,126,100,98,67,163,147,154,203,191,184,22,121,245,207,183,249,152,207,95,160,191,227,224,71,38,54,52,58,169,77,115,64,92,155,22,249,4,223,230,99,62,127,129,254,142,131,31,153,216,208,232,164,22,58,32,174,133,145,79,240,109,62,230,243,23,232,239,56,248,145,137,13,141,78,106,31,59,32,174,125,28,249,4,223,230,99,62,127,129,254,142,131,31,153,216,208,232,164,54,217,1,113,109,114,228,19,124,155,143,249,252,5,250,59,14,126,100,98,67,163,147,218,71,14,136,107,31,69,62,193,183,249,152,207,95,160,191,227,224,71,38,54,52,58,169,125,232,128,184,246,97,228,19,124,155,143,249,252,5,250,59,14,126,100,98,67,163,147,218,7,14,136,107,31,68,62,193,183,249,152,207,95,160,191,227,224,71,38,54,52,58,169,189,239,128,184,246,126,228,19,124,155,143,249,252,5,250,59,14,126,100,98,67,163,147,218,123,14,136,107,239,69,62,193,183,249,152,207,95,160,191,227,224,71,38,54,52,58,169,189,235,128,184,246,110,228,19,124,155,143,249,252,5,250,59,14,126,100,98,67,163,147,218,59,14,136,107,239,68,62,193,183,249,152,207,95,160,191,227,224,71,38,54,52,58,169,189,237,128,184,246,118,228,19,124,155,143,249,252,5,250,59,14,126,100,98,67,163,147,218,91,14,136,107,111,69,62,193,183,249,152,207,95,160,191,227,224,71,38,54,52,58,169,189,233,128,184,246,102,228,19,124,155,143,249,252,5,250,59,14,126,100,98,67,163,147,218,27,14,136,107,111,68,62,193,183,249,152,207,95,160,191,227,224,71,38,54,52,58,169,189,238,128,184,246,122,228,19,124,155,143,249,252,5,250,59,14,126,100,98,67,163,147,218,107,14,136,107,175,69,62,193,183,249,152,207,95,160,191,227,224,71,38,54,52,58,169,189,234,128,184,246,106,228,19,124,155,143,249,252,5,250,59,14,126,100,98,67,163,147,218,255,28,16,215,254,23,249,4,223,230,99,62,127,129,254,142,131,31,153,216,208,232,164,246,138,3,226,218,43,145,79,240,109,62,230,243,23,232,239,56,248,145,137,13,141,78,106,47,59,32,174,189,28,249,4,223,230,99,62,127,129,254,142,131,31,153,216,208,232,164,246,146,3,226,218,75,145,79,240,109,62,230,243,23,232,239,56,248,145,137,13,141,78,106,75,78,235,132,184,102,206,244,38,58,207,199,125,198,69,142,89,163,6,228,31,233,254,70,55,226,211,208,232,164,246,98,100,143,184,230,98,93,60,248,54,31,243,249,11,244,119,28,252,200,196,134,70,39,181,23,28,16,215,94,136,124,130,111,243,49,159,191,64,127,199,193,143,76,108,104,116,82,123,222,1,113,237,249,200,39,248,54,31,243,249,11,244,119,28,252,200,196,134,70,39,181,231,28,16,215,158,139,124,130,111,243,49,159,191,64,127,199,193,143,76,108,104,116,82,123,214,1,113,237,217,200,39,248,54,31,243,249,11,244,119,28,252,200,196,134,70,39,181,103,28,16,215,158,137,124,130,111,243,49,159,191,64,127,199,193,143,76,108,104,116,82,123,218,1,113,237,233,200,39,248,54,31,243,249,11,244,119,28,252,200,196,134,70,39,181,167,28,16,215,158,138,124,130,111,243,49,159,191,64,127,199,193,143,76,108,104,116,82,123,210,1,113,237,201,200,39,248,54,31,243,249,11,244,119,28,252,200,196,134,70,39,181,39,28,16,215,158,136,124,130,111,243,49,159,191,64,127,199,193,143,76,108,104,116,82,123,220,1,113,237,241,200,39,248,54,31,243,249,11,244,119,28,252,200,196,134,70,39,181,199,28,16,215,30,139,124,130,111,243,49,159,191,64,127,199,193,143,76,108,104,116,82,123,212,1,113,237,209,200,39,248,54,31,243,249,11,244,119,28,252,200,196,134,70,39,181,71,28,16,215,30,137,124,130,111,243,49,159,191,64,127,199,193,143,76,108,104,116,82,91,106,90,39,196,53,115,166,55,209,121,62,238,51,46,114,204,26,53,32,255,72,247,55,186,17,159,134,70,39,181,151,167,218,35,174,189,60,213,39,116,158,143,251,140,139,28,51,233,62,66,94,173,171,143,153,104,162,209,73,237,26,7,196,181,107,166,250,4,223,230,99,62,127,129,254,142,131,31,153,216,208,232,164,118,181,3,226,218,213,83,125,130,111,243,49,159,191,64,127,199,193,143,76,108,104,116,82,187,202,1,113,237,170,169,62,193,183,249,152,207,95,160,191,227,224,71,38,54,52,58,169,93,233,128,184,118,229,84,159,224,219,124,204,231,47,208,223,113,240,35,19,27,26,157,212,26,235,142,97,157,129,214,87,214,109,123,101,220,128,94,3,195,122,22,54,237,56,124,248,98,211,186,161,147,6,223,31,110,106,113,217,167,22,87,32,182,235,91,69,96,131,129,241,3,119,167,244,228,217,100,187,9,138,81,222,72,161,49,57,213,56,193,136,202,136,234,8,221,22,19,7,125,216,80,225,201,50,35,204,163,48,126,196,132,65,171,159,142,28,170,213,175,99,35,139,21,59,127,196,55,141,230,119,201,136,161,156,145,31,248,217,200,254,158,63,129,224,142,133,167,117,130,122,155,52,214,54,186,121,161,179,71,238,62,23,111,214,178,111,233,179,194,223,40,244,70,38,154,104,116,82,123,183,244,94,233,253,210,7,165,15,75,31,149,38,151,62,46,133,165,184,22,149,166,148,166,150,130,82,165,212,200,138,105,165,233,165,25,201,243,153,165,89,165,79,74,179,75,115,74,113,242,172,4,0,12,202,16,64,5,170,16,215,134,193,112,24,1,3,48,18,70,193,60,80,183,155,23,230,131,249,97,52,44,144,60,91,16,22,130,133,97,17,88,52,233,47,54,200,46,14,75,192,146,176,20,44,13,203,192,178,176,28,44,15,43,36,175,175,8,43,193,24,88,25,86,129,85,147,103,171,193,234,176,198,224,214,99,147,199,53,129,251,179,22,172,61,183,183,14,172,11,227,96,61,88,31,54,128,241,201,107,19,146,191,137,176,33,108,4,27,195,38,176,41,108,150,60,223,28,182,128,45,97,171,65,139,173,97,27,248,12,108,59,216,223,46,121,220,30,118,128,29,147,118,167,228,111,103,216,37,121,220,21,118,131,221,97,15,216,19,246,130,189,97,31,216,23,246,27,220,122,255,193,199,3,224,64,56,8,14,134,67,146,103,135,38,127,135,193,236,242,225,112,68,210,59,18,142,130,163,225,24,56,54,233,31,151,252,125,22,142,135,19,6,109,78,76,30,79,130,147,225,148,164,189,190,124,26,156,14,103,192,153,112,22,124,14,62,15,95,128,179,225,28,56,23,190,8,95,130,243,224,203,201,22,53,248,10,124,21,190,6,95,135,111,192,249,240,205,228,149,111,37,127,223,134,11,146,199,239,192,133,112,17,124,23,190,7,223,135,31,192,15,225,255,224,71,240,99,248,9,92,12,63,133,159,205,141,200,207,225,23,240,203,164,127,9,92,154,60,254,10,126,13,191,25,100,46,131,203,225,183,240,187,193,254,21,240,123,248,3,252,17,254,4,87,194,85,112,53,92,3,215,66,99,181,175,131,235,147,103,127,134,191,192,95,225,6,248,27,252,29,254,1,55,194,77,240,79,248,23,252,27,254,3,255,133,155,19,254,22,184,21,110,27,180,186,29,238,72,218,59,147,191,187,224,110,184,7,238,77,122,247,193,253,131,220,3,240,32,60,52,216,123,24,38,193,35,240,40,60,6,143,195,19,240,36,60,5,79,39,175,63,147,252,61,11,207,193,243,240,2,188,8,47,37,207,94,134,87,224,127,240,42,188,6,175,195,27,240,102,242,202,91,240,54,188,3,239,194,123,240,62,124,48,168,245,33,124,148,180,147,225,99,8,33,130,41,73,127,42,76,131,233,48,3,102,194,44,248,4,102,195,28,136,161,196,128,49,86,102,201,103,22,86,97,85,54,140,13,103,35,216,0,27,201,70,177,121,146,87,231,101,243,177,249,217,104,182,64,210,95,144,45,196,22,102,139,36,189,69,217,98,108,113,182,4,91,50,233,47,197,150,102,203,176,101,217,114,108,121,182,2,91,145,173,196,198,36,175,174,204,86,97,171,178,213,216,234,108,13,54,150,173,201,214,98,107,179,117,216,186,108,28,91,143,173,159,240,27,176,241,172,17,205,9,108,34,219,144,109,196,54,102,155,176,77,147,215,55,99,155,179,45,6,249,45,217,86,108,107,182,13,251,76,242,108,91,182,93,242,184,61,219,129,237,152,180,59,177,157,217,46,131,219,236,202,118,99,187,179,61,216,158,131,207,246,98,123,179,125,216,190,108,63,182,63,59,32,121,229,64,118,16,59,152,29,194,14,101,135,13,242,135,15,62,30,193,142,28,108,143,98,71,179,99,146,222,177,236,56,246,89,118,60,59,129,157,200,78,98,39,179,83,216,169,236,52,118,58,59,131,157,201,206,98,234,26,208,188,191,208,90,3,146,215,164,26,16,215,76,107,0,135,92,3,226,26,94,3,226,154,92,3,4,138,84,3,146,200,207,245,37,77,13,56,143,213,107,64,92,211,213,128,184,166,170,1,117,92,148,180,157,106,192,224,167,203,193,71,215,26,16,215,116,53,128,111,159,190,6,196,181,122,13,136,107,121,212,128,36,63,29,106,64,92,179,175,1,201,241,144,204,106,64,92,115,173,1,105,62,47,44,16,155,114,58,11,147,177,58,235,116,99,164,78,26,246,99,184,141,107,27,55,149,110,86,243,112,211,232,174,87,152,62,62,10,127,189,211,172,210,199,82,188,130,175,175,106,166,221,155,125,251,248,221,196,232,216,148,27,29,119,103,172,206,58,221,24,169,147,134,253,24,110,227,218,198,77,165,155,213,60,220,52,186,235,21,166,143,143,194,95,239,52,171,244,177,20,175,224,235,171,154,105,247,102,223,62,126,55,177,96,108,202,45,24,119,103,172,206,58,221,24,169,147,134,253,24,110,227,218,198,77,165,155,213,60,220,52,186,235,21,166,143,143,194,95,239,52,171,244,177,20,175,224,235,171,154,105,247,102,223,62,126,191,96,198,140,126,155,49,129,114,103,232,49,127,108,202,233,44,76,198,234,172,211,141,145,58,105,216,143,225,54,174,109,220,84,186,89,205,195,77,163,187,94,97,250,248,40,252,245,78,179,74,31,75,241,10,190,190,170,153,118,111,246,237,227,247,11,166,83,45,39,80,238,244,53,102,211,58,18,40,119,156,64,215,7,208,245,1,116,125,0,93,31,208,159,24,57,147,254,7,32,80,134,209,126,0,237,7,208,126,0,237,7,16,122,9,151,210,55,37,9,5,217,15,104,124,103,40,174,141,41,7,176,114,121,149,178,106,63,96,213,242,104,88,173,220,216,15,168,191,222,253,239,12,173,94,94,163,156,118,63,96,108,57,205,126,64,82,117,231,238,7,240,145,228,253,128,53,203,205,251,1,216,119,134,234,104,223,15,88,43,213,119,134,226,154,216,15,88,59,137,220,58,201,223,186,229,230,239,12,137,149,193,246,3,226,90,183,190,51,52,174,124,3,172,87,110,222,15,168,111,209,250,157,161,250,99,125,63,96,253,114,167,239,12,197,181,250,119,134,226,154,126,63,32,174,189,154,252,117,222,15,216,160,108,247,157,161,184,150,118,63,96,124,89,254,206,208,132,178,126,63,32,137,64,138,239,12,77,44,111,88,22,251,1,113,109,155,193,109,205,246,3,146,108,100,27,149,211,126,103,8,7,237,7,244,38,126,77,251,1,4,2,161,103,240,27,170,88,4,66,151,113,25,189,171,8,132,190,198,229,84,3,8,132,28,177,82,213,85,97,102,207,28,129,25,83,45,174,111,43,23,216,183,222,67,63,95,31,240,205,169,116,125,0,93,31,64,215,7,244,115,13,216,137,106,0,213,0,170,1,116,110,176,199,240,123,58,30,64,32,244,53,254,64,53,128,64,232,107,252,145,106,0,161,203,160,107,133,233,90,97,186,86,152,174,21,38,244,14,174,164,253,0,2,161,175,113,21,213,0,2,161,175,113,53,213,0,2,129,208,51,184,134,42,22,129,64,32,160,184,150,234,163,119,184,142,214,148,96,128,235,41,95,8,4,2,130,191,80,109,32,100,142,191,82,150,17,12,113,3,229,12,129,64,232,67,252,141,106,31,161,15,64,191,47,64,223,29,166,239,14,211,253,3,154,107,192,159,170,188,6,92,89,189,170,122,117,245,154,234,181,213,235,170,215,87,121,13,248,115,181,253,251,2,245,26,16,64,189,6,252,165,218,92,3,254,90,189,161,218,168,1,127,171,54,106,192,223,171,245,239,11,252,163,138,125,95,224,198,170,92,3,110,170,242,239,11,252,179,250,175,234,88,248,119,117,77,248,79,245,191,213,155,171,170,26,112,75,117,2,220,90,109,174,1,183,85,69,13,184,189,122,71,181,185,6,220,89,229,53,224,174,170,168,1,119,87,241,26,112,79,181,94,3,238,173,54,106,192,125,213,67,225,254,170,248,190,192,3,213,198,247,5,30,172,54,106,192,67,213,122,13,120,184,42,106,192,164,170,254,251,2,143,84,235,223,23,144,107,192,163,213,111,193,99,213,122,13,120,188,218,248,190,0,86,3,158,72,198,122,178,90,175,1,226,251,2,79,85,121,13,120,186,250,76,213,174,6,220,0,120,13,120,182,42,127,95,128,215,128,231,170,162,6,60,95,173,215,128,23,170,47,86,121,13,120,169,250,114,149,127,95,160,94,3,30,7,117,13,120,165,218,90,3,254,87,237,92,3,94,173,234,106,192,107,213,214,239,11,168,107,192,235,213,70,13,120,163,218,168,1,252,251,2,245,26,240,102,85,95,3,222,170,214,107,192,219,115,239,117,244,110,181,249,251,2,239,85,121,13,120,191,250,65,181,81,3,62,172,98,53,224,163,234,228,106,163,6,124,92,13,171,205,53,32,170,202,223,23,152,82,157,90,61,156,77,171,78,175,210,253,3,210,225,95,159,208,94,32,129,50,172,120,120,160,50,84,35,109,250,233,175,193,61,88,25,202,25,62,52,164,163,201,120,56,183,145,85,248,222,128,207,185,188,169,244,123,131,143,39,177,127,162,112,241,231,88,116,102,43,196,107,216,118,205,219,183,90,183,63,151,95,105,237,227,163,171,198,224,91,11,59,254,42,54,3,177,21,174,40,111,223,80,108,182,83,121,213,238,115,195,35,124,126,170,113,244,104,223,162,147,111,205,94,54,143,212,236,5,182,46,173,214,141,232,166,243,83,222,94,30,163,121,36,221,106,235,179,74,157,87,170,236,74,19,211,116,175,154,216,181,242,170,247,24,30,145,214,213,194,183,209,191,227,154,115,84,245,174,109,7,221,63,128,238,31,64,247,15,160,251,7,16,8,217,224,223,116,118,149,208,211,248,15,101,48,129,96,141,99,102,247,155,135,197,159,49,97,104,87,110,168,50,194,117,28,186,70,136,174,17,162,107,132,232,247,5,250,21,19,167,246,231,156,186,51,239,91,70,230,225,59,129,64,112,199,173,5,61,206,113,27,29,127,201,29,199,199,253,228,131,60,210,80,206,92,55,86,39,63,138,176,66,189,188,254,67,21,63,62,142,235,104,173,246,221,81,245,31,63,24,194,79,55,63,161,107,65,9,4,2,129,48,100,184,147,62,45,117,55,158,244,191,56,129,50,140,64,240,2,235,204,233,23,181,252,198,32,16,138,140,187,250,124,31,249,110,167,249,211,53,66,116,141,16,93,35,68,247,17,106,174,1,247,142,44,114,13,88,110,36,213,128,94,170,1,231,150,251,189,6,44,63,114,133,145,116,157,32,161,88,88,121,24,197,128,64,72,254,151,156,73,49,32,80,134,53,131,174,19,204,123,134,116,157,32,93,39,168,246,150,174,19,28,122,60,72,87,100,16,250,0,238,247,18,107,220,91,220,228,152,160,221,189,196,174,45,243,123,137,93,87,46,218,49,65,236,94,98,248,49,193,235,83,221,75,76,117,76,80,127,111,113,30,17,249,222,226,238,199,4,85,247,22,111,190,151,88,218,243,2,157,239,45,158,221,49,193,116,247,22,151,143,9,254,185,140,221,91,220,252,188,64,235,189,196,186,121,76,48,205,189,196,122,251,152,224,195,153,253,95,188,101,156,157,215,147,104,15,130,144,105,134,17,134,6,79,211,59,153,64,32,16,250,2,55,210,89,114,130,37,214,166,187,8,18,114,198,17,85,138,65,86,120,158,62,11,16,8,4,130,3,94,160,42,74,32,16,122,2,253,124,60,128,174,15,160,235,3,232,250,0,186,62,128,208,31,120,153,246,204,9,93,220,15,136,233,254,1,244,221,97,186,127,128,167,247,15,160,26,64,53,128,106,0,213,0,170,1,84,3,168,6,80,13,160,26,64,53,128,106,0,253,222,96,63,225,245,190,57,98,246,134,23,51,125,147,142,112,18,28,113,7,221,253,157,64,25,86,163,235,3,232,250,0,186,62,160,87,174,15,56,111,36,93,31,64,40,18,222,166,125,113,15,65,247,19,204,123,134,116,63,65,186,159,160,218,219,172,238,39,72,231,5,232,188,0,157,23,160,243,2,157,48,113,170,73,85,49,219,218,94,205,117,156,137,83,187,235,169,139,111,221,243,196,118,228,244,118,98,203,247,70,14,181,175,67,53,70,90,155,78,219,13,197,252,134,10,187,25,221,163,96,247,174,222,209,224,98,229,61,58,246,168,102,165,156,165,215,56,246,204,237,46,16,123,205,29,121,239,212,30,236,212,181,227,0,251,14,193,172,247,183,24,227,128,148,54,7,85,243,203,176,161,134,79,245,204,247,121,165,153,83,119,230,253,225,200,206,250,121,238,65,250,152,107,233,84,234,91,117,59,150,31,209,17,96,2,161,175,241,26,221,51,207,43,76,206,184,166,127,60,210,46,115,66,143,255,175,233,206,123,40,157,74,125,171,110,191,103,169,6,248,133,191,5,20,3,250,63,187,1,58,55,152,199,185,193,169,35,233,220,32,157,27,164,239,12,245,62,102,208,113,18,130,7,56,43,110,133,120,13,219,174,177,125,189,215,252,76,126,222,80,104,215,149,181,241,113,49,13,222,54,251,131,205,160,217,175,118,175,91,61,146,71,197,103,33,91,226,246,13,207,112,229,214,113,212,163,224,51,144,125,107,86,195,188,108,141,87,251,204,241,117,111,143,174,222,211,214,53,192,50,162,53,10,237,49,198,103,171,90,63,76,171,83,60,117,249,137,231,136,201,22,250,209,176,245,194,86,164,213,67,213,54,250,108,111,94,115,236,93,139,131,62,11,228,241,89,96,102,159,124,22,248,66,76,159,5,232,179,0,161,120,152,77,159,97,8,116,76,144,190,47,64,199,4,105,63,128,246,3,250,22,48,138,98,64,32,80,13,32,16,210,35,160,156,33,16,188,133,251,189,196,226,218,152,114,0,43,151,87,41,171,142,7,172,90,30,13,171,149,27,199,3,234,175,219,221,75,44,174,173,57,247,19,104,251,241,128,213,203,107,148,211,30,15,24,91,78,115,60,32,249,244,53,247,120,0,31,73,62,30,176,102,185,243,189,196,234,104,63,30,176,86,170,123,137,197,53,113,60,96,237,36,114,235,36,127,235,150,155,239,37,38,86,6,59,30,16,215,186,117,47,177,113,229,27,96,189,114,243,241,128,250,22,173,247,18,171,63,214,143,7,172,95,238,116,47,177,184,86,191,151,88,92,211,31,15,136,107,175,38,127,157,143,7,108,80,182,187,151,88,92,75,123,60,96,124,89,190,151,216,132,178,254,120,64,18,129,20,247,18,155,88,222,176,92,103,234,199,3,226,218,54,131,219,154,29,15,72,178,145,109,84,78,123,47,49,28,248,241,128,170,225,255,248,195,104,15,33,99,12,167,8,19,8,132,20,24,160,90,65,200,24,95,153,97,207,14,189,63,253,16,115,242,138,230,53,180,248,234,12,123,118,232,253,233,135,152,147,87,52,47,66,222,248,50,101,13,161,128,24,153,124,46,28,149,193,103,195,218,12,123,54,11,212,250,224,253,87,204,57,250,26,249,126,200,40,2,129,160,198,188,116,84,181,3,190,54,195,158,29,122,127,250,33,230,228,21,205,171,59,232,173,223,27,212,93,35,212,43,191,55,120,42,208,239,13,246,202,239,13,202,223,25,202,255,247,6,235,207,232,247,6,219,113,70,60,244,150,4,130,79,25,70,251,1,180,31,64,251,1,180,31,208,203,56,61,30,122,75,2,129,50,204,7,236,48,139,98,64,160,12,35,184,96,157,30,93,227,94,245,155,144,13,232,187,195,244,221,97,250,238,112,127,127,119,152,238,39,72,247,19,164,251,9,210,253,4,9,253,133,5,233,138,56,2,125,22,160,207,2,244,89,128,62,11,56,126,22,160,26,64,53,128,106,128,143,247,18,235,39,156,253,9,237,5,18,40,195,146,255,197,62,105,133,120,13,219,174,177,125,189,215,252,76,126,222,80,104,215,149,181,241,113,49,13,222,54,251,131,205,160,217,175,118,175,91,251,242,168,248,44,154,183,110,157,81,227,175,89,187,57,142,237,179,195,71,193,103,32,251,214,172,134,121,217,26,47,213,204,85,214,13,5,189,167,173,107,128,103,68,235,248,173,49,198,103,171,90,63,76,171,83,60,117,249,137,231,136,201,22,157,34,211,190,94,216,138,180,122,168,218,70,159,237,205,107,142,189,107,113,208,181,194,116,173,48,93,43,220,223,215,10,83,13,160,26,64,53,128,190,47,208,159,216,141,174,150,35,80,134,213,122,237,123,131,215,150,249,126,192,117,229,222,221,15,184,190,76,251,1,189,178,31,240,231,50,125,22,160,26,64,53,128,106,0,125,22,176,195,196,169,67,179,31,99,63,206,196,169,157,108,151,160,235,233,60,192,80,101,98,145,70,46,6,78,24,54,52,227,252,204,122,156,211,98,122,127,244,3,78,26,150,215,200,148,97,189,255,63,196,82,180,31,64,232,169,140,37,16,8,126,99,105,250,95,105,136,171,234,50,20,113,66,79,101,44,129,64,240,27,203,102,242,191,82,47,223,67,228,191,131,223,189,26,154,115,131,55,151,77,239,33,114,107,89,156,27,188,173,156,199,61,68,110,47,171,239,33,114,71,185,243,185,193,59,203,233,238,33,114,87,217,229,30,34,119,151,205,207,13,222,83,190,183,220,27,247,16,185,175,124,127,185,248,247,16,161,26,64,53,128,106,64,127,215,128,254,221,175,218,142,174,21,38,80,134,101,136,161,186,62,224,92,186,62,128,160,5,93,31,144,213,241,0,250,222,32,125,111,144,190,55,72,215,10,247,54,118,161,207,2,4,202,176,158,219,15,160,239,12,209,126,0,125,103,136,238,33,66,159,5,168,6,208,103,1,250,44,208,13,236,68,159,5,8,148,97,181,222,190,70,168,72,251,1,220,23,250,157,33,250,157,33,250,157,161,222,193,215,102,210,255,84,4,202,48,218,15,160,253,0,218,15,232,247,253,128,207,126,210,138,36,119,231,182,50,154,57,222,107,126,38,63,111,40,180,235,202,218,248,184,152,6,111,155,253,105,215,104,245,171,221,235,214,190,60,42,62,139,230,173,91,103,212,248,107,214,110,142,99,251,236,240,81,240,25,200,190,53,171,97,94,182,198,75,53,115,149,117,67,65,239,105,235,26,224,25,209,58,126,107,140,241,217,170,214,15,211,234,20,79,93,126,226,57,98,178,69,167,200,180,175,23,182,34,173,30,170,182,209,103,123,243,154,99,239,90,28,39,180,33,174,137,86,70,51,199,123,205,207,228,231,13,133,118,93,89,27,31,23,211,224,109,179,63,237,26,173,126,181,123,221,218,151,71,197,103,209,188,117,235,140,26,127,205,218,205,113,108,159,29,62,10,62,3,217,183,102,53,204,203,214,120,169,102,174,178,110,40,232,61,109,93,3,60,35,90,199,111,141,49,62,91,213,250,97,90,157,226,169,203,79,60,71,76,182,232,20,153,246,245,194,86,164,213,67,213,54,250,108,111,94,115,236,93,139,227,196,54,36,123,174,115,91,25,205,28,239,53,63,147,159,55,20,218,117,101,109,124,92,76,131,183,205,254,180,107,180,250,213,238,117,107,95,30,21,159,69,243,214,173,51,106,252,53,107,55,199,177,125,118,248,40,248,12,100,223,154,213,48,47,91,227,165,154,185,202,186,161,160,247,180,117,13,240,140,104,29,191,53,198,248,108,85,235,135,105,117,138,167,46,63,241,28,49,217,162,83,100,218,215,11,91,145,86,15,85,219,232,179,189,121,205,177,119,45,142,227,219,16,215,68,43,163,153,227,189,230,103,242,243,134,66,187,174,172,141,143,139,105,240,182,217,159,118,141,86,191,218,189,110,237,203,163,226,179,104,222,186,117,70,141,191,102,237,230,56,182,207,14,31,5,159,129,236,91,179,26,230,101,107,188,84,51,87,89,55,20,244,158,182,174,1,158,17,173,227,183,198,24,159,173,106,253,48,173,78,241,212,229,39,158,35,38,91,116,138,76,251,122,97,43,210,234,161,106,27,125,182,55,175,57,246,174,197,65,191,59,76,191,59,76,191,59,76,191,61,78,53,128,106,0,213,0,250,237,241,254,195,185,244,219,227,4,202,176,26,125,103,136,190,51,68,223,23,160,239,12,81,13,160,26,64,53,160,23,106,192,121,35,233,59,67,67,141,177,116,111,113,66,31,128,174,21,166,107,133,233,90,225,254,190,86,152,106,0,213,0,170,1,244,189,193,254,68,141,206,11,16,40,195,232,179,0,237,7,208,126,0,125,22,160,26,64,53,128,106,0,125,22,232,75,156,71,159,5,8,148,97,244,89,128,246,3,104,63,128,62,11,80,13,160,26,64,53,128,62,11,244,48,54,30,160,125,78,130,29,214,163,107,192,232,179,64,110,251,1,235,143,162,253,0,218,15,160,253,128,116,120,221,200,195,249,165,202,181,239,12,183,145,23,46,229,63,123,215,57,224,88,186,148,253,24,121,96,149,174,172,216,218,93,94,247,245,74,89,228,194,4,141,234,196,185,220,134,5,200,224,98,227,13,111,114,159,64,25,70,159,5,232,152,32,125,22,160,207,2,190,126,22,200,14,203,208,245,1,4,202,48,218,15,160,253,0,218,15,160,253,128,190,173,210,75,208,126,0,129,50,140,246,3,104,63,128,246,3,104,63,160,111,171,244,138,180,31,64,160,12,163,253,0,218,15,160,253,0,218,15,232,219,42,189,52,237,7,16,40,195,104,63,128,246,3,104,63,128,246,3,250,182,74,175,64,251,1,4,202,176,190,198,24,90,33,2,101,88,95,99,37,90,33,2,101,88,141,142,7,208,241,0,58,30,64,199,3,250,21,203,210,126,0,129,50,204,3,108,74,247,130,33,88,98,51,202,157,46,226,213,217,121,169,219,114,50,139,245,76,61,235,108,153,109,140,138,153,7,246,145,29,138,104,166,209,112,25,103,232,87,60,207,28,123,101,118,94,234,182,156,204,98,61,83,207,58,91,190,210,7,53,160,117,142,246,145,29,138,104,166,209,112,25,103,232,87,220,110,68,58,38,72,199,4,233,152,32,29,19,236,101,208,241,0,130,45,182,160,220,33,100,128,45,41,175,50,196,86,93,138,238,214,29,116,182,233,234,42,126,166,224,57,209,235,159,5,78,153,106,255,89,224,148,169,221,252,44,112,202,212,34,124,22,168,123,65,159,5,122,225,179,64,125,165,232,119,134,186,81,3,14,113,168,1,135,116,181,6,28,82,136,26,112,8,213,128,30,169,1,135,20,166,6,248,176,135,184,61,237,127,19,186,142,29,250,38,171,108,247,3,230,148,228,253,128,0,76,247,3,22,27,100,229,253,128,101,1,223,15,88,13,228,253,128,53,231,254,207,35,246,3,182,118,216,15,216,186,139,251,1,71,192,214,83,143,132,52,251,1,167,66,125,63,224,12,208,237,7,124,5,84,251,1,223,129,11,225,34,248,46,168,246,3,182,158,187,31,240,75,168,239,7,92,10,238,251,1,55,128,110,63,224,182,65,171,244,251,1,143,64,125,63,224,113,200,99,63,160,202,92,246,3,150,103,246,251,1,19,89,251,126,192,214,93,218,15,56,136,245,251,103,129,229,28,106,192,114,93,253,44,176,92,33,62,11,44,71,159,5,122,228,179,192,114,244,89,160,75,88,118,106,62,182,89,171,245,174,23,59,211,39,179,30,202,23,151,207,2,69,217,15,120,119,138,253,126,192,187,83,186,185,31,240,238,148,34,236,7,212,189,160,253,128,94,216,15,168,175,84,111,159,23,40,202,241,128,231,29,106,192,243,83,186,121,60,224,249,41,69,56,30,240,252,20,58,30,208,27,199,3,158,159,210,235,199,3,138,82,3,110,118,168,1,55,119,181,6,220,92,136,26,112,51,213,128,30,169,1,55,247,124,13,40,202,103,129,155,28,106,192,77,93,253,44,112,83,33,62,11,220,68,159,5,122,228,179,192,77,61,255,89,160,40,53,224,175,14,53,224,175,93,173,1,127,45,68,13,248,43,213,128,30,169,1,127,165,26,208,165,26,64,223,27,164,239,13,210,247,6,251,187,6,92,236,176,31,112,113,87,247,3,46,46,196,126,192,197,180,31,208,35,53,224,98,218,15,232,82,13,184,208,161,6,92,216,213,26,112,97,33,106,192,133,84,3,122,164,6,92,88,152,26,64,215,106,16,8,121,96,63,186,150,170,75,152,119,160,40,158,148,232,46,178,4,202,151,28,48,80,152,72,22,199,19,90,29,138,77,63,225,220,97,182,150,207,206,202,210,175,253,105,79,175,239,145,109,134,169,113,0,229,158,35,14,178,140,224,138,133,188,111,240,193,148,15,132,14,160,235,3,232,250,128,44,207,11,156,91,166,243,2,189,113,95,225,195,233,127,139,22,28,65,17,241,26,71,26,173,239,81,148,13,94,226,119,51,40,6,221,194,49,244,30,233,225,12,251,231,84,21,26,91,52,182,211,109,111,194,54,171,234,84,58,123,216,217,143,214,145,155,189,104,237,167,241,10,215,80,189,170,143,75,231,145,58,249,134,71,68,31,57,221,138,219,249,139,175,68,186,204,233,60,255,78,35,218,100,166,217,74,167,223,162,225,31,150,29,205,172,126,102,186,76,86,191,87,68,174,164,141,249,77,74,136,124,224,61,241,218,77,90,139,180,108,179,170,78,69,167,41,252,235,228,71,235,200,205,94,180,246,211,120,133,107,168,94,213,199,165,243,72,157,124,195,35,162,143,156,110,197,237,252,197,87,34,93,230,116,158,127,167,17,109,50,211,108,165,211,111,209,240,15,203,142,102,86,63,51,93,38,171,223,43,34,87,210,198,124,193,105,157,144,28,45,49,102,218,183,75,187,173,29,186,163,222,89,197,117,38,245,117,201,50,14,182,243,228,175,200,251,135,217,142,223,172,175,26,109,40,99,37,34,144,231,42,216,204,28,223,146,231,169,224,58,189,131,183,154,209,138,101,203,188,21,217,192,123,226,181,246,237,27,72,207,54,171,234,84,116,154,194,191,78,126,52,158,47,87,110,247,162,181,159,198,43,92,67,245,170,62,46,157,71,234,228,27,30,17,125,228,212,214,170,117,233,164,133,175,68,186,204,233,60,255,78,35,218,100,166,217,74,167,223,162,225,31,150,29,205,172,126,102,234,76,214,189,87,68,174,164,141,121,231,115,131,119,4,216,185,193,250,125,132,238,12,248,185,193,187,130,0,238,14,238,9,90,207,13,222,27,220,23,212,207,13,222,31,140,134,7,130,198,185,193,7,147,254,67,65,235,185,65,253,125,132,30,14,38,5,99,225,145,224,209,224,177,224,241,224,137,160,253,220,224,147,193,83,193,120,120,58,72,115,110,112,108,57,205,185,193,103,2,113,110,240,217,196,219,231,130,253,225,249,64,156,27,124,33,104,189,143,80,114,172,185,229,62,66,47,6,47,5,173,231,6,103,50,211,251,8,189,156,140,249,74,242,247,191,160,249,62,66,175,6,175,5,175,7,111,4,216,185,193,55,131,214,251,8,189,21,188,29,136,115,131,239,4,105,206,13,190,27,212,207,13,190,23,220,0,239,7,173,231,6,63,8,110,134,15,3,113,31,161,143,130,219,97,114,80,63,55,248,113,16,6,173,223,25,138,2,236,62,66,83,2,126,110,112,106,240,12,76,11,218,207,13,78,15,116,231,6,103,4,226,220,224,204,192,238,62,66,179,130,230,115,131,55,50,236,220,224,39,65,235,125,132,102,7,250,115,131,115,130,79,207,13,6,141,115,131,173,247,17,130,10,171,136,115,131,229,202,54,44,168,84,42,248,185,193,106,165,113,110,112,88,165,249,220,224,240,74,186,251,8,141,168,28,203,6,42,35,43,163,42,243,84,78,100,243,86,230,171,204,95,25,93,49,249,222,32,213,128,94,170,1,143,14,235,159,26,112,252,40,170,1,221,168,1,225,180,78,136,107,230,76,251,118,237,219,166,181,78,59,130,187,85,103,21,124,38,38,35,118,115,214,182,145,80,173,133,124,60,32,91,31,155,245,85,163,101,29,43,44,2,67,61,162,235,204,241,45,121,158,10,174,211,59,248,227,142,136,107,230,76,251,118,237,219,166,181,254,216,201,71,19,171,206,42,248,76,76,70,236,230,172,109,35,161,90,11,185,6,100,235,99,179,190,106,180,172,99,133,69,96,168,71,116,157,57,190,37,207,83,193,117,122,7,235,175,30,88,167,237,155,185,235,182,189,50,206,226,219,187,235,117,229,27,191,135,15,31,186,235,40,190,111,60,214,101,159,90,92,129,216,174,111,21,129,13,6,198,15,220,157,210,147,103,147,237,38,40,70,121,35,133,198,228,84,227,4,35,42,35,170,35,116,91,76,28,244,97,67,133,39,203,140,48,143,194,248,17,19,70,216,68,207,13,27,89,172,216,249,35,190,105,228,233,37,78,243,90,110,90,111,92,147,68,32,16,178,193,201,150,87,107,210,49,65,58,47,64,231,5,232,188,0,213,0,170,1,84,3,250,183,6,208,30,84,255,225,12,250,134,15,129,144,27,102,82,213,37,16,168,6,16,8,5,66,52,173,19,212,219,164,177,22,219,181,111,155,214,58,237,8,238,86,157,85,240,153,152,140,216,205,89,219,70,66,181,22,102,121,209,189,40,168,70,203,58,86,88,4,134,122,68,215,153,227,91,242,60,21,92,167,119,176,31,149,236,115,61,242,9,247,243,137,159,95,40,160,175,103,183,248,116,206,144,250,120,110,1,34,114,227,224,254,217,23,251,236,72,201,151,6,231,75,231,5,232,188,0,157,23,160,115,131,84,3,168,6,80,13,160,26,64,53,128,106,128,191,53,224,107,163,176,26,48,48,13,171,1,107,151,186,91,3,214,43,101,81,3,46,9,212,53,96,98,137,215,128,13,75,84,3,168,6,80,13,160,253,0,170,1,84,3,168,6,152,237,7,80,13,160,26,64,53,128,246,3,168,6,80,13,160,26,64,53,128,190,47,64,160,235,4,9,4,2,213,0,66,191,99,234,52,155,87,108,116,109,189,115,81,154,81,198,94,61,101,134,206,99,153,61,101,70,186,57,98,62,154,248,221,24,103,234,180,58,180,53,166,220,28,29,253,108,220,215,72,229,145,236,51,127,180,247,4,27,179,27,249,115,75,144,117,206,154,122,218,186,245,41,5,248,181,178,226,223,75,108,143,33,186,218,153,238,37,134,163,151,239,37,246,19,163,43,131,139,127,47,177,126,197,197,244,93,120,2,193,9,187,79,239,4,245,54,105,172,197,118,237,219,166,181,78,59,130,187,85,103,21,124,38,38,35,118,115,214,182,145,80,173,133,89,94,116,47,10,170,209,178,142,21,22,129,161,30,177,25,151,140,48,157,57,190,37,207,83,193,117,122,7,211,185,65,58,55,72,231,6,251,251,220,224,230,211,59,33,121,7,73,207,214,29,104,101,198,13,164,81,104,86,89,111,160,245,21,27,28,62,28,247,49,45,90,173,116,42,223,31,142,207,68,141,203,62,245,238,10,201,79,97,189,254,128,141,199,252,120,64,186,57,61,155,108,55,97,0,223,230,141,225,152,149,188,31,176,249,244,201,195,211,120,196,143,7,232,182,152,56,208,62,126,195,203,101,70,168,35,170,122,189,126,60,192,53,119,240,177,116,107,187,145,197,138,213,143,7,164,205,190,58,46,25,97,154,207,248,150,60,79,5,167,86,227,204,102,29,145,212,45,233,217,186,3,173,204,184,129,52,10,205,42,235,13,180,190,98,131,195,135,227,62,166,69,171,149,78,229,251,195,241,153,168,113,217,167,222,93,33,249,41,172,215,31,176,241,152,215,128,116,115,122,54,217,110,194,0,190,205,27,195,49,43,185,6,108,150,212,128,52,30,241,26,160,219,98,226,64,251,248,13,47,151,25,161,142,168,234,245,122,13,112,205,29,124,44,221,218,110,100,177,98,245,26,144,54,251,234,184,100,132,105,62,227,91,242,60,21,156,90,141,51,244,89,128,62,11,208,103,1,186,86,88,95,3,56,90,107,64,242,90,242,199,107,64,57,89,129,10,84,161,181,6,212,237,234,53,96,126,24,13,11,64,163,6,44,250,105,182,201,53,32,174,225,53,32,174,213,107,64,189,29,43,101,105,189,6,252,183,44,215,128,245,97,3,24,159,108,145,166,6,124,6,210,212,128,61,65,212,128,253,224,230,100,172,253,7,109,120,13,56,24,154,107,0,247,74,174,1,183,150,63,11,199,67,189,6,220,86,110,212,128,184,118,30,171,215,128,184,166,171,1,113,173,81,3,190,153,60,251,86,242,247,109,184,96,238,40,23,37,237,247,224,251,240,3,248,33,252,31,96,53,224,23,73,239,246,242,37,131,207,121,13,24,60,91,57,183,6,36,117,189,220,185,6,220,89,174,215,128,191,38,175,254,13,90,107,192,127,225,230,228,245,122,13,136,107,119,37,145,185,29,238,128,122,13,72,158,65,107,13,120,0,228,26,16,215,234,53,32,174,61,1,188,6,220,93,126,38,121,214,94,3,254,7,234,26,112,79,249,222,178,168,1,31,67,250,26,144,228,231,167,53,96,20,107,174,1,73,118,34,53,32,174,53,106,64,92,171,215,128,149,152,190,6,172,199,62,173,1,201,140,239,43,223,95,174,215,128,228,220,104,83,13,216,156,109,193,68,13,216,154,109,195,62,147,60,195,107,64,146,141,159,214,128,250,51,185,6,28,192,234,53,32,174,117,170,1,113,237,88,118,28,251,44,59,158,157,192,78,100,39,177,147,217,41,236,84,70,223,23,160,253,0,218,15,216,129,190,55,56,88,3,102,78,235,132,228,125,111,204,180,111,215,190,109,90,235,180,35,152,99,70,217,84,5,159,137,137,159,221,156,53,138,178,77,180,248,43,77,215,27,102,232,99,171,190,106,180,204,99,133,68,96,168,71,116,157,57,190,37,207,83,193,117,122,7,251,182,31,144,238,179,64,127,239,7,252,106,84,154,253,128,95,143,210,239,7,240,207,2,183,13,90,13,245,126,192,111,70,185,238,7,92,54,170,55,142,7,200,159,5,178,218,15,216,99,122,39,196,53,115,166,125,187,246,109,211,90,167,29,193,221,170,179,10,62,19,147,17,187,57,107,219,72,168,214,66,222,15,200,214,199,102,125,213,104,89,199,10,139,192,80,143,216,140,75,70,152,206,28,223,146,231,169,224,58,189,131,233,120,0,29,15,232,215,227,1,191,31,69,199,3,232,152,32,213,0,58,38,72,53,128,106,0,213,0,186,62,128,106,64,183,106,192,213,163,250,185,6,92,51,170,24,53,224,218,81,84,3,122,163,6,92,55,138,238,37,54,244,248,43,125,211,184,107,184,129,98,73,32,244,40,150,46,81,12,8,13,208,241,0,58,30,64,159,5,232,190,194,4,2,142,127,208,254,62,237,7,244,220,126,0,93,39,216,173,235,4,227,90,119,174,19,108,254,206,80,235,126,64,92,179,217,15,136,107,116,157,32,157,27,164,207,2,244,89,128,62,11,248,252,89,96,233,129,236,180,151,25,40,230,156,9,4,2,161,104,248,15,29,15,160,227,1,244,89,128,62,11,208,103,1,250,44,64,159,5,8,4,143,49,101,90,39,168,183,73,99,45,182,107,223,54,173,117,218,17,204,49,163,108,170,130,207,196,196,207,110,206,26,195,204,178,77,180,248,43,102,121,209,189,40,168,70,203,58,86,88,4,134,122,68,215,153,227,91,242,60,21,92,167,119,240,164,169,157,16,215,204,153,246,237,218,183,77,107,157,118,4,119,171,206,42,248,76,76,70,236,230,172,109,35,161,90,11,185,6,100,235,99,179,190,106,180,172,99,133,69,96,168,71,116,157,57,190,37,207,83,193,117,122,7,63,214,17,113,205,156,105,223,174,125,219,180,214,143,57,249,104,98,213,89,5,159,137,201,136,221,156,181,109,36,84,107,33,215,128,108,125,108,214,87,141,150,117,172,176,8,12,245,136,174,51,199,183,228,121,42,184,78,239,96,250,52,52,180,160,223,30,39,20,13,251,79,239,4,245,54,105,172,197,118,237,219,166,181,78,131,29,42,54,86,173,30,116,246,8,159,73,122,236,88,233,230,172,109,215,164,125,155,157,43,252,117,129,93,42,217,250,216,236,129,202,231,172,99,213,62,214,174,149,161,30,209,117,230,248,150,60,79,5,167,86,219,173,226,234,43,213,0,170,1,84,3,122,191,6,20,125,63,101,82,228,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,189,203,184,238,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,228,25,233,44,240,112,228,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,195,81,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,60,236,89,13,120,40,114,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,254,161,40,207,117,83,197,164,24,89,148,181,71,238,250,166,10,60,83,30,242,172,6,60,24,185,241,230,150,122,69,153,21,125,222,98,12,206,218,120,106,107,255,96,148,231,186,169,98,82,140,44,202,218,35,119,125,83,5,158,41,15,122,86,3,30,136,220,120,115,75,189,162,204,138,62,111,49,6,103,109,60,181,181,127,32,202,115,221,84,49,41,70,22,101,237,145,187,190,169,2,207,148,7,60,171,1,247,71,110,188,185,165,94,81,102,69,159,183,24,131,179,54,158,218,218,223,31,229,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,253,158,213,128,251,34,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,239,139,242,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,229,62,207,106,192,189,145,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,247,70,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,114,175,103,53,224,158,200,141,55,183,212,43,202,172,232,243,22,99,112,214,198,83,91,251,123,162,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,185,199,179,26,112,119,228,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,221,81,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,220,237,89,13,184,43,114,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,254,174,40,207,117,83,197,164,24,89,148,181,71,238,250,166,10,60,83,238,242,172,6,220,25,185,241,230,150,122,69,153,21,125,222,98,12,206,218,120,106,107,127,103,148,231,186,169,98,82,140,44,202,218,35,119,125,83,5,158,41,119,122,86,3,238,136,220,120,115,75,189,162,204,138,62,111,49,6,103,109,60,181,181,191,35,202,115,221,84,49,41,70,22,101,237,145,187,190,169,2,207,148,59,60,171,1,183,71,110,188,185,165,94,81,102,69,159,183,24,131,179,54,158,218,218,223,30,229,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,237,158,213,128,219,34,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,111,139,242,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,197,212,170,232,247,22,191,53,210,223,91,252,214,200,246,222,226,183,70,248,189,197,111,141,116,247,22,191,53,106,220,91,252,214,136,223,91,252,214,168,126,111,241,91,163,198,189,197,111,141,26,247,22,175,143,115,98,242,104,127,111,241,91,163,87,146,63,187,123,139,223,26,229,115,111,241,91,163,250,189,197,235,115,23,247,22,191,53,202,239,222,226,183,70,216,189,197,111,141,178,189,183,248,173,115,223,139,246,247,22,191,53,50,187,183,120,146,137,137,205,173,145,95,191,57,122,75,228,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,45,81,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,220,226,188,31,240,167,42,223,15,184,178,122,85,245,234,234,53,213,107,171,215,85,175,175,242,253,128,63,87,229,253,128,184,198,247,3,202,16,64,5,170,240,151,106,243,126,192,95,171,55,84,235,251,1,243,195,104,88,0,254,86,21,251,1,139,194,223,171,139,37,149,251,31,85,108,63,224,198,170,188,31,112,83,149,239,7,252,179,250,175,234,88,248,119,117,77,248,79,245,191,213,155,171,237,191,49,178,62,108,0,227,225,150,234,4,184,181,218,188,31,112,91,85,236,7,220,94,189,163,90,223,15,248,12,136,223,24,185,179,202,247,3,238,170,138,253,128,187,171,98,63,96,79,16,251,1,251,37,220,61,213,253,147,199,123,171,124,63,224,96,56,4,238,171,30,10,247,87,197,111,140,60,80,109,236,7,60,88,173,239,7,124,22,142,135,19,224,161,106,125,63,224,225,42,223,15,136,107,147,170,250,253,128,71,170,205,251,1,223,132,71,171,223,130,199,170,223,134,11,224,241,106,99,63,224,251,240,3,248,33,252,31,200,251,1,79,36,99,61,89,253,57,252,2,196,126,192,83,85,190,31,240,116,245,153,170,216,15,168,207,60,237,111,142,254,21,110,128,191,65,235,126,192,127,225,102,120,182,42,255,230,232,29,80,223,15,120,174,122,23,240,253,128,231,171,245,253,128,23,170,47,86,249,111,142,190,84,125,185,42,239,7,60,1,141,223,28,141,107,242,126,192,43,213,250,126,192,255,160,177,31,240,191,170,250,55,71,63,6,190,31,240,106,85,183,31,240,90,181,117,63,96,20,107,254,141,145,100,47,117,238,126,192,235,213,198,126,192,27,213,214,253,128,149,216,24,246,102,85,189,31,176,30,91,159,189,85,173,239,7,188,93,157,251,14,171,54,239,7,188,87,221,140,109,206,182,96,239,87,63,168,214,247,3,182,102,219,176,207,176,15,171,216,126,192,71,213,201,213,198,126,192,199,213,176,42,239,7,28,192,162,170,188,31,48,165,58,181,122,56,155,86,157,94,109,222,15,136,107,199,178,227,216,103,217,241,236,4,118,34,59,137,157,204,78,97,167,178,222,217,15,184,57,114,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,254,230,40,207,117,83,197,164,24,89,148,181,71,238,250,166,10,60,83,110,246,236,152,224,127,35,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,255,27,229,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,127,61,171,1,255,137,220,120,115,75,189,162,204,138,62,111,49,6,103,109,60,181,181,255,79,148,231,186,169,98,82,140,44,202,218,35,119,125,83,5,158,41,255,241,172,6,252,59,114,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,254,223,81,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,252,219,179,26,240,175,200,141,55,183,212,43,202,172,232,243,22,99,112,214,198,83,91,251,127,69,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,242,47,207,106,192,63,35,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,255,25,229,185,110,170,152,20,35,139,178,246,72,173,127,231,168,108,86,143,103,202,63,61,171,1,55,69,110,188,185,165,94,81,102,69,159,183,24,131,179,54,158,218,218,223,20,229,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,77,158,213,128,27,35,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,111,140,242,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,229,70,207,106,192,63,34,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,255,17,229,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,63,60,171,1,127,143,220,120,115,75,189,162,204,138,62,111,49,6,103,109,60,181,181,255,123,148,231,186,169,98,82,140,44,202,218,35,119,125,83,5,158,41,127,247,172,6,252,45,114,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,254,111,81,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,252,205,179,26,112,67,228,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,13,81,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,220,224,89,13,248,107,228,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,95,163,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,49,181,26,61,173,21,226,181,198,22,141,237,238,26,213,190,125,187,101,103,182,89,85,167,242,151,72,167,24,215,90,121,174,172,82,148,199,252,75,36,111,219,232,227,35,138,237,100,182,222,175,191,206,95,195,152,198,56,186,121,116,138,98,221,150,219,235,35,44,214,76,214,209,207,6,179,86,173,139,46,79,84,235,198,231,206,217,180,17,104,31,93,181,158,173,25,165,6,62,182,73,108,76,182,184,123,84,99,229,219,163,217,26,55,221,204,26,241,211,71,66,142,241,95,34,145,43,233,214,81,94,247,98,226,207,145,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,127,142,242,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,229,207,158,125,22,184,62,114,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,254,250,40,207,117,83,197,164,24,89,148,181,71,238,250,166,10,60,83,174,247,172,6,92,23,185,241,230,150,122,69,153,21,125,222,98,12,206,218,120,106,107,127,93,148,231,186,169,98,82,140,44,202,218,35,119,125,83,5,158,41,215,121,86,3,174,141,220,120,115,75,189,162,204,138,62,111,49,6,103,109,60,181,181,191,54,202,115,221,84,49,41,70,22,101,237,145,187,190,169,2,207,148,107,61,171,1,215,68,110,188,185,165,94,81,102,69,159,183,24,131,179,54,158,218,218,95,19,229,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,53,158,213,128,171,35,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,175,142,242,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,229,106,207,106,192,85,145,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,87,69,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,114,149,103,53,224,202,200,141,55,183,212,43,202,172,232,243,22,99,112,214,198,83,91,251,43,163,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,185,210,179,26,240,167,200,141,55,183,212,43,202,172,232,243,22,99,112,214,198,83,91,251,63,69,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,242,39,207,106,192,31,35,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,255,24,229,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,31,61,171,1,127,136,220,120,115,75,189,162,204,138,62,111,49,6,103,109,60,181,181,255,67,148,231,186,169,98,82,140,44,202,218,35,119,125,83,5,158,41,127,240,172,6,252,62,114,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,254,247,81,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,252,222,179,26,112,69,228,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,21,81,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,92,225,89,13,248,93,228,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,239,162,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,249,157,103,53,224,183,145,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,191,141,242,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,229,183,158,213,128,203,35,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,47,143,242,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,229,114,207,106,192,101,145,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,151,69,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,114,153,103,53,224,55,145,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,191,137,242,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,229,55,158,213,128,95,71,110,188,185,165,94,81,102,69,159,183,24,131,179,54,158,218,218,255,58,202,115,221,84,49,41,70,22,101,237,145,187,190,169,2,207,148,95,123,86,3,126,21,185,241,230,150,122,69,153,21,125,222,98,12,206,218,120,106,107,255,171,40,207,117,83,197,164,24,89,148,181,71,238,250,166,10,60,83,126,229,89,13,184,52,114,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,254,210,40,207,117,83,197,164,24,89,148,181,71,238,250,166,10,60,83,46,245,172,6,92,18,185,241,230,150,122,69,153,21,125,222,98,12,206,218,120,106,107,127,73,148,231,186,169,98,82,140,44,202,218,35,119,125,83,5,158,41,151,120,86,3,126,25,185,241,230,150,122,69,153,21,125,222,98,12,206,218,120,106,107,255,203,40,207,117,83,197,164,24,89,148,181,71,238,250,166,10,60,83,76,173,222,45,189,87,122,191,244,65,233,195,210,71,165,201,165,143,75,97,41,174,69,165,41,165,169,165,230,237,166,149,166,151,102,36,175,205,44,205,42,125,82,154,93,103,147,191,18,0,48,40,67,92,171,64,53,121,28,6,195,97,4,12,192,72,24,5,243,64,221,110,94,152,15,230,135,209,176,64,242,108,65,88,8,22,134,69,96,81,16,170,139,195,18,176,36,44,5,75,195,50,201,107,203,193,242,176,66,210,174,8,43,193,24,88,25,86,129,85,225,23,201,124,86,135,53,6,45,198,66,195,159,181,96,237,193,103,191,136,214,129,117,97,28,172,7,235,195,6,48,62,121,109,66,242,55,17,54,132,141,96,99,216,4,54,133,205,146,231,155,195,22,176,37,108,53,104,177,53,108,3,159,129,109,7,149,183,75,94,217,30,118,128,29,147,118,167,228,111,103,216,37,121,125,87,216,13,118,135,61,96,79,216,11,246,134,125,96,95,216,111,208,114,127,168,143,119,0,28,8,7,193,193,112,72,178,229,161,201,43,135,37,237,225,131,76,92,59,10,142,134,99,224,216,228,149,227,146,87,62,11,199,195,9,131,227,156,152,60,158,4,39,195,41,201,171,231,177,211,224,244,164,61,19,206,130,207,193,231,225,11,112,54,156,3,231,194,23,225,75,112,30,124,57,97,106,201,223,87,225,107,240,117,248,6,156,15,223,76,108,191,149,252,125,27,46,152,59,255,139,146,246,123,240,125,248,1,252,16,254,15,126,4,63,134,159,192,197,240,83,248,217,92,254,231,240,139,193,222,37,131,94,253,10,126,13,191,25,124,126,25,92,14,191,133,223,13,246,175,128,223,195,31,224,143,240,39,184,18,174,130,171,225,26,184,86,138,238,117,112,125,242,236,207,240,23,248,107,210,254,13,254,14,255,128,27,225,38,248,39,252,11,254,13,255,129,255,194,205,201,235,183,192,173,115,109,110,135,59,146,222,157,201,223,93,112,55,220,3,247,38,254,222,7,247,15,206,253,1,120,16,30,26,244,228,97,152,148,180,143,194,99,201,227,19,240,36,60,5,79,39,189,103,146,191,103,225,57,120,30,94,128,23,225,165,228,217,203,240,10,252,15,94,133,215,224,117,120,3,222,76,94,121,11,222,134,119,224,93,120,15,222,135,15,6,199,252,16,62,74,218,201,240,49,132,16,193,148,164,63,21,166,193,116,152,1,51,97,22,124,2,179,97,14,196,80,98,192,24,43,179,95,68,1,171,176,36,63,217,112,54,130,13,176,145,108,20,155,39,121,117,94,54,31,155,159,141,102,11,36,220,130,108,33,182,48,91,36,233,45,202,22,99,139,179,37,216,146,73,127,41,182,52,91,134,45,203,150,75,250,43,176,21,217,74,108,76,210,91,153,173,194,86,101,171,177,213,217,26,108,44,91,147,173,197,214,102,235,176,117,217,56,182,30,91,63,225,55,96,227,25,207,136,58,38,36,253,13,217,70,108,99,182,9,219,52,233,111,198,54,103,91,176,58,179,37,219,138,109,205,182,97,159,73,158,109,203,182,75,30,183,103,59,176,29,147,118,39,182,51,219,133,213,21,118,101,187,177,221,217,30,108,207,65,139,189,216,222,108,31,182,47,219,143,237,207,14,72,94,57,48,249,59,152,29,194,14,101,135,13,142,120,120,98,243,139,232,8,118,228,224,214,71,177,163,217,49,73,239,88,118,28,251,44,59,158,157,192,78,100,39,177,147,217,41,236,84,118,26,59,157,157,193,206,100,103,177,162,239,7,252,60,114,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,254,231,81,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,252,220,179,207,2,63,139,220,120,115,75,189,162,204,138,62,111,49,6,103,109,60,181,181,255,89,148,231,186,169,98,82,140,44,202,218,35,119,125,83,5,158,41,63,243,172,6,252,52,114,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,254,167,81,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,252,212,179,26,112,113,228,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,197,81,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,92,236,89,13,248,73,228,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,79,162,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,249,137,103,53,224,199,145,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,63,142,242,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,229,199,158,213,128,31,69,110,188,185,165,94,81,102,69,159,183,24,131,179,54,158,218,218,255,40,202,115,221,84,49,41,70,22,101,237,145,187,190,169,2,207,148,31,121,86,3,254,47,114,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,254,255,162,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,249,63,207,106,192,15,35,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,127,24,229,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,15,61,171,1,63,136,220,120,115,75,189,162,204,138,62,111,49,6,103,109,60,181,181,255,65,148,231,186,169,98,82,140,44,202,218,35,119,125,83,5,158,41,63,240,172,6,124,63,114,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,254,251,81,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,124,223,179,26,240,189,200,141,55,183,212,43,202,172,232,243,22,99,112,214,198,83,91,251,239,69,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,242,61,207,106,192,119,35,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,191,27,229,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,119,61,171,1,23,69,110,188,185,165,94,81,102,69,159,183,24,131,179,54,158,218,218,95,20,229,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,69,158,213,128,11,35,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,47,140,242,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,229,66,207,106,192,119,34,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,191,19,229,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,119,60,171,1,23,68,110,188,185,165,94,81,102,69,159,183,24,131,179,54,158,218,218,95,16,229,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,5,158,213,128,111,71,110,188,185,165,94,81,102,69,159,183,24,131,179,54,158,218,218,127,59,202,115,221,84,49,41,70,22,101,237,145,187,190,169,2,207,148,111,123,86,3,190,21,185,241,230,150,122,69,153,21,125,222,98,12,206,218,120,106,107,255,173,40,207,117,83,197,164,24,89,148,181,71,238,250,166,10,60,83,190,229,89,13,248,102,228,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,55,163,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,249,166,103,53,224,252,200,141,55,183,212,43,202,172,232,243,22,99,112,214,198,83,91,251,243,163,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,57,223,179,26,240,141,200,141,55,183,212,43,202,172,232,243,22,99,112,214,198,83,91,251,111,68,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,242,13,207,106,192,215,34,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,191,22,229,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,215,60,171,1,95,141,220,120,115,75,189,162,204,138,62,111,49,6,103,109,60,181,181,255,106,148,231,186,169,98,82,140,44,202,218,35,119,125,83,5,158,41,95,245,172,6,124,61,114,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,254,235,81,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,124,221,179,26,240,149,200,141,55,183,212,43,202,172,232,243,22,99,112,214,198,83,91,251,175,68,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,242,21,207,106,64,45,114,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,190,22,229,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,74,205,179,26,240,229,200,141,55,183,212,43,202,172,232,243,22,99,112,214,198,83,91,251,47,71,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,242,101,207,106,192,121,145,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,231,69,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,114,158,103,53,224,75,145,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,95,138,242,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,229,75,158,213,128,47,70,110,188,185,165,94,81,102,69,159,183,24,131,179,54,158,218,218,127,49,202,115,221,84,49,41,70,22,101,237,145,187,190,169,2,207,148,47,122,86,3,206,141,220,120,115,75,189,162,204,138,62,111,49,6,103,109,60,181,181,63,55,202,115,221,84,49,41,70,22,101,237,145,187,190,169,2,207,20,83,171,119,75,239,149,222,47,125,80,250,176,244,81,105,114,233,227,82,88,58,114,90,84,154,82,154,90,226,252,145,211,238,8,234,237,180,210,244,210,140,228,181,153,165,89,165,79,74,179,75,115,74,113,233,206,160,4,0,12,238,10,2,184,59,184,39,217,110,24,12,135,17,48,0,35,97,20,204,3,247,6,247,5,243,194,124,112,127,48,26,30,72,216,5,97,33,88,24,22,129,7,147,254,67,131,170,139,195,18,176,36,44,5,75,195,50,176,44,44,7,203,195,10,16,215,86,132,149,96,12,172,12,171,192,170,201,179,213,96,117,88,3,30,14,38,5,99,225,145,224,209,224,177,224,241,224,137,96,45,88,27,184,135,235,192,186,48,14,214,131,39,131,167,130,241,240,116,48,33,121,125,34,108,8,27,193,198,176,9,108,10,155,37,207,55,135,45,96,75,216,106,208,98,107,216,6,198,150,183,29,236,111,151,60,110,15,59,192,142,73,187,83,242,183,51,236,146,60,238,10,187,193,238,176,7,60,19,236,5,123,195,62,176,47,60,155,120,251,92,176,63,60,159,180,7,192,129,112,16,188,16,28,146,108,121,104,242,119,88,242,119,56,28,145,60,30,9,71,193,209,112,12,28,155,244,143,75,254,94,12,94,10,78,24,28,231,196,228,241,36,56,25,78,129,153,236,84,56,13,78,135,51,224,76,56,11,62,7,159,135,47,192,217,112,14,156,11,95,132,47,193,121,240,229,100,203,26,124,5,190,10,95,131,175,195,55,224,124,120,57,25,243,149,228,239,127,193,5,9,247,29,184,16,46,130,239,194,247,224,213,224,181,224,245,224,141,224,71,240,99,248,9,92,12,63,133,159,205,141,200,207,225,205,224,151,73,255,18,184,52,121,252,21,252,26,126,3,111,5,111,7,151,193,229,240,91,248,29,188,147,168,93,1,191,135,63,192,31,225,79,112,37,92,5,87,195,53,112,45,52,178,226,58,184,30,222,13,254,12,127,129,247,130,27,224,253,224,239,240,15,184,17,110,130,127,194,191,224,223,240,31,248,32,184,25,62,12,110,129,91,225,182,196,234,163,224,118,152,156,104,222,9,31,7,97,112,55,220,3,247,38,175,222,7,247,15,42,70,193,131,240,208,96,239,97,152,4,143,192,163,240,24,60,14,83,130,39,225,41,120,26,166,6,207,192,180,224,89,120,14,158,135,23,224,69,120,41,217,242,101,120,5,166,7,175,194,107,240,58,188,1,111,38,175,188,5,111,195,59,240,46,188,7,239,195,7,201,243,25,193,135,240,81,210,78,134,153,65,8,17,76,73,250,83,97,26,76,135,25,48,19,102,193,39,48,27,230,64,12,37,6,140,177,50,139,107,1,171,176,42,27,198,134,179,17,108,128,141,100,179,130,121,146,87,231,101,243,177,249,217,104,182,0,187,145,45,200,22,98,11,179,69,146,87,23,101,139,177,197,217,18,108,73,246,73,176,20,91,154,45,195,150,101,203,177,229,217,10,108,69,54,59,24,195,142,156,182,50,91,133,173,202,86,99,171,179,53,216,88,182,38,91,139,173,205,214,97,235,178,113,108,78,176,126,162,176,1,27,207,226,64,68,115,2,155,200,54,100,27,177,141,217,38,108,211,132,221,140,65,133,85,234,204,150,108,43,86,174,108,195,130,74,165,178,45,219,46,225,182,103,59,176,29,147,118,39,182,51,219,37,105,171,149,93,217,110,108,119,182,7,219,147,13,75,108,246,98,123,179,125,216,190,108,63,182,63,27,158,60,63,144,29,196,14,102,135,176,67,217,97,172,174,120,248,224,227,17,236,200,193,246,40,118,52,59,134,141,168,28,203,6,42,35,43,163,42,243,84,78,100,243,86,230,171,204,95,25,93,57,141,157,206,206,96,103,178,179,88,209,247,3,206,142,220,120,115,75,189,162,204,138,62,111,49,6,103,109,60,181,181,63,59,202,115,221,84,49,41,70,22,101,237,145,187,190,169,2,207,148,179,61,251,44,112,78,228,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,57,81,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,156,227,89,13,248,66,228,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,23,162,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,249,130,103,53,224,243,145,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,159,143,242,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,229,243,158,213,128,207,69,110,188,185,165,94,81,102,69,159,183,24,131,179,54,158,218,218,127,46,202,115,221,84,49,41,70,22,101,237,145,187,190,169,2,207,148,207,121,86,3,206,138,220,120,115,75,189,162,204,138,62,111,49,6,103,109,60,181,181,63,43,202,115,221,84,49,41,70,22,101,237,145,187,190,169,2,207,148,179,60,171,1,103,70,110,188,185,165,94,81,102,69,159,183,24,131,179,54,158,218,218,159,25,229,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,153,158,213,128,51,34,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,207,136,242,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,229,12,207,106,192,233,145,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,167,71,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,114,186,103,53,224,180,200,141,55,183,212,43,202,172,232,243,22,99,112,214,198,83,91,251,211,162,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,57,205,179,26,112,106,228,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,169,81,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,156,234,89,13,56,37,114,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,254,148,40,207,117,83,197,164,24,89,148,181,71,238,250,166,10,60,83,78,241,172,6,156,28,185,241,230,150,122,69,153,21,125,222,98,12,206,218,120,106,107,127,114,148,231,186,169,98,82,140,44,202,218,35,119,125,83,5,158,41,39,123,86,3,78,138,220,120,115,75,189,162,204,138,62,111,49,6,103,109,60,181,181,63,41,202,115,221,84,49,41,70,22,101,237,145,187,190,169,2,207,148,147,60,171,1,39,70,110,188,185,165,94,81,102,69,159,183,24,131,179,54,158,218,218,159,24,229,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,137,158,213,128,19,34,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,79,136,242,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,229,4,207,106,192,241,145,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,199,71,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,114,188,103,53,224,179,145,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,159,141,242,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,229,179,158,213,128,227,34,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,143,139,242,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,229,56,207,106,192,177,145,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,199,70,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,114,172,103,53,224,152,200,141,55,183,212,43,202,172,232,243,22,99,112,214,198,83,91,251,99,162,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,57,198,179,26,112,116,228,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,209,81,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,28,237,89,13,56,42,114,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,254,168,40,207,117,83,197,164,24,89,148,181,71,238,250,166,10,60,83,142,242,172,6,28,25,185,241,230,150,122,69,153,21,125,222,98,12,206,218,120,106,107,127,100,148,231,186,169,98,18,231,226,77,186,87,179,30,53,75,5,158,41,71,122,86,3,142,136,220,120,115,75,189,162,204,138,62,111,49,6,103,109,60,181,181,63,34,202,115,221,84,49,41,70,22,101,237,145,187,190,169,2,207,148,35,60,171,1,135,71,110,188,185,165,94,81,102,69,159,183,24,131,179,54,158,218,218,31,30,229,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,225,158,213,128,195,34,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,15,139,242,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,229,48,207,106,192,161,145,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,135,70,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,114,168,103,53,224,144,200,141,55,183,212,43,202,172,232,243,22,99,112,214,198,83,91,251,67,162,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,57,196,179,26,112,112,228,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,193,81,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,28,236,89,13,56,40,114,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,254,160,40,207,117,83,197,164,24,89,148,181,71,238,250,166,10,60,83,14,242,172,6,28,24,185,241,230,150,122,69,153,21,125,222,98,12,206,218,120,106,107,127,96,148,231,186,169,98,82,140,44,202,218,35,119,125,83,5,158,41,7,122,86,3,14,136,220,120,115,75,189,162,204,138,62,111,49,6,103,109,60,181,181,63,32,202,115,221,84,49,41,70,22,101,237,145,187,190,169,2,207,148,3,60,171,1,251,71,110,188,185,165,94,81,102,69,159,183,24,131,179,54,158,218,218,239,31,229,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,254,158,213,128,253,34,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,247,139,242,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,101,63,207,106,192,190,145,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,251,70,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,178,175,103,53,96,159,200,141,55,183,212,43,202,172,232,243,22,99,112,214,198,83,91,251,125,162,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,217,199,179,26,176,119,228,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,222,81,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,236,237,89,13,216,43,114,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,126,175,40,207,117,83,197,164,24,89,148,181,71,238,250,166,10,60,83,246,242,172,6,236,25,185,241,230,150,122,69,153,21,125,222,98,12,206,218,120,106,107,191,103,148,231,186,169,98,82,140,44,202,218,35,119,125,83,5,158,41,123,122,86,3,246,136,220,120,115,75,189,162,204,138,62,111,49,6,103,109,60,181,181,223,35,202,115,221,84,49,41,70,22,101,237,145,187,190,169,2,207,148,61,60,171,1,187,71,110,188,185,165,94,81,102,69,159,183,24,131,179,54,158,218,218,239,30,229,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,238,158,213,128,221,34,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,119,139,242,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,101,55,207,106,192,174,145,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,187,70,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,178,171,103,53,96,151,200,141,55,183,212,43,202,172,232,243,22,99,112,214,198,83,91,251,93,162,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,217,197,179,26,176,115,228,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,206,81,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,152,90,189,91,122,175,244,126,233,131,210,135,165,143,74,147,75,31,151,194,210,97,211,162,210,148,210,212,18,231,15,155,118,71,80,111,167,149,166,151,102,36,175,205,44,205,42,125,82,154,93,154,83,138,75,119,6,37,0,96,112,87,16,192,221,193,61,201,118,195,96,56,140,128,1,24,9,163,96,30,184,55,184,47,152,23,230,131,251,131,209,240,64,194,46,8,11,193,194,176,8,60,152,244,31,26,84,93,28,150,128,37,97,41,88,26,150,129,101,97,57,88,30,86,128,184,182,34,172,4,99,96,101,88,5,86,77,158,173,6,171,195,26,240,112,48,41,24,11,143,4,143,6,143,5,143,7,79,4,107,193,218,192,61,92,7,214,133,113,176,30,60,25,60,21,140,135,167,131,9,201,235,19,97,67,216,8,54,134,77,96,83,216,44,121,190,57,108,1,91,194,86,131,22,91,195,54,48,182,188,237,96,127,187,228,113,123,216,1,118,76,218,157,146,191,157,97,151,228,113,87,216,13,118,135,61,224,153,96,47,216,27,246,129,125,225,217,196,219,231,130,253,225,249,164,61,0,14,132,131,224,133,224,144,100,203,67,147,191,195,146,191,195,225,136,228,241,72,56,10,142,134,99,224,216,164,127,92,242,247,98,240,82,112,194,224,56,39,38,143,39,193,201,112,10,204,100,167,194,105,112,58,156,1,103,194,89,240,57,248,60,124,1,206,134,115,224,92,248,34,124,9,206,131,47,39,91,214,224,43,240,85,248,26,124,29,190,1,231,195,203,201,152,175,36,127,255,11,46,72,184,239,192,133,112,17,124,23,190,7,175,6,175,5,175,7,111,4,63,130,31,195,79,224,98,248,41,252,108,110,68,126,14,111,6,191,76,250,151,192,165,201,227,175,224,215,240,27,120,43,120,59,184,12,46,135,223,194,239,224,157,68,237,10,248,61,252,1,254,8,127,130,43,225,42,184,26,174,129,107,161,145,21,215,193,245,240,110,240,103,248,11,188,23,220,0,239,7,127,135,127,192,141,112,19,252,19,254,5,255,134,255,192,7,193,205,240,97,112,11,220,10,183,37,86,31,5,183,195,228,68,243,78,248,56,8,131,187,225,30,184,55,121,245,62,184,127,80,49,10,30,132,135,6,123,15,195,36,120,4,30,133,199,224,113,152,18,60,9,79,193,211,48,53,120,6,166,5,207,194,115,240,60,188,0,47,194,75,201,150,47,195,43,48,61,120,21,94,131,215,225,13,120,51,121,229,45,120,27,222,129,119,225,61,120,31,62,72,158,207,8,62,132,143,146,118,50,204,12,66,136,96,74,210,159,10,211,96,58,204,128,153,48,11,62,129,217,48,7,98,40,49,96,140,149,89,92,11,88,133,85,217,48,54,156,141,96,3,108,36,155,21,204,147,188,58,47,155,143,205,207,70,179,5,216,141,108,65,182,16,91,152,45,146,188,186,40,91,140,45,206,150,96,75,178,79,130,165,216,210,108,25,182,44,91,142,45,207,86,96,43,178,217,193,24,118,216,180,149,217,42,108,85,182,26,91,157,173,193,198,178,53,217,90,108,109,182,14,91,151,141,99,115,130,245,19,133,13,216,120,22,7,34,154,19,216,68,182,33,219,136,109,204,54,97,155,38,236,102,12,42,172,82,103,182,100,91,177,114,101,27,22,84,42,149,109,217,118,9,183,61,219,129,237,152,180,59,177,157,217,46,73,91,173,236,202,118,99,187,179,61,216,158,108,88,98,179,23,219,155,237,195,246,101,251,177,253,217,240,228,249,129,236,32,118,48,59,132,29,202,14,99,117,197,195,7,31,143,96,71,14,182,71,177,163,217,49,108,68,229,88,54,80,25,89,25,85,153,167,114,34,155,183,50,95,101,254,202,232,202,105,236,116,118,6,59,147,157,197,138,190,31,176,83,228,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,78,81,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,236,228,217,103,129,29,35,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,119,140,242,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,101,71,207,106,192,14,145,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,59,68,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,178,131,103,53,96,251,200,141,55,183,212,43,202,172,232,243,22,99,112,214,198,83,91,251,237,163,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,217,222,179,26,176,93,228,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,118,81,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,108,231,89,13,216,54,114,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,126,219,40,207,117,83,197,164,24,89,148,181,71,238,250,166,10,60,83,182,245,172,6,124,38,114,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,254,51,81,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,124,198,179,26,176,77,228,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,54,81,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,108,227,89,13,216,58,114,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,126,235,40,207,117,83,197,164,24,89,148,181,71,238,250,166,10,91,15,102,202,214,158,213,128,173,34,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,183,138,242,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,101,43,207,106,192,150,145,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,91,70,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,178,165,103,53,96,139,200,141,55,183,212,43,202,172,232,243,22,99,112,214,198,83,91,251,45,162,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,217,194,179,26,176,121,228,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,230,81,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,108,238,89,13,216,44,114,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,126,179,40,207,117,83,197,164,24,89,148,181,71,238,250,166,10,60,83,54,243,172,6,108,26,185,241,230,150,122,69,153,21,125,222,98,12,206,218,120,106,107,191,105,148,231,186,169,98,82,140,44,202,218,35,119,125,83,5,158,41,155,122,86,3,54,137,220,120,115,75,189,162,204,138,62,111,49,6,103,109,60,181,181,223,36,202,115,221,84,49,41,70,22,101,237,145,187,190,169,2,207,148,77,60,171,1,27,71,110,188,185,165,94,81,102,69,159,183,24,131,179,54,158,218,218,111,28,229,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,138,169,85,251,125,132,14,105,186,143,208,33,116,31,33,186,143,16,221,71,168,233,62,66,135,208,125,132,134,20,27,69,110,188,185,165,94,81,102,69,159,183,24,131,179,54,158,218,218,111,20,229,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,70,158,125,22,216,48,114,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,126,195,40,207,117,83,197,164,24,89,148,181,71,238,250,166,10,60,83,54,244,172,6,76,140,220,120,115,75,189,162,204,138,62,111,49,6,103,109,60,181,181,159,24,229,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,68,231,227,1,135,55,29,15,56,156,142,7,208,241,0,58,30,208,116,60,224,112,58,30,48,164,152,16,185,241,230,150,122,69,153,21,125,222,98,12,206,218,120,106,107,63,33,202,115,221,84,49,41,70,22,101,237,145,187,190,169,2,207,148,9,158,125,22,24,31,185,241,230,150,122,69,153,21,125,222,98,12,206,218,120,106,107,63,62,202,115,221,84,49,41,70,22,101,237,145,187,190,169,2,207,148,241,158,213,128,13,34,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,55,136,242,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,101,3,207,106,192,159,166,186,241,230,150,122,69,153,21,125,222,98,12,206,218,120,106,107,239,50,174,251,186,169,98,82,140,44,202,218,35,119,125,83,5,158,41,121,70,58,11,172,31,185,241,230,150,122,69,153,21,125,222,98,12,206,218,120,106,107,191,126,148,231,186,169,98,82,140,44,202,218,35,119,125,83,5,158,41,235,123,182,31,176,94,228,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,122,81,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,172,231,124,110,112,175,166,115,131,123,229,124,110,112,92,164,63,55,56,46,178,61,55,56,46,194,207,13,142,139,116,231,6,199,69,141,115,131,227,34,126,110,112,92,84,63,55,56,46,106,156,27,28,23,53,206,13,214,199,57,49,121,180,63,55,56,46,122,37,249,179,59,55,56,46,202,231,220,224,184,168,126,110,176,62,119,113,110,112,92,148,223,185,193,113,17,118,110,112,92,100,119,110,112,175,148,231,6,199,137,243,70,214,231,6,199,69,102,231,6,147,76,76,108,198,69,126,157,27,92,55,114,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,126,221,40,207,117,83,197,164,24,89,148,181,71,238,250,166,10,60,83,214,245,236,179,192,58,145,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,235,68,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,178,142,103,53,96,237,200,141,55,183,212,43,202,172,232,243,22,99,112,214,198,83,91,251,181,163,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,89,219,179,26,176,86,228,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,90,81,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,172,229,89,13,24,27,185,241,230,150,122,69,153,21,125,222,98,12,206,218,120,106,107,63,54,202,115,221,84,49,41,70,22,101,237,145,187,190,169,2,207,148,177,158,213,128,53,34,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,215,136,242,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,101,13,207,106,192,234,145,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,171,71,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,178,186,103,53,96,181,200,141,55,183,212,43,202,172,232,243,22,99,112,214,198,83,91,251,213,162,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,89,205,179,26,176,106,228,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,170,81,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,172,234,89,13,88,37,114,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,126,149,40,207,117,83,197,164,24,89,148,181,71,238,250,166,10,60,83,86,241,172,6,172,28,185,241,230,150,122,69,153,21,125,222,98,12,206,218,120,106,107,191,114,148,231,186,169,98,82,140,44,202,218,35,119,125,83,5,158,41,43,123,86,3,198,68,110,188,185,165,94,81,102,69,159,183,24,131,179,177,133,167,182,246,99,114,202,7,125,76,242,241,102,168,99,227,174,111,170,192,51,101,140,103,53,96,165,200,141,55,183,212,43,202,172,232,243,22,99,112,214,198,83,91,251,149,162,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,89,201,179,26,176,98,228,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,138,81,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,172,232,89,13,88,33,114,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,126,133,40,207,117,83,197,164,24,89,148,181,71,238,250,166,10,60,83,86,240,172,6,44,31,185,241,230,150,122,69,153,21,125,222,98,12,206,218,120,106,107,191,124,148,231,186,169,98,82,140,44,202,218,35,119,125,83,5,158,41,203,123,86,3,150,139,220,120,115,75,189,162,204,138,62,111,49,6,103,109,60,181,181,95,46,202,115,221,84,49,41,70,22,101,237,145,187,190,169,2,207,148,229,60,171,1,203,70,110,188,185,165,94,81,102,69,159,183,24,131,179,54,158,218,218,47,27,229,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,178,158,213,128,101,34,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,151,137,242,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,101,25,207,106,192,210,145,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,75,71,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,178,180,103,53,96,201,200,141,55,183,212,43,202,172,232,243,22,99,112,214,198,83,91,251,37,163,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,89,210,179,26,176,68,228,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,18,81,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,44,225,89,13,88,42,114,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,126,169,40,207,117,83,197,164,24,89,148,181,71,238,250,166,10,60,83,150,242,172,6,44,30,185,241,230,150,122,69,153,21,125,222,98,12,206,218,120,106,107,191,120,148,231,186,169,98,82,140,44,202,218,35,119,125,83,5,158,41,139,123,86,3,214,140,220,120,115,75,189,162,204,138,62,111,49,6,103,109,60,181,181,199,236,30,30,53,84,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,172,233,89,13,88,44,114,227,155,241,104,146,253,143,141,210,91,170,94,127,124,84,43,43,250,188,197,24,156,181,137,65,171,253,19,163,186,19,191,244,120,114,212,83,163,158,30,245,204,220,113,159,29,245,28,226,193,243,163,212,179,94,44,42,90,22,101,237,145,137,254,11,163,84,10,47,142,50,205,20,211,121,173,51,189,19,212,219,164,177,22,219,181,111,155,214,58,237,8,238,86,157,85,240,153,152,140,216,205,89,219,70,66,181,22,102,121,209,189,40,168,70,203,58,86,88,4,134,122,68,215,153,227,91,242,60,21,92,167,119,112,209,247,3,22,141,220,120,115,75,189,162,204,138,62,111,49,6,103,109,60,181,181,95,52,202,115,221,84,49,41,70,22,101,237,145,187,190,169,2,207,148,69,61,251,44,176,72,228,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,34,81,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,44,226,89,13,88,56,114,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,126,225,40,207,117,83,197,164,24,89,148,181,71,238,250,166,10,60,83,22,246,172,6,44,20,185,241,230,150,122,69,153,21,125,222,98,12,206,218,120,106,107,191,80,148,231,186,169,98,82,140,44,202,218,35,119,125,83,5,158,41,11,121,86,3,22,140,220,120,115,75,189,162,204,138,62,111,49,6,103,109,60,181,181,95,48,202,115,221,84,49,41,70,22,101,237,145,187,190,169,2,207,148,5,61,171,1,11,68,110,188,185,165,94,81,102,69,159,183,24,131,179,54,158,218,218,47,16,229,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,2,158,213,128,209,145,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,163,163,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,25,237,89,13,152,63,114,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,126,254,40,207,117,83,197,164,24,89,148,181,71,238,250,166,10,60,83,230,247,172,6,204,23,185,241,230,150,122,69,153,21,125,222,98,12,206,218,120,106,107,63,95,148,231,186,169,98,82,140,44,202,218,35,119,125,83,5,158,41,243,121,86,3,230,141,220,120,115,75,189,162,204,138,62,111,49,6,103,109,60,181,181,159,55,202,115,221,84,49,41,70,22,101,237,145,187,190,169,2,207,148,121,61,171,1,243,68,110,188,185,165,94,81,102,69,159,183,24,131,179,54,158,218,218,207,19,229,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,60,158,213,128,81,145,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,163,162,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,25,229,89,13,24,25,185,241,230,150,122,69,153,21,125,222,98,12,206,218,120,106,107,63,50,202,115,221,84,49,41,70,22,101,237,145,187,190,169,2,207,148,145,158,213,128,129,200,141,55,183,212,43,202,172,232,243,22,99,112,214,198,83,91,251,129,40,207,117,83,197,164,24,89,148,181,71,238,250,166,10,60,83,6,60,171,1,35,34,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,71,68,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,50,194,179,26,48,60,114,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,126,120,148,231,186,169,98,82,140,44,202,218,35,119,125,83,5,158,41,195,61,171,1,195,34,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,135,69,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,50,204,179,26,80,141,220,120,115,75,189,162,204,138,62,111,49,6,103,109,60,181,181,175,70,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,98,106,245,110,233,189,210,251,165,15,74,31,150,62,42,77,46,125,92,10,75,135,78,139,74,83,74,83,75,156,63,116,218,29,65,189,157,86,154,94,154,145,188,54,179,52,171,244,73,105,118,105,78,41,46,221,25,148,0,128,193,93,65,0,119,7,247,36,219,13,131,225,48,2,6,96,36,140,130,121,224,222,224,190,96,94,152,15,238,15,70,195,3,9,187,32,44,4,11,195,34,240,96,210,127,104,80,117,113,88,2,150,132,165,96,105,88,6,150,133,229,96,121,88,1,226,218,138,176,18,140,129,149,97,21,88,53,121,182,26,172,14,107,192,195,193,164,96,44,60,18,60,26,60,22,60,30,60,17,172,5,107,3,247,112,29,88,23,198,193,122,240,100,240,84,48,30,158,14,38,36,175,79,132,13,97,35,216,24,54,129,77,97,179,228,249,230,176,5,108,9,91,13,90,108,13,219,192,216,242,182,131,253,237,146,199,237,97,7,216,49,105,119,74,254,118,134,93,146,199,93,97,55,216,29,246,128,103,130,189,96,111,216,7,246,133,103,19,111,159,11,246,135,231,147,246,0,56,16,14,130,23,130,67,146,45,15,77,254,14,75,254,14,135,35,146,199,35,225,40,56,26,142,129,99,147,254,113,201,223,139,193,75,193,9,131,227,156,152,60,158,4,39,195,41,48,147,157,10,167,193,233,112,6,156,9,103,193,231,224,243,240,5,56,27,206,129,115,225,139,240,37,56,15,190,156,108,89,131,175,192,87,225,107,240,117,248,6,156,15,47,39,99,190,146,252,253,47,184,32,225,190,3,23,194,69,240,93,248,30,188,26,188,22,188,30,188,17,252,8,126,12,63,129,139,225,167,240,179,185,17,249,57,188,25,252,50,233,95,2,151,38,143,191,130,95,195,111,224,173,224,237,224,50,184,28,126,11,191,131,119,18,181,43,224,247,240,7,248,35,252,9,174,132,171,224,106,184,6,174,133,70,86,92,7,215,195,187,193,159,225,47,240,94,112,3,188,31,252,29,254,1,55,194,77,240,79,248,23,252,27,254,3,31,4,55,195,135,193,45,112,43,220,150,88,125,20,220,14,147,19,205,59,225,227,32,12,238,134,123,224,222,228,213,251,224,254,65,197,40,120,16,30,26,236,61,12,147,224,17,120,20,30,131,199,97,74,240,36,60,5,79,195,212,224,25,152,22,60,11,207,193,243,240,2,188,8,47,37,91,190,12,175,192,244,224,85,120,13,94,135,55,224,205,228,149,183,224,109,120,7,222,133,247,224,125,248,32,121,62,35,248,16,62,74,218,201,48,51,8,33,130,41,73,127,42,76,131,233,48,3,102,194,44,248,4,102,195,28,136,161,196,128,49,86,102,113,45,96,21,86,101,195,216,112,54,130,13,176,145,108,86,48,79,242,234,188,108,62,54,63,27,205,22,96,55,178,5,217,66,108,97,182,72,242,234,162,108,49,182,56,91,130,45,201,62,9,150,98,75,179,101,216,178,108,57,182,60,91,129,173,200,102,7,99,216,161,211,86,102,171,176,85,217,106,108,117,182,6,27,203,214,100,107,177,181,217,58,108,93,54,142,205,9,214,79,20,54,96,227,89,28,136,104,78,96,19,217,134,108,35,182,49,219,132,109,154,176,155,49,168,176,74,157,217,146,109,197,202,149,109,88,80,169,84,182,101,219,37,220,246,108,7,182,99,210,238,196,118,102,187,36,109,181,178,43,219,141,237,206,246,96,123,178,97,137,205,94,108,111,182,15,219,151,237,199,246,103,195,147,231,7,178,131,216,193,236,16,118,40,59,140,213,21,15,31,124,60,130,29,57,216,30,197,142,102,199,176,17,149,99,217,64,101,100,101,84,101,158,202,137,108,222,202,124,149,249,43,163,43,167,177,211,217,25,236,76,118,22,43,250,126,64,37,114,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,190,18,229,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,74,197,121,63,96,159,166,253,128,125,114,222,15,8,34,253,126,64,16,217,238,7,4,17,190,31,16,68,186,253,128,32,106,236,7,4,17,223,15,8,162,250,126,64,16,53,246,3,130,168,177,31,80,31,231,196,228,209,126,63,32,136,94,73,254,236,246,3,130,40,159,253,128,32,170,239,7,212,231,46,246,3,130,40,191,253,128,32,194,246,3,130,200,110,63,96,159,148,251,1,65,228,186,31,16,68,102,251,1,73,38,214,231,26,249,181,31,80,142,220,120,115,75,189,162,204,138,62,111,49,6,103,109,60,181,181,47,71,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,82,246,236,152,32,139,220,120,115,75,189,162,204,138,62,111,49,6,103,109,60,181,181,103,81,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,48,207,106,0,68,110,188,185,165,94,81,102,69,159,183,24,131,179,54,158,218,218,67,148,231,186,169,98,82,140,44,202,218,35,119,125,83,5,158,41,224,89,13,40,69,110,188,185,165,94,81,102,69,159,183,24,131,179,54,158,218,218,151,162,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,41,121,86,3,226,208,145,55,183,12,83,91,133,77,109,168,221,42,116,140,65,152,81,252,178,93,183,176,0,158,168,199,14,115,25,53,75,5,158,41,121,70,58,3,204,9,221,120,115,75,189,162,204,138,62,111,49,6,103,109,60,181,181,159,19,230,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,28,207,106,192,39,161,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,159,132,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,242,137,103,53,96,118,232,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,236,48,207,117,83,197,164,24,89,148,181,71,238,250,166,10,60,83,102,123,86,3,102,133,110,188,185,165,94,81,102,69,159,183,24,131,179,54,158,218,218,207,10,243,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,197,212,170,253,58,193,35,154,174,19,60,130,190,47,64,223,23,160,239,11,52,93,39,120,4,125,95,96,72,49,51,116,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,126,102,152,231,186,169,98,82,140,44,202,218,35,119,125,83,5,158,41,51,61,251,44,48,35,116,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,126,70,152,231,186,169,98,82,140,44,202,218,35,119,125,83,5,158,41,51,60,171,1,211,67,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,167,135,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,50,221,179,26,48,45,116,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,126,90,152,231,186,169,98,82,140,44,202,218,35,119,125,83,5,158,41,211,60,171,1,83,67,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,167,134,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,50,213,179,26,48,37,116,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,126,74,152,231,186,169,98,82,140,44,202,218,35,119,125,83,5,158,41,83,60,171,1,81,232,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,125,20,230,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,74,228,89,13,8,67,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,195,48,207,117,83,197,164,24,89,148,181,71,238,250,166,10,60,83,66,207,106,192,199,161,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,31,135,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,242,177,103,53,96,114,232,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,228,48,207,117,83,197,164,24,89,148,181,71,238,250,166,10,60,83,38,59,95,43,124,108,211,181,194,199,210,181,194,116,173,48,93,43,220,116,173,240,177,116,173,240,144,226,195,208,141,55,183,212,43,202,172,232,243,22,99,112,214,198,83,91,251,15,195,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,249,208,179,207,2,31,133,110,188,185,165,94,81,102,69,159,183,24,131,179,54,158,218,218,127,20,230,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,71,158,213,128,15,66,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,63,8,243,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,229,3,207,106,192,251,161,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,239,135,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,242,190,103,53,224,189,208,141,55,183,212,43,202,172,232,243,22,99,112,214,198,83,91,251,247,194,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,121,207,179,26,240,110,232,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,187,97,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,188,235,89,13,120,39,116,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,254,157,48,207,117,83,197,164,24,89,148,181,71,238,250,166,10,60,83,222,241,172,6,188,29,186,241,230,150,122,69,153,21,125,222,98,12,206,218,120,106,107,255,118,152,231,186,169,98,82,140,44,202,218,35,119,125,83,5,158,41,111,123,86,3,222,10,221,120,115,75,189,162,204,138,62,111,49,6,103,109,60,181,181,127,43,204,115,221,84,49,41,70,22,101,237,145,187,190,169,2,207,148,183,60,171,1,111,134,110,188,185,165,94,81,102,69,159,183,24,131,179,54,158,218,218,191,25,230,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,155,158,213,128,55,66,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,223,8,243,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,229,13,207,106,192,235,161,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,175,135,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,242,186,103,53,224,181,208,141,55,183,212,43,202,172,232,243,22,99,112,214,198,83,91,251,215,194,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,121,205,179,26,240,106,232,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,171,97,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,188,234,89,13,248,95,232,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,255,194,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,249,159,103,53,224,149,208,141,55,183,212,43,202,172,232,243,22,99,112,214,198,83,91,251,87,194,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,121,197,179,26,240,114,232,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,203,97,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,188,236,89,13,120,41,116,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,254,165,48,207,117,83,197,164,24,89,148,181,71,238,250,166,10,60,83,76,173,214,154,222,9,234,109,210,88,139,237,218,183,77,107,157,118,4,119,171,206,42,248,76,76,70,236,230,172,109,35,161,90,11,179,188,232,94,20,84,163,101,29,43,44,2,67,61,162,235,204,241,45,121,158,10,174,211,59,184,253,126,130,7,55,221,79,240,96,186,159,32,221,79,144,238,39,216,116,63,193,131,233,126,130,45,120,99,148,95,159,62,134,6,111,90,69,237,45,67,171,183,105,109,186,134,119,40,150,57,225,197,208,141,55,183,212,43,202,172,232,243,22,99,112,214,198,83,91,251,23,195,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,121,209,179,99,130,207,135,110,188,185,165,94,81,102,69,159,183,24,131,179,54,158,218,218,63,31,230,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,243,158,213,128,231,66,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,159,11,243,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,229,57,207,106,192,11,161,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,47,132,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,242,130,103,53,224,217,208,141,55,183,212,43,202,172,232,243,22,99,112,214,198,83,91,251,103,195,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,121,214,179,26,240,76,232,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,51,97,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,60,227,89,13,120,58,116,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,254,233,48,207,117,83,197,164,24,89,148,181,71,238,250,166,10,60,83,158,246,172,6,60,21,186,241,230,150,122,69,153,21,125,222,98,12,206,218,120,106,107,255,84,152,231,186,169,98,82,140,44,202,218,35,119,125,83,5,158,41,79,121,86,3,158,12,221,120,115,75,189,162,204,138,62,111,49,6,103,109,60,181,181,127,50,204,115,221,84,49,41,70,22,101,237,145,187,190,169,2,207,148,39,61,171,1,79,132,110,188,185,165,94,81,102,69,159,183,24,131,179,54,158,218,218,63,17,230,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,19,158,213,128,199,67,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,31,15,243,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,229,113,207,106,192,99,161,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,152,221,187,163,134,106,221,84,49,41,70,22,101,237,145,187,190,169,2,207,148,199,60,171,1,143,134,110,188,185,165,94,81,102,69,159,183,24,131,179,54,158,218,218,63,26,230,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,163,158,213,128,71,66,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,31,9,243,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,197,212,170,253,254,1,113,77,190,127,64,92,203,247,254,1,147,66,253,253,3,38,133,182,247,15,152,20,226,247,15,152,20,234,238,31,48,41,108,220,63,96,82,200,239,31,48,41,172,223,63,96,82,216,184,127,192,164,176,113,255,128,250,56,39,38,143,246,247,15,152,20,190,146,252,217,221,63,96,82,152,207,253,3,38,133,245,251,7,212,231,46,238,31,48,41,204,239,254,1,147,66,236,254,1,147,66,187,251,7,196,181,116,247,15,152,52,247,189,104,127,255,128,73,161,217,253,3,146,76,76,108,38,133,67,125,255,128,108,241,112,232,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,195,97,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,60,236,217,103,129,135,66,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,31,10,243,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,229,33,207,106,192,3,161,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,15,132,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,242,128,103,53,224,193,208,141,55,183,212,43,202,172,232,243,22,99,112,214,198,83,91,251,7,195,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,121,208,179,26,112,127,232,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,253,97,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,220,239,89,13,184,47,116,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,254,190,48,207,117,83,197,164,24,89,148,181,71,238,250,166,10,60,83,238,243,172,6,220,27,186,241,230,150,122,69,153,21,125,222,98,12,206,218,120,106,107,127,111,152,231,186,169,98,82,140,44,202,218,35,119,125,83,5,158,41,247,122,86,3,238,9,221,120,115,75,189,162,204,138,62,111,49,6,103,109,60,181,181,191,39,204,115,221,84,49,41,70,22,101,237,145,187,190,169,2,207,20,83,171,131,166,181,226,248,185,45,231,143,159,219,19,175,181,111,223,64,122,182,222,199,71,111,85,209,105,170,102,208,250,90,227,185,188,61,239,203,51,227,125,189,87,237,179,192,236,154,149,229,103,157,209,190,101,39,223,240,136,164,153,13,102,173,90,151,78,254,98,235,38,123,147,86,21,159,127,154,181,48,205,76,147,87,177,119,72,231,136,96,209,212,69,164,117,102,234,76,198,99,46,191,175,76,34,94,108,220,29,186,241,230,150,122,69,153,21,125,222,98,12,206,218,120,106,107,127,119,152,231,186,169,98,82,140,44,202,218,35,119,125,83,5,158,41,119,123,246,89,224,174,208,141,55,183,212,43,202,172,232,243,22,99,112,214,198,83,91,251,187,194,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,185,203,179,26,112,103,232,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,157,97,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,220,233,89,13,184,35,116,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,254,142,48,207,117,83,197,164,24,89,148,181,71,238,250,166,10,60,83,238,240,172,6,220,30,186,241,230,150,122,69,153,21,125,222,98,12,206,218,120,106,107,127,123,152,231,186,169,98,82,140,44,202,218,35,119,125,83,5,158,41,183,123,86,3,110,11,221,120,115,75,189,162,204,138,62,111,49,6,103,109,60,181,181,191,45,204,115,221,84,49,41,70,22,101,237,145,187,190,169,2,207,148,219,60,171,1,183,134,110,188,185,165,94,81,102,69,159,183,24,131,179,54,158,218,218,223,26,230,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,173,158,213,128,91,66,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,111,9,243,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,229,22,207,106,192,205,161,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,55,135,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,114,179,103,53,224,191,161,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,255,13,243,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,229,191,158,213,128,255,132,110,188,185,165,94,81,102,69,159,183,24,131,179,54,158,218,218,255,39,204,115,221,84,49,41,70,22,101,237,145,187,190,169,2,207,148,255,120,86,3,254,29,186,241,230,150,122,69,153,21,125,222,98,12,206,218,120,106,107,255,239,48,207,117,83,197,164,24,89,148,181,71,238,250,166,10,60,83,254,237,89,13,248,87,232,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,191,194,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,249,151,103,53,224,159,161,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,255,12,243,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,229,159,158,213,128,155,66,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,111,10,243,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,229,38,207,106,192,141,161,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,55,134,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,114,163,103,53,224,31,161,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,255,8,243,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,229,31,158,213,128,191,135,110,188,185,165,94,81,102,69,159,183,24,131,179,54,158,218,218,255,61,204,115,221,84,49,41,70,22,101,237,145,187,190,169,2,207,148,191,123,86,3,254,22,186,241,230,150,122,69,153,21,125,222,98,12,206,218,120,106,107,255,183,48,207,117,83,197,164,24,89,148,181,71,238,250,166,10,60,83,254,230,89,13,184,33,116,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,254,134,48,207,117,83,197,164,24,89,148,181,71,238,250,166,10,60,83,110,240,172,6,252,53,116,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,254,175,97,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,252,213,179,26,240,151,208,141,55,183,212,43,202,172,232,243,22,99,112,214,198,83,91,251,191,132,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,242,23,207,106,192,159,67,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,255,28,230,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,138,169,213,187,165,247,74,239,151,62,40,125,88,250,168,52,185,244,113,41,44,29,53,45,42,77,41,77,45,113,254,168,105,119,4,245,118,90,105,122,105,70,242,218,204,210,172,210,39,165,217,165,57,165,184,116,103,80,2,0,6,119,5,1,220,29,220,147,108,55,12,134,195,8,24,128,145,48,10,230,129,123,131,251,130,121,97,62,184,63,24,13,15,36,236,130,176,16,44,12,139,192,131,73,255,161,65,213,197,97,9,88,18,150,130,165,97,25,88,22,150,131,229,97,5,136,107,43,194,74,48,6,86,134,85,96,213,228,217,106,176,58,172,1,15,7,147,130,177,240,72,240,104,240,88,240,120,240,68,176,22,172,13,220,195,117,96,93,24,7,235,193,147,193,83,193,120,120,58,152,144,188,62,17,54,132,141,96,99,216,4,54,133,205,146,231,155,195,22,176,37,108,53,104,177,53,108,3,99,203,219,14,246,183,75,30,183,135,29,96,199,164,221,41,249,219,25,118,73,30,119,133,221,96,119,216,3,158,9,246,130,189,97,31,216,23,158,77,188,125,46,216,31,158,79,218,3,224,64,56,8,94,8,14,73,182,60,52,249,59,44,249,59,28,142,72,30,143,132,163,224,104,56,6,142,77,250,199,37,127,47,6,47,5,39,12,142,115,98,242,120,18,156,12,167,192,76,118,42,156,6,167,195,25,112,38,156,5,159,131,207,195,23,224,108,56,7,206,133,47,194,151,224,60,248,114,178,101,13,190,2,95,133,175,193,215,225,27,112,62,188,156,140,249,74,242,247,191,224,130,132,251,14,92,8,23,193,119,225,123,240,106,240,90,240,122,240,70,240,35,248,49,252,4,46,134,159,194,207,230,70,228,231,240,102,240,203,164,127,9,92,154,60,254,10,126,13,191,129,183,130,183,131,203,224,114,248,45,252,14,222,73,212,174,128,223,195,31,224,143,240,39,184,18,174,130,171,225,26,184,22,26,89,113,29,92,15,239,6,127,134,191,192,123,193,13,240,126,240,119,248,7,220,8,55,193,63,225,95,240,111,248,15,124,16,220,12,31,6,183,192,173,112,91,98,245,81,112,59,76,78,52,239,132,143,131,48,184,27,238,129,123,147,87,239,131,251,7,21,163,224,65,120,104,176,247,48,76,130,71,224,81,120,12,30,135,41,193,147,240,20,60,13,83,131,103,96,90,240,44,60,7,207,195,11,240,34,188,148,108,249,50,188,2,211,131,87,225,53,120,29,222,128,55,147,87,222,130,183,225,29,120,23,222,131,247,225,131,228,249,140,224,67,248,40,105,39,195,204,32,132,8,166,36,253,169,48,13,166,195,12,152,9,179,224,19,152,13,115,32,134,18,3,198,88,153,197,181,128,85,88,149,13,99,195,217,8,54,192,70,178,89,193,60,201,171,243,178,249,216,252,108,52,91,128,221,200,22,100,11,177,133,217,34,201,171,139,178,197,216,226,108,9,182,36,251,36,88,138,45,205,150,97,203,178,229,216,242,108,5,182,34,155,29,140,97,71,77,91,153,173,194,86,101,171,177,213,217,26,108,44,91,147,173,197,214,102,235,176,117,217,56,54,39,88,63,81,216,128,141,103,113,32,162,57,129,77,100,27,178,141,216,198,108,19,182,105,194,110,198,160,194,42,117,102,75,182,21,43,87,182,97,65,165,82,217,150,109,151,112,219,179,29,216,142,73,187,19,219,153,237,146,180,213,202,174,108,55,182,59,219,131,237,201,134,37,54,123,177,189,217,62,108,95,182,31,219,159,13,79,158,31,200,14,98,7,179,67,216,161,236,48,86,87,60,124,240,241,8,118,228,96,123,20,59,154,29,195,70,84,142,101,3,149,145,149,81,149,121,42,39,178,121,43,243,85,230,175,140,174,156,198,78,103,103,176,51,217,89,172,189,6,28,215,84,3,142,163,26,64,53,128,106,64,83,13,56,206,179,26,80,244,207,2,215,135,110,188,185,165,94,81,102,69,159,183,24,131,179,54,158,218,218,95,31,230,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,245,158,29,15,184,46,116,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,254,186,48,207,117,83,197,164,24,89,148,181,71,238,250,166,10,60,83,174,243,172,6,92,27,186,241,230,150,122,69,153,21,125,222,98,12,206,218,120,106,107,127,109,152,231,186,169,98,82,140,44,202,218,35,119,125,83,5,158,41,215,122,86,3,174,9,221,120,115,75,189,162,204,138,62,111,49,6,103,109,60,181,181,191,38,204,115,221,84,49,41,70,22,101,237,145,187,190,169,2,207,148,107,60,171,1,87,135,110,188,185,165,94,81,102,69,159,183,24,131,179,54,158,218,218,95,29,230,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,213,158,213,128,171,66,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,175,10,243,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,229,42,207,106,192,149,161,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,87,134,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,114,165,103,53,224,143,161,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,127,12,243,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,229,143,158,213,128,63,132,110,188,185,165,94,81,102,69,159,183,24,131,179,54,158,218,218,255,33,204,115,221,84,49,41,70,22,101,237,145,187,190,169,2,207,148,63,120,86,3,126,31,186,241,230,150,122,69,153,21,125,222,98,12,206,218,120,106,107,255,251,48,207,117,83,197,164,24,89,148,181,71,238,250,166,10,60,83,126,239,89,13,248,83,232,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,159,194,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,249,147,103,53,224,138,208,141,55,183,212,43,202,172,232,243,22,99,112,214,198,83,91,251,43,194,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,185,194,179,26,240,187,208,141,55,183,212,43,202,172,232,243,22,99,112,214,198,83,91,251,223,133,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,242,59,207,106,192,111,67,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,127,27,230,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,111,61,171,1,151,135,110,188,185,165,94,81,102,69,159,183,24,131,179,54,158,218,218,95,30,230,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,229,158,213,128,203,66,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,47,11,243,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,229,50,207,106,192,111,66,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,127,19,230,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,111,60,171,1,191,14,221,120,115,75,189,162,204,138,62,111,49,6,103,109,60,181,181,255,117,152,231,186,169,98,82,140,44,202,218,35,119,125,83,5,158,41,191,246,172,6,252,42,116,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,254,87,97,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,252,202,179,26,112,105,232,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,165,97,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,92,234,89,13,184,36,116,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,254,146,48,207,117,83,197,164,24,89,148,181,71,238,250,166,10,60,83,46,241,172,6,252,50,116,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,254,151,97,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,252,210,179,26,240,139,208,141,55,183,212,43,202,172,232,243,22,99,112,214,198,83,91,251,95,132,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,242,11,207,106,192,207,67,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,127,30,230,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,207,61,171,1,63,11,221,120,115,75,189,162,204,138,62,111,49,6,103,109,60,181,181,255,89,152,231,186,169,98,82,140,44,202,218,35,119,125,83,5,158,41,63,243,172,6,252,52,116,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,254,167,97,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,252,212,179,26,112,113,232,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,197,97,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,92,236,89,13,248,73,232,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,79,194,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,249,137,103,53,224,199,161,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,63,14,243,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,229,199,158,213,128,31,133,110,188,185,165,94,81,102,69,159,183,24,131,179,54,158,218,218,255,40,204,115,221,84,49,41,70,22,101,237,145,187,190,169,2,207,148,31,121,86,3,254,47,116,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,254,255,194,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,249,63,207,106,192,15,67,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,127,24,230,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,15,61,171,1,63,8,221,120,115,75,189,162,204,138,62,111,49,6,103,109,60,181,181,255,65,152,231,186,169,98,82,140,44,202,218,35,119,125,83,5,158,41,63,240,172,6,124,63,116,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,254,251,97,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,124,223,179,26,240,189,208,141,55,183,212,43,202,172,232,243,22,99,112,214,198,83,91,251,239,133,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,242,61,207,106,192,119,67,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,191,27,230,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,119,61,171,1,23,133,110,188,185,165,94,81,102,69,159,183,24,131,179,54,158,218,218,95,20,230,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,69,158,213,128,11,67,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,47,12,243,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,229,66,207,106,192,119,66,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,191,19,230,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,119,60,171,1,23,132,110,188,185,165,94,81,102,69,159,183,24,131,179,54,158,218,218,95,16,230,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,5,158,213,128,111,135,110,188,185,165,94,81,102,69,159,183,24,131,179,54,158,218,218,127,59,204,115,221,84,49,41,70,22,101,237,145,187,190,169,2,207,148,111,123,86,3,190,21,186,241,230,150,122,69,153,21,125,222,98,12,206,218,120,106,107,255,173,48,207,117,83,197,164,24,89,148,181,71,238,250,166,10,60,83,190,229,89,13,248,102,232,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,55,195,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,249,166,103,53,224,252,208,141,55,183,212,43,202,172,232,243,22,99,112,214,198,83,91,251,243,195,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,57,223,179,26,240,141,208,141,55,183,212,43,202,172,232,243,22,99,112,214,198,83,91,251,111,132,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,242,13,207,106,192,215,67,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,191,30,230,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,215,61,171,1,95,11,221,120,115,75,189,162,204,138,62,111,49,6,103,109,60,181,181,255,90,152,231,186,169,98,82,140,44,202,218,35,119,125,83,5,158,41,95,243,172,6,124,53,116,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,254,171,97,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,124,213,179,26,240,149,208,141,55,183,212,43,202,172,232,243,22,99,112,214,198,83,91,251,175,132,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,242,21,207,106,64,45,116,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,190,22,230,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,74,205,179,26,240,229,208,141,55,183,212,43,202,172,232,243,22,99,112,214,198,83,91,251,47,135,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,242,101,207,106,192,121,161,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,231,133,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,114,158,103,53,224,75,161,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,95,10,243,92,55,85,76,138,145,69,89,123,164,215,255,112,84,247,87,143,103,202,151,60,171,1,95,12,221,120,115,75,189,162,204,138,62,111,49,6,103,109,60,181,181,255,98,152,231,186,169,98,82,140,44,202,218,35,119,125,83,5,158,41,95,244,172,6,156,27,186,241,230,150,122,69,153,21,125,222,98,12,206,218,120,106,107,127,110,152,231,186,169,98,82,140,44,202,218,35,119,125,83,5,158,41,231,122,86,3,206,9,221,120,115,75,189,162,204,138,62,111,49,6,103,109,60,181,181,63,39,204,115,221,84,49,41,70,22,101,237,145,187,190,169,2,207,148,115,60,171,1,103,135,110,188,185,165,94,81,102,69,159,183,24,131,179,54,158,218,218,159,29,230,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,217,158,213,128,47,132,110,188,185,165,94,81,102,69,159,183,24,131,179,54,158,218,218,127,33,204,115,221,84,49,41,70,22,101,237,145,187,190,169,2,207,148,47,120,86,3,62,31,186,241,230,150,122,69,153,21,125,222,98,12,206,218,120,106,107,255,249,48,207,117,83,197,164,24,89,148,181,71,238,250,166,10,60,83,62,239,89,13,248,92,232,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,231,194,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,249,156,103,53,224,172,208,141,55,183,212,43,202,172,232,243,22,99,112,214,198,83,91,251,179,194,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,57,203,179,26,112,102,232,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,153,97,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,156,233,89,13,56,35,116,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,254,140,48,207,117,83,197,164,24,89,148,181,71,238,250,166,10,60,83,206,240,172,6,156,30,186,241,230,150,122,69,153,21,125,222,98,12,206,218,120,106,107,127,122,152,231,186,169,98,18,231,226,77,186,87,179,30,53,75,5,158,41,167,123,86,3,78,11,221,120,115,75,189,162,204,138,62,111,49,6,103,109,60,181,181,63,45,204,115,221,84,49,41,70,22,101,237,145,187,190,169,2,207,148,211,60,171,1,167,134,110,188,185,165,94,81,102,69,159,183,24,131,179,54,158,218,218,159,26,230,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,169,158,213,128,83,66,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,79,9,243,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,229,20,207,106,192,201,161,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,39,135,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,114,178,103,53,224,164,208,141,55,183,212,43,202,172,232,243,22,99,112,214,198,83,91,251,147,194,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,57,201,179,26,112,98,232,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,137,97,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,156,232,89,13,56,33,116,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,254,132,48,207,117,83,197,164,24,89,148,181,71,238,250,166,10,60,83,78,240,172,6,28,31,186,241,230,150,122,69,153,21,125,222,98,12,206,218,120,106,107,127,124,152,231,186,169,98,82,140,44,202,218,35,119,125,83,5,158,41,199,123,86,3,62,27,186,241,230,150,122,69,153,21,125,222,98,12,206,218,120,106,107,255,217,48,207,117,83,197,164,24,89,148,181,71,238,250,166,10,60,83,62,235,89,13,56,46,116,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,254,184,48,207,117,83,197,164,24,89,148,181,71,238,250,166,10,60,83,142,243,172,6,28,27,186,241,230,150,122,69,153,21,125,222,98,12,206,218,120,106,107,127,108,152,231,186,169,98,82,140,44,202,218,35,119,125,83,5,158,41,199,122,86,3,142,9,221,120,115,75,189,162,204,138,62,111,49,6,103,109,60,181,181,63,38,204,115,221,84,49,41,70,22,101,237,145,187,190,169,2,207,148,99,60,171,1,71,135,110,188,185,165,94,81,102,69,159,183,24,131,179,54,158,218,218,31,29,230,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,138,169,213,187,165,247,74,239,151,62,40,125,88,250,168,52,185,244,113,41,44,29,61,45,42,77,41,77,45,205,85,157,118,71,80,111,167,149,166,151,102,36,175,205,44,205,42,125,82,154,93,154,83,138,75,119,6,37,0,96,112,87,16,192,221,193,61,201,118,195,96,56,140,128,1,24,9,163,96,30,184,55,184,47,152,23,230,131,251,131,209,240,64,194,46,8,11,193,194,176,8,60,152,244,31,26,84,93,28,150,128,37,97,41,88,26,150,129,101,97,57,88,30,86,128,184,182,34,172,4,99,96,101,88,5,86,77,158,173,6,171,195,26,240,112,48,41,24,11,143,4,143,6,143,5,143,7,79,4,107,193,218,192,61,92,7,214,133,113,176,30,60,25,60,21,140,135,167,131,9,201,235,19,97,67,216,8,54,134,77,96,83,216,44,121,190,57,108,1,91,194,86,131,22,91,195,54,48,182,188,237,96,127,187,228,113,123,216,1,118,76,218,157,146,191,157,97,151,228,113,87,216,13,118,135,61,224,153,96,47,216,27,246,129,125,225,217,196,219,231,130,253,225,249,164,61,0,14,132,131,224,133,224,144,100,203,67,147,191,195,146,191,195,225,136,228,241,72,56,10,142,134,99,224,216,164,127,92,242,247,98,240,82,112,194,224,56,39,38,143,39,193,201,112,10,204,100,167,194,105,112,58,156,1,103,194,89,240,57,248,60,124,1,206,134,115,224,92,248,34,124,9,206,131,47,39,91,214,224,43,240,85,248,26,124,29,190,1,231,195,203,201,152,175,36,127,255,11,46,72,184,239,192,133,112,17,124,23,190,7,175,6,175,5,175,7,111,4,63,130,31,195,79,224,98,248,41,252,108,110,68,126,14,111,6,191,76,250,151,192,165,201,227,175,224,215,240,27,120,43,120,59,184,12,46,135,223,194,239,224,157,68,237,10,248,61,252,1,254,8,127,130,43,225,42,184,26,174,129,107,161,145,21,215,193,245,240,110,240,103,248,11,188,23,220,0,239,7,127,135,127,192,141,112,19,252,19,254,5,255,134,255,192,7,193,205,240,97,112,11,220,10,183,37,86,31,5,183,195,228,68,243,78,248,56,8,131,187,225,30,184,55,121,245,62,184,127,80,49,10,30,132,135,6,123,15,195,36,120,4,30,133,199,224,113,152,18,60,9,79,193,211,48,53,120,6,166,5,207,194,115,240,60,188,0,47,194,75,201,150,47,195,43,48,61,120,21,94,131,215,225,13,120,51,121,229,45,120,27,222,129,119,225,61,120,31,62,72,158,207,8,62,132,143,146,118,50,204,12,66,136,96,74,210,159,10,211,96,58,204,128,153,48,11,62,129,217,48,7,98,40,49,96,140,149,89,92,11,88,133,85,217,48,54,156,141,96,3,108,36,155,21,204,147,188,58,47,155,143,205,207,70,179,5,216,141,108,65,182,16,91,152,45,146,188,186,40,91,140,45,206,150,96,75,178,79,130,165,216,210,108,25,182,44,91,142,45,207,86,96,43,178,217,193,24,118,244,180,149,217,42,108,85,182,26,91,157,173,193,198,178,53,217,90,108,109,182,14,91,151,141,99,115,130,245,19,133,13,216,120,22,7,34,154,19,216,68,182,33,219,136,109,204,54,97,155,38,236,102,12,42,172,82,103,182,100,91,177,114,101,27,22,84,42,149,109,217,118,9,183,61,219,129,237,152,180,59,177,157,217,46,73,91,173,236,202,118,99,187,179,61,216,158,108,88,98,179,23,219,155,237,195,246,101,251,177,253,217,240,228,249,129,236,32,118,48,59,132,29,202,14,99,117,197,195,7,31,143,96,71,14,182,71,177,163,217,49,108,68,229,88,54,80,25,89,25,85,153,167,114,34,155,183,50,95,101,254,202,232,202,105,236,116,118,6,59,147,157,197,218,107,192,49,77,53,224,24,170,1,84,3,168,6,52,213,128,99,60,171,1,69,255,44,112,84,232,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,81,97,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,28,229,217,241,128,35,67,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,143,12,243,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,229,72,207,106,192,17,161,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,71,132,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,114,132,103,53,224,240,208,141,55,183,212,43,202,172,232,243,22,99,112,214,198,83,91,251,195,195,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,57,220,179,26,112,88,232,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,97,97,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,28,230,89,13,56,52,116,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,254,208,48,207,117,83,197,164,24,89,148,181,71,238,250,166,10,60,83,14,245,172,6,28,18,186,241,230,150,122,69,153,21,125,222,98,12,206,218,120,106,107,127,72,152,231,186,169,98,82,140,44,202,218,35,119,125,83,5,158,41,135,120,86,3,14,14,221,120,115,75,189,162,204,138,62,111,49,6,103,109,60,181,181,63,56,204,115,221,84,49,41,70,22,101,237,145,187,190,169,2,207,148,131,61,171,1,7,133,110,188,185,165,94,81,102,69,159,183,24,131,179,54,158,218,218,31,20,230,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,65,158,213,128,3,67,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,15,12,243,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,229,64,207,106,192,1,161,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,7,132,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,114,128,103,53,96,255,208,141,55,183,212,43,202,172,232,243,22,99,112,214,198,83,91,251,253,195,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,217,223,179,26,176,95,232,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,126,97,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,236,231,89,13,216,55,116,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,126,223,48,207,117,83,197,164,24,89,148,181,71,238,250,166,10,60,83,246,245,172,6,236,19,186,241,230,150,122,69,153,21,125,222,98,12,206,218,120,106,107,191,79,152,231,186,169,98,82,140,44,202,218,35,119,125,83,5,158,41,251,120,86,3,246,14,221,120,115,75,189,162,204,138,62,111,49,6,103,109,60,181,181,223,59,204,115,221,84,49,41,70,22,101,237,145,187,190,169,2,207,148,189,61,171,1,123,133,110,188,185,165,94,81,102,69,159,183,24,131,179,54,158,218,218,239,21,230,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,94,158,213,128,61,67,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,247,12,243,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,101,79,207,106,192,30,161,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,123,132,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,178,135,103,53,96,247,208,141,55,183,212,43,202,172,232,243,22,99,112,214,198,83,91,251,221,195,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,217,221,179,26,176,91,232,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,110,97,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,152,90,181,223,87,56,174,201,247,21,22,192,238,43,28,215,234,247,21,142,107,99,202,1,172,92,94,165,220,122,95,225,186,93,253,190,194,171,150,71,195,106,229,198,125,133,235,175,47,54,248,152,254,190,194,245,173,199,38,143,107,206,189,251,109,251,125,133,87,47,175,81,30,159,188,214,189,251,10,39,199,87,230,222,87,152,143,180,255,96,203,239,43,188,102,185,243,125,133,235,104,189,175,112,226,121,57,205,125,133,227,154,184,175,240,218,73,228,214,73,254,214,45,55,223,87,88,172,12,118,95,225,184,214,122,95,225,250,235,226,190,194,245,126,231,251,10,199,181,250,125,133,199,149,111,128,245,202,205,247,21,174,111,113,115,242,40,238,43,28,215,110,31,124,188,51,121,92,191,220,122,95,225,7,160,249,190,194,113,173,126,95,225,184,198,239,43,28,215,158,73,254,218,239,43,28,215,94,77,254,84,247,21,142,107,226,190,194,27,148,237,238,43,28,215,154,239,43,156,100,39,114,95,225,184,182,20,27,95,150,239,43,60,161,60,38,121,85,125,95,225,36,2,226,190,194,159,70,179,253,190,194,19,203,27,150,235,76,253,190,194,113,109,155,193,109,241,251,10,39,217,248,233,125,133,235,207,196,125,133,147,108,100,27,149,211,221,87,88,245,222,239,149,251,10,239,18,186,241,230,150,122,69,153,21,125,222,98,12,206,218,120,106,107,191,75,152,231,186,169,98,82,140,44,202,218,35,119,125,83,5,158,41,187,120,246,89,96,215,208,141,55,183,212,43,202,172,232,243,22,99,112,214,198,83,91,251,93,195,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,217,213,179,26,176,115,232,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,206,97,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,236,236,89,13,216,41,116,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,126,167,48,207,117,83,197,164,24,89,148,181,71,238,250,166,10,60,83,118,242,172,6,236,24,186,241,230,150,122,69,153,21,125,222,98,12,206,218,120,106,107,191,99,152,231,186,169,98,82,140,44,202,218,35,119,125,83,5,158,41,59,122,86,3,118,8,221,120,115,75,189,162,204,138,62,111,49,6,103,109,60,181,181,223,33,204,115,221,84,49,41,70,22,101,237,145,187,190,169,2,207,148,29,60,171,1,219,135,110,188,185,165,94,81,102,69,159,183,24,131,179,54,158,218,218,111,31,230,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,246,158,213,128,237,66,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,183,11,243,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,101,59,207,106,192,182,161,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,219,134,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,178,173,103,53,224,51,161,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,159,9,243,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,229,51,158,213,128,109,66,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,183,9,243,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,101,27,207,106,192,214,161,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,91,135,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,178,181,103,53,96,171,208,141,55,183,212,43,202,172,232,243,22,99,112,214,198,83,91,251,173,194,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,217,202,179,26,176,101,232,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,150,97,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,108,233,89,13,216,34,116,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,126,139,48,207,117,83,197,164,24,89,148,181,71,238,250,166,10,60,83,182,240,172,6,108,30,186,241,230,150,122,69,153,21,125,222,98,12,206,218,120,106,107,191,121,152,231,186,169,98,82,140,44,202,218,35,119,125,83,5,158,41,155,123,86,3,54,11,221,120,115,75,189,162,204,138,62,111,49,6,103,109,60,181,181,223,44,204,115,221,84,49,41,70,22,101,237,145,187,190,169,2,207,148,205,60,171,1,155,134,110,188,185,165,94,81,102,69,159,183,24,131,179,54,158,218,218,111,26,230,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,166,158,213,128,141,67,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,55,14,243,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,101,99,207,106,192,38,161,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,155,132,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,178,137,103,53,96,163,208,141,55,183,212,43,202,172,232,243,22,99,112,214,198,83,91,251,141,194,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,217,200,179,26,176,97,232,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,134,97,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,108,232,89,13,152,24,186,241,230,150,122,69,153,21,125,222,98,12,206,218,120,106,107,63,49,204,115,221,84,49,41,70,22,101,237,145,187,190,169,2,207,148,137,158,213,128,9,161,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,19,194,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,153,224,89,13,24,31,186,241,230,150,122,69,153,21,125,222,98,12,206,218,120,106,107,63,62,204,115,221,84,49,41,70,22,101,237,145,187,190,169,2,207,148,241,158,213,128,13,66,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,55,8,243,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,101,3,207,106,192,250,161,27,111,110,169,87,148,89,209,231,45,198,224,108,108,225,169,173,253,250,57,229,131,62,38,249,120,51,212,177,113,215,55,85,224,153,178,190,103,53,96,189,208,141,55,183,212,43,202,172,232,243,22,99,112,214,198,83,91,251,245,194,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,89,207,179,26,48,46,116,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,126,92,152,231,186,169,98,82,140,44,202,218,35,119,125,83,5,158,41,227,60,171,1,235,134,110,188,185,165,94,81,102,69,159,183,24,131,179,54,158,218,218,175,27,230,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,186,158,213,128,117,66,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,215,9,243,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,101,29,207,106,192,218,161,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,107,135,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,178,182,103,53,96,205,208,141,55,183,212,43,202,172,232,243,22,99,112,214,198,83,91,251,53,195,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,89,211,179,26,48,54,116,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,126,108,152,231,186,169,98,82,140,44,202,218,35,119,125,83,5,158,41,99,61,171,1,107,132,110,188,185,165,94,81,102,69,159,183,24,131,179,54,158,218,218,175,17,230,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,26,158,213,128,213,67,55,222,220,82,175,40,179,162,207,91,140,193,89,27,79,109,237,87,15,243,92,55,85,76,138,145,69,89,123,228,174,111,170,192,51,101,117,207,106,192,106,161,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,171,133,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,178,154,103,53,96,213,208,141,55,183,212,43,202,172,232,243,22,99,112,214,198,83,91,251,85,195,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,89,213,179,26,176,74,232,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,42,97,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,172,226,89,13,88,57,116,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,126,229,48,207,117,83,197,164,24,89,148,181,71,238,250,166,10,60,83,86,246,172,6,140,9,221,120,115,75,189,162,204,138,62,111,49,6,103,109,60,181,181,31,19,230,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,24,207,106,192,74,161,27,111,110,169,87,148,89,209,231,45,198,224,172,141,167,182,246,43,133,121,174,155,42,38,197,200,162,172,61,114,215,55,85,224,153,178,146,103,53,96,197,208,141,55,183,212,43,202,172,232,243,22,99,112,214,198,83,91,251,21,195,60,215,77,21,147,98,100,81,214,30,185,235,155,42,240,76,89,209,179,26,176,86,232,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,90,97,158,235,166,138,73,49,178,40,107,143,220,245,77,21,120,166,172,229,89,13,88,33,116,227,205,45,245,138,50,43,250,188,197,24,156,181,241,212,214,126,133,48,207,117,83,197,164,24,89,148,181,71,238,250,166,10,60,83,86,240,172,6,44,31,186,241,230,150,122,69,153,21,125,222,98,12,206,218,120,106,107,191,124,152,231,186,169,98,82,140,44,202,218,35,119,125,83,5,158,41,238,227,238,55,77,253,140,64,32,248,246,158,120,183,244,94,233,253,210,7,165,15,75,31,149,38,151,62,46,133,165,184,22,149,166,148,166,150,196,22,119,4,245,199,105,165,233,165,25,201,107,51,75,179,74,159,148,102,151,230,148,226,210,157,65,9,0,24,220,21,4,112,119,112,79,178,221,48,24,14,35,96,0,70,194,40,152,7,238,13,238,11,230,133,249,224,254,96,52,60,144,176,11,194,66,176,48,44,2,15,38,253,135,6,85,23,135,37,96,73,88,10,150,134,101,96,89,88,14,150,135,21,32,57,170,1,43,193,24,88,25,86,129,85,147,103,171,193,234,176,6,60,28,76,10,198,194,35,193,163,193,99,193,227,193,19,193,90,176,54,112,255,214,129,117,97,28,172,7,79,6,79,5,227,225,233,96,66,242,250,68,216,16,54,130,141,97,19,216,20,54,75,158,111,14,91,192,150,176,213,160,197,214,176,13,140,45,111,59,216,223,46,121,220,30,118,128,29,147,118,167,228,111,103,216,37,121,220,21,118,131,221,97,15,120,38,216,11,246,134,125,96,95,120,54,241,246,185,96,127,120,62,105,15,128,3,225,32,120,33,56,36,217,242,208,228,239,176,228,239,112,56,34,121,60,18,142,130,163,225,24,56,54,233,31,151,252,189,24,188,20,156,48,56,206,137,201,227,73,112,50,156,2,51,217,169,112,26,156,14,103,192,153,112,22,124,14,62,15,95,128,179,225,28,56,23,190,8,95,130,243,224,203,201,150,53,248,10,124,21,190,6,95,135,111,192,249,240,114,50,230,43,201,223,255,130,11,18,238,59,112,33,92,4,223,133,239,193,171,193,107,193,235,193,27,193,143,224,199,240,19,184,24,126,10,63,155,27,145,159,195,155,193,47,147,254,37,112,105,242,248,43,248,53,252,6,222,10,222,14,46,131,203,225,183,240,59,120,39,81,187,2,126,15,127,128,63,194,159,224,74,184,10,174,134,107,224,90,104,100,197,117,112,61,188,27,252,25,254,2,239,5,55,192,251,193,223,225,31,112,35,220,4,255,132,127,193,191,225,63,240,65,112,51,124,24,220,2,183,194,109,137,213,71,193,237,48,57,209,188,19,62,14,194,224,110,184,7,238,77,94,189,15,238,31,84,140,130,7,225,161,193,222,195,48,9,30,129,71,225,49,120,28,166,4,79,194,83,240,52,76,13,158,129,105,193,179,240,28,60,15,47,192,139,240,82,178,229,203,240,10,76,15,94,133,215,224,117,120,3,222,76,94,121,11,222,134,119,224,93,120,15,222,135,15,146,231,51,130,15,225,163,164,157,12,51,131,16,34,152,146,244,167,194,52,152,14,51,96,38,204,130,79,96,54,204,129,24,74,12,24,99,101,22,215,2,86,97,85,54,140,13,103,35,216,0,27,201,102,5,243,36,175,206,203,230,99,243,179,209,108,1,118,35,91,144,45,196,22,102,139,36,175,46,202,22,99,139,179,37,216,146,236,147,96,41,182,52,91,134,45,203,150,99,203,179,21,216,138,108,118,48,38,217,98,101,182,10,91,149,173,198,86,103,107,176,177,108,77,182,22,91,155,173,195,214,101,227,216,156,96,253,132,223,128,141,103,113,32,162,57,129,77,100,27,178,141,216,198,108,19,182,105,194,110,198,160,194,42,117,102,75,182,21,43,87,182,97,65,165,82,217,150,109,151,112,219,179,29,216,142,73,187,19,219,153,237,146,180,213,202,174,108,55,182,59,219,131,237,201,134,37,54,123,177,189,217,62,108,95,182,31,219,159,13,79,158,31,200,14,98,7,179,67,216,161,236,48,86,87,60,124,240,241,8,118,228,96,123,20,59,154,29,195,70,84,142,101,3,149,145,149,81,149,121,42,39,178,121,43,243,85,230,175,140,174,156,198,78,103,103,176,51,217,89,172,189,42,68,163,228,103,83,70,81,221,39,16,100,76,165,247,196,144,226,157,169,110,188,185,165,94,81,102,69,159,183,24,131,179,54,158,218,218,187,140,235,190,110,170,152,20,35,139,178,246,200,93,223,84,129,103,74,158,145,206,2,127,156,234,198,155,91,234,21,101,86,244,121,139,49,56,107,227,169,173,253,31,167,230,185,110,170,152,20,35,139,178,246,200,93,223,84,129,103,202,31,61,171,1,189,143,233,180,231,72,40,52,126,48,173,19,212,219,164,177,22,219,181,111,155,214,58,237,8,238,86,157,85,234,91,60,62,194,197,207,110,206,218,54,18,170,181,48,203,139,238,121,169,26,45,107,47,176,8,12,245,136,174,51,199,183,228,239,56,193,117,122,7,83,21,236,63,204,164,61,147,218,44,138,193,167,216,106,122,39,52,111,179,238,128,138,209,43,52,111,187,222,64,122,107,53,14,31,110,234,137,110,102,105,84,218,103,98,58,162,251,172,205,230,148,110,27,254,74,115,94,76,30,158,157,143,205,30,168,124,86,189,62,126,196,132,17,217,196,173,219,171,115,254,136,111,142,48,89,169,75,70,152,230,51,190,37,207,83,193,169,213,218,215,157,208,31,152,77,255,7,18,36,124,123,90,39,168,183,73,99,45,182,107,223,54,173,117,218,17,220,173,58,171,224,51,49,25,177,155,179,182,141,132,106,45,204,242,194,30,115,70,53,235,171,70,203,58,86,88,4,134,122,68,215,153,227,91,242,60,21,92,167,119,112,231,235,4,57,176,235,4,227,26,191,78,176,12,1,84,160,10,173,215,9,198,53,126,157,224,252,48,26,22,128,172,175,19,92,31,54,128,241,201,107,105,174,19,252,12,164,185,78,112,79,144,175,19,140,107,251,15,218,240,235,4,15,134,52,215,9,30,15,173,215,9,198,53,211,235,4,191,153,188,242,173,228,239,219,208,249,58,193,210,60,245,209,58,93,39,8,243,164,185,78,48,174,213,175,19,252,43,220,0,127,3,236,58,193,184,38,174,19,140,107,226,58,193,184,118,23,52,95,39,120,110,249,1,208,93,39,24,215,158,73,254,76,175,19,140,107,226,58,193,143,193,238,58,193,81,140,205,35,95,39,152,100,103,170,235,4,87,98,221,184,78,112,115,182,197,224,213,121,141,235,4,227,26,126,157,96,146,141,202,235,4,15,96,233,174,19,140,107,216,117,130,229,121,212,215,9,246,11,110,153,238,106,149,78,129,111,117,203,244,94,154,101,22,227,222,66,159,59,51,199,252,243,216,196,153,190,47,64,223,23,160,239,11,100,247,125,129,82,165,248,223,23,104,175,1,191,174,250,91,3,126,83,165,26,64,53,64,212,128,203,170,217,215,128,203,171,89,214,128,223,86,187,81,3,158,152,218,9,113,205,156,105,223,174,125,219,180,214,105,71,112,183,234,172,130,207,196,100,196,255,103,239,59,224,237,168,234,252,223,153,57,247,36,239,230,189,20,44,128,20,69,233,36,144,222,44,176,18,108,88,16,11,193,182,209,85,122,179,151,255,186,163,139,130,5,165,184,187,182,88,112,23,119,5,164,72,208,160,66,128,4,66,239,1,18,90,72,66,2,82,19,72,94,203,123,243,159,185,243,38,211,206,153,57,83,239,204,157,239,231,251,121,183,204,57,231,215,206,239,254,222,233,39,75,173,147,90,66,84,23,238,246,97,190,50,122,233,139,184,229,109,43,158,5,138,230,152,86,115,126,78,203,79,237,180,168,95,240,67,145,208,181,248,41,193,124,193,188,178,165,31,74,37,99,156,82,209,84,248,154,196,225,152,165,214,73,45,33,170,11,119,12,200,87,70,47,125,17,183,188,109,197,179,64,209,28,211,106,206,207,105,249,169,157,22,245,11,222,163,47,10,186,22,63,37,152,47,152,87,182,180,44,135,248,24,80,227,82,225,107,18,71,206,44,181,230,97,80,141,206,243,216,54,190,253,220,49,32,79,25,253,244,31,219,150,101,173,38,131,37,67,145,28,195,120,201,203,193,207,105,249,169,157,22,245,11,198,152,32,198,3,48,38,136,51,68,170,140,55,55,49,35,4,36,195,107,122,97,3,0,168,51,94,139,24,208,194,23,250,147,67,182,180,153,47,152,55,29,239,44,104,249,75,69,83,225,107,18,135,99,150,90,103,109,191,172,252,34,43,43,20,111,171,34,57,134,241,146,151,131,159,211,242,83,59,77,76,205,74,249,124,10,232,154,124,190,96,94,217,210,89,74,18,94,42,154,10,95,147,56,28,179,212,58,107,251,185,99,64,190,220,228,232,23,111,171,34,57,134,241,146,151,131,159,211,242,83,59,77,76,205,74,185,48,18,186,22,63,37,152,47,152,87,182,244,133,169,100,140,83,42,154,10,95,147,56,28,179,212,154,135,157,123,147,88,203,122,226,142,1,121,202,232,167,47,226,150,183,173,120,22,40,154,99,90,205,249,57,45,63,181,211,162,126,193,23,69,194,24,67,142,157,18,204,23,204,43,91,250,162,84,50,198,41,21,77,133,175,73,28,142,89,106,205,195,51,221,73,172,101,61,113,199,128,60,101,244,211,23,113,203,219,86,60,11,20,205,49,173,230,252,156,150,159,218,105,81,191,96,140,136,0,117,197,46,24,19,4,0,160,246,216,21,145,16,0,106,141,215,33,6,0,181,197,110,240,126,160,13,24,172,241,169,45,0,0,32,6,100,137,61,240,127,28,0,128,20,120,61,98,8,80,56,222,80,82,175,219,11,191,134,22,222,223,128,13,128,122,226,77,136,1,136,1,0,80,59,236,131,200,7,0,0,218,1,64,193,192,188,0,0,0,229,199,254,104,37,215,8,31,218,158,28,237,44,157,7,162,37,74,47,115,249,180,118,203,150,133,87,84,211,38,229,170,151,44,164,113,104,68,81,11,158,41,250,135,209,59,70,46,102,151,176,75,217,31,217,101,236,114,118,5,179,206,20,189,146,133,221,55,248,39,230,61,83,244,42,182,132,57,247,13,94,205,236,51,69,119,38,127,102,187,16,93,251,11,227,157,41,186,148,185,207,20,189,134,89,103,138,254,149,253,141,77,38,127,103,83,200,181,236,58,182,140,137,238,27,188,158,205,33,55,48,239,153,162,55,50,251,76,209,229,108,5,243,222,55,120,19,179,206,20,189,153,217,103,138,174,100,193,251,6,143,49,210,110,97,230,125,131,183,50,231,190,193,219,216,167,200,237,204,62,83,244,14,230,156,41,122,39,51,207,20,61,129,152,247,13,222,197,204,51,69,239,102,246,125,131,247,176,240,51,69,239,101,254,251,6,239,99,103,147,251,153,121,223,224,3,204,57,83,244,92,114,30,57,159,92,64,220,103,138,174,50,120,61,200,126,78,126,65,236,51,69,31,98,214,153,162,15,179,213,204,62,83,212,212,60,221,125,131,215,145,101,100,13,115,223,55,184,130,152,103,138,62,194,236,251,6,31,101,230,153,162,143,177,199,153,117,223,224,19,108,45,115,159,41,186,138,136,238,27,124,146,153,103,138,174,35,206,153,162,235,88,244,125,131,235,89,216,153,162,27,88,240,190,65,239,153,162,206,125,131,79,49,231,76,209,141,140,119,223,224,38,38,62,83,116,134,50,83,121,154,153,103,138,62,195,44,91,62,203,188,103,138,62,199,172,251,6,159,103,47,48,243,76,209,195,149,5,202,17,202,139,140,119,166,232,75,108,51,115,206,20,221,194,94,102,222,251,6,95,241,220,49,178,149,109,99,139,148,62,214,207,130,247,13,30,175,156,160,156,168,156,164,156,172,156,162,156,170,156,166,156,174,56,103,138,158,223,159,28,186,38,159,47,152,87,182,116,150,146,132,151,138,166,194,215,36,14,199,44,181,206,206,90,214,19,119,251,48,95,254,94,250,34,110,69,218,202,182,64,59,107,33,137,230,252,156,150,159,218,105,98,106,193,122,175,23,78,30,68,79,176,222,200,219,3,224,97,197,224,93,125,176,1,0,223,169,51,14,196,8,54,144,16,7,193,119,58,28,31,29,168,154,196,69,233,176,71,87,167,217,41,75,28,210,149,45,189,25,93,121,248,194,156,16,170,115,71,211,230,117,101,111,157,50,226,27,99,224,181,64,21,49,165,52,173,144,232,251,6,45,248,239,27,52,158,185,230,6,117,205,156,27,244,223,55,104,150,115,230,6,157,251,6,119,222,49,11,229,158,27,212,53,254,125,131,70,123,223,152,27,52,223,39,187,102,175,68,115,131,70,132,148,184,111,208,153,27,12,187,111,208,59,55,168,107,11,91,175,206,220,160,251,190,65,75,22,239,125,131,214,220,160,249,220,185,111,80,215,190,169,152,115,131,186,22,118,223,160,174,185,231,6,117,237,108,227,207,156,27,180,184,156,99,188,243,231,6,173,116,115,110,208,124,95,220,122,181,230,6,205,79,201,230,6,117,141,63,55,168,107,230,220,160,149,223,158,27,212,53,123,110,208,185,111,208,154,27,52,63,153,115,131,186,102,206,13,234,154,120,110,208,186,111,208,61,55,24,188,111,48,56,55,40,115,223,160,225,159,18,115,131,238,251,6,117,205,153,27,212,53,123,110,48,236,190,65,115,110,112,244,190,65,231,127,182,241,217,123,223,160,57,55,104,166,56,115,131,186,198,191,111,208,240,198,29,115,131,230,55,239,220,160,121,223,160,174,69,221,55,24,53,55,88,253,120,186,215,80,103,252,95,232,20,61,96,121,47,205,242,215,43,218,1,104,7,160,29,80,239,118,0,98,0,98,0,98,0,98,64,61,99,192,87,117,196,0,196,128,60,99,128,233,97,29,51,30,48,18,59,109,36,163,190,74,86,116,210,209,30,105,187,4,241,104,229,105,181,234,213,241,200,232,107,50,207,29,145,150,122,36,144,50,82,168,246,35,121,218,115,15,61,110,90,88,137,172,56,167,167,45,75,221,204,23,157,55,190,172,89,106,231,166,149,167,213,170,86,199,118,61,7,185,200,121,174,72,58,49,61,39,37,92,51,43,53,59,237,131,252,147,143,9,142,81,95,233,26,171,150,165,47,208,173,98,60,0,125,129,232,190,64,83,205,170,47,48,78,197,220,32,144,12,51,177,242,20,0,92,88,83,208,172,104,242,117,130,249,74,184,176,7,62,80,47,79,44,19,231,180,125,1,115,94,0,125,1,244,5,208,23,192,220,96,57,98,128,153,43,159,24,240,183,173,136,1,152,27,204,115,110,208,244,48,140,7,148,25,159,194,9,15,0,60,12,0,114,197,148,237,176,65,85,240,247,29,237,129,185,5,141,110,47,51,219,71,161,188,174,151,108,163,52,105,92,222,243,67,248,46,15,112,93,17,42,199,77,158,212,55,167,176,94,47,77,94,86,215,78,27,126,75,2,222,183,86,168,29,248,96,215,91,91,26,222,149,66,230,73,45,27,191,205,103,169,251,124,20,239,111,125,127,64,138,207,42,79,174,87,113,234,240,161,86,142,87,143,166,172,142,164,122,104,130,122,124,60,85,61,98,191,64,246,227,1,111,239,45,219,120,192,225,45,191,194,120,64,59,246,11,44,232,181,198,3,142,232,125,179,242,142,222,100,227,1,239,236,173,245,120,64,127,225,148,251,165,75,245,187,223,31,236,14,205,213,223,38,27,244,183,181,222,250,75,32,137,152,119,127,91,184,230,73,161,191,245,215,105,39,5,35,6,32,6,32,6,212,59,6,228,134,23,71,234,110,1,0,30,86,111,188,128,26,2,224,97,181,198,22,212,16,0,15,211,48,47,128,117,130,152,23,192,153,162,209,120,85,19,49,29,0,234,140,189,244,184,105,97,37,178,226,92,28,237,188,164,200,146,174,155,86,158,86,171,94,29,239,165,91,175,201,60,87,36,157,152,158,147,34,163,89,118,218,7,249,103,137,55,234,113,211,222,168,231,207,185,56,218,121,73,145,37,93,55,173,60,173,86,189,58,126,163,110,189,38,243,92,145,116,98,122,78,138,140,102,217,105,31,228,159,37,222,164,199,77,123,147,158,63,231,226,104,231,37,69,150,116,221,180,242,180,90,245,234,248,77,186,245,154,204,115,69,210,137,233,57,41,50,154,101,167,125,144,63,0,0,101,199,251,42,115,246,84,183,30,55,45,172,68,86,156,139,163,157,151,20,89,210,117,211,202,211,106,213,171,227,110,221,122,77,230,185,34,233,196,244,156,20,25,205,178,211,62,200,63,75,244,234,113,211,122,245,252,57,23,71,59,47,41,178,164,235,166,149,167,213,170,87,199,189,186,245,154,204,115,69,210,137,233,57,41,50,154,101,167,125,144,127,150,24,171,199,77,27,171,231,207,185,56,218,121,73,145,37,93,55,173,60,173,86,189,58,30,171,91,175,201,60,87,36,157,152,158,147,34,163,89,118,218,7,249,103,137,241,122,220,180,241,122,254,156,139,163,157,151,20,89,210,117,211,202,211,106,213,171,227,241,186,245,154,204,115,69,210,137,233,57,41,50,154,101,167,125,144,127,150,56,80,143,155,118,160,158,63,231,226,104,231,37,69,150,116,221,180,242,180,90,245,234,248,64,221,122,77,230,185,34,233,196,244,156,20,25,205,178,211,62,200,63,75,52,245,184,105,77,61,127,206,197,209,206,75,138,44,233,186,105,229,105,181,234,213,113,83,183,94,147,121,174,72,58,49,61,39,69,70,179,236,180,15,242,7,0,17,222,143,219,80,2,88,138,219,118,66,49,65,143,155,22,86,34,43,206,197,209,206,75,138,44,233,186,105,229,105,181,234,213,241,4,221,122,77,230,185,34,233,196,244,156,20,25,205,178,211,62,200,63,75,188,94,143,155,246,122,61,127,206,197,209,206,75,138,44,233,186,105,229,105,181,234,213,241,235,117,235,53,153,231,138,164,19,211,115,82,100,52,203,78,251,32,127,89,252,182,207,15,251,153,59,135,243,44,152,63,88,50,58,213,252,204,231,238,167,18,70,51,74,131,224,119,111,126,75,10,255,231,112,169,120,229,131,229,188,148,221,223,162,17,204,25,37,27,223,34,50,218,240,74,139,234,37,74,94,94,189,185,165,145,165,202,215,95,166,46,226,122,102,156,167,113,114,120,253,77,44,189,88,83,209,239,45,252,187,247,215,42,111,241,11,3,208,53,251,221,130,247,217,133,125,98,200,167,154,159,109,218,225,84,194,104,58,242,133,203,225,124,247,230,183,164,240,127,14,151,138,87,62,88,206,75,217,253,45,26,193,156,81,178,241,45,34,163,13,175,180,168,94,162,228,229,213,155,91,26,89,170,124,253,101,234,34,174,103,198,121,26,39,135,215,223,196,210,139,53,21,253,222,194,191,123,127,173,113,44,30,141,55,232,113,211,222,144,81,11,39,43,58,233,104,231,37,69,150,116,221,180,242,180,90,245,234,248,13,186,245,154,204,115,69,210,137,233,57,41,50,154,101,167,125,144,127,150,152,162,199,77,155,162,231,207,185,56,218,121,73,145,37,93,55,173,60,173,86,189,58,158,162,91,175,201,60,87,36,157,152,158,147,34,163,89,118,218,7,249,103,137,93,244,184,105,187,232,249,115,78,203,73,190,100,86,218,228,73,215,77,43,47,121,219,85,199,233,104,239,162,91,175,201,60,87,36,157,152,158,147,34,163,89,118,218,7,249,103,137,67,244,184,105,135,232,249,115,182,112,84,111,126,180,179,214,38,79,186,110,90,121,201,219,174,58,78,71,251,16,221,122,77,230,185,34,233,196,244,156,20,25,205,178,211,62,200,63,75,236,174,199,77,219,93,207,159,115,90,78,242,37,179,210,38,79,186,110,90,121,201,219,174,58,78,71,123,119,221,122,77,230,185,34,233,196,244,156,20,25,205,178,211,62,200,63,75,188,78,143,155,246,58,61,127,206,105,57,201,151,204,74,155,60,233,186,105,229,37,111,187,234,56,29,237,215,233,214,107,50,207,21,73,39,166,231,164,200,104,150,157,246,65,254,89,98,87,61,110,218,174,122,254,156,211,114,146,47,153,149,54,121,210,117,211,202,75,222,118,213,113,58,218,187,234,214,107,50,207,21,73,39,166,231,164,200,104,150,157,246,65,254,89,226,32,61,110,218,65,122,254,156,139,163,157,151,20,89,210,117,211,202,211,106,213,171,227,131,116,235,53,153,231,138,164,19,211,115,82,100,52,203,78,251,32,255,44,113,176,30,55,237,96,61,127,206,197,209,206,75,138,44,233,186,105,229,105,181,234,213,241,193,186,245,154,204,115,69,210,137,233,57,41,50,154,101,167,125,144,127,150,152,170,199,77,155,170,231,207,217,66,242,121,1,121,25,179,210,38,79,186,110,90,121,201,219,174,58,78,71,123,170,110,189,38,243,92,145,116,98,122,78,138,140,102,217,105,31,228,15,68,97,43,238,27,4,224,97,0,80,99,124,16,231,40,0,109,194,209,240,61,0,168,53,62,132,24,0,212,0,39,141,41,187,132,103,232,168,165,58,224,148,49,240,176,112,60,219,245,92,215,243,93,47,116,189,216,245,82,215,230,174,45,93,47,119,233,218,43,93,91,187,182,117,121,243,245,117,245,119,13,24,207,6,187,134,186,182,119,13,155,169,198,95,23,33,68,33,42,209,181,6,97,198,235,24,50,150,116,147,38,25,71,122,72,111,235,158,248,241,100,2,153,72,38,145,157,140,111,175,34,175,38,175,33,175,37,59,239,184,233,126,87,242,58,178,27,217,157,236,65,246,52,158,189,129,236,69,222,104,188,191,137,236,77,246,33,251,146,253,200,254,173,156,7,146,131,90,239,147,137,35,207,193,228,144,209,111,83,201,52,50,157,204,32,51,201,44,50,219,120,54,199,248,155,75,230,145,249,228,205,228,45,228,173,228,109,198,247,67,201,97,228,159,200,219,91,37,14,39,11,200,17,228,29,228,233,1,93,123,167,241,228,93,228,221,228,61,198,251,145,198,223,123,201,251,140,215,247,147,15,144,163,200,7,201,209,228,67,228,195,228,35,228,163,228,152,86,201,133,173,215,99,201,199,200,199,201,39,200,39,141,111,159,50,254,254,217,248,91,52,42,203,191,144,207,146,207,145,227,140,111,199,27,127,39,144,19,201,73,173,148,147,141,215,83,200,169,228,52,227,253,155,202,25,228,243,198,251,23,201,151,200,151,201,87,200,87,201,215,200,215,201,55,200,255,35,255,74,190,73,254,205,72,209,140,191,111,147,127,39,103,146,239,144,239,146,179,140,111,103,27,127,223,35,223,31,229,114,142,241,254,99,114,46,57,143,156,79,46,32,63,33,255,65,254,147,252,23,249,41,249,217,104,250,207,201,47,90,159,22,183,94,127,77,126,67,126,219,250,116,33,249,29,249,111,242,63,173,207,23,145,223,147,255,37,255,71,254,64,46,38,151,144,75,201,31,201,101,46,235,94,78,174,48,190,93,73,254,68,174,50,222,175,38,127,38,127,33,75,201,53,228,175,228,111,228,239,228,90,114,29,89,102,60,191,158,220,48,90,102,57,89,97,124,186,201,248,187,153,172,36,183,144,91,141,79,183,145,219,91,169,119,144,59,201,93,173,79,119,147,123,140,247,251,200,253,198,235,42,242,32,121,136,60,108,124,90,109,252,173,33,143,144,71,201,99,228,113,242,132,241,109,45,121,146,172,35,235,201,6,242,20,217,72,54,25,79,158,38,207,144,127,144,103,201,115,228,121,242,66,139,214,139,228,37,227,125,51,217,66,94,38,175,144,173,198,231,109,164,143,244,147,1,50,72,134,200,118,50,76,70,136,78,186,20,162,40,138,170,232,26,85,26,198,235,24,101,172,210,173,52,149,113,74,143,210,107,124,31,175,76,80,38,42,147,148,157,140,207,175,82,94,173,188,70,121,173,241,105,103,101,23,101,87,229,117,202,110,198,231,221,149,61,148,61,149,215,43,111,48,62,191,81,121,147,178,183,178,143,241,105,95,101,63,101,127,229,0,229,64,229,32,101,178,50,69,57,88,57,68,153,170,76,83,166,43,51,148,153,70,250,44,101,182,241,106,122,152,137,57,198,231,121,202,124,229,205,202,91,148,183,26,159,223,166,28,170,28,214,58,191,240,159,148,183,43,135,43,11,148,35,140,111,239,80,222,105,188,190,75,121,183,242,30,227,253,72,229,189,202,251,90,121,222,175,124,64,57,74,249,160,114,116,235,219,135,148,15,43,31,81,62,170,28,163,44,84,142,53,158,124,204,248,251,132,242,73,229,83,202,63,183,210,23,181,94,63,173,124,166,245,254,47,202,103,149,207,25,159,142,83,142,87,78,80,78,84,78,82,78,86,78,81,78,85,78,83,78,87,206,80,62,175,124,65,249,162,242,37,101,235,128,31,198,120,102,235,157,118,53,92,113,192,155,102,125,242,126,115,127,183,159,186,159,120,63,187,169,122,211,253,79,109,218,22,71,119,201,32,13,191,92,65,169,253,18,185,185,242,181,112,151,228,151,119,36,227,83,246,243,17,115,225,107,224,150,205,75,141,39,165,223,94,65,205,131,86,243,214,138,215,14,98,94,126,142,60,143,240,243,247,219,152,175,173,168,254,120,180,162,236,25,230,159,124,31,137,147,35,156,27,175,190,120,53,226,151,80,148,39,220,219,189,117,206,251,213,242,17,221,14,88,65,121,237,128,145,46,189,235,38,106,181,3,110,166,148,172,164,183,80,127,59,224,86,122,27,53,219,1,183,211,73,228,14,234,180,3,238,52,62,223,69,253,237,128,215,19,126,59,224,0,98,182,3,238,166,247,208,201,228,94,122,31,189,159,62,64,87,209,96,59,224,65,250,16,157,77,30,166,50,237,128,201,234,59,90,159,195,219,1,171,169,221,14,88,99,72,251,8,93,72,30,165,118,59,224,49,234,109,7,124,218,120,253,12,241,182,3,30,167,79,80,127,59,96,80,57,157,152,237,128,47,144,176,118,192,183,136,211,14,88,107,240,124,210,248,91,71,205,118,192,15,200,15,201,57,228,71,228,199,100,61,221,64,159,162,27,41,175,29,176,137,254,146,152,237,128,95,17,187,29,240,52,125,134,218,237,128,127,80,153,118,192,179,212,108,7,60,71,151,144,231,169,191,29,240,2,93,70,94,164,102,59,224,70,163,212,75,116,57,217,76,205,118,192,22,250,50,245,183,3,94,161,238,118,192,189,196,108,7,60,64,182,82,171,29,176,141,174,38,125,52,216,14,232,167,97,237,128,1,106,183,3,6,169,124,59,128,41,78,59,96,136,122,219,1,75,21,94,59,96,59,117,218,1,123,41,102,59,96,152,134,183,3,70,232,142,118,0,181,173,57,71,153,171,120,219,1,164,161,52,236,118,128,218,88,160,208,70,163,193,111,7,176,134,211,14,24,211,240,182,3,198,54,204,118,192,199,149,168,118,64,119,227,56,165,217,24,215,232,105,244,54,78,86,198,55,38,52,38,54,38,53,156,118,0,250,139,0,80,52,110,234,41,147,52,147,250,252,176,159,57,57,156,124,55,247,4,243,7,75,70,167,122,169,134,81,9,163,201,211,192,162,44,162,232,206,111,235,230,47,23,46,85,80,11,94,57,47,101,158,76,113,172,24,37,27,223,34,50,218,240,74,139,234,37,204,79,68,245,230,150,70,214,2,124,253,101,234,34,174,103,198,121,26,39,199,202,30,255,47,40,204,110,97,154,249,243,136,61,219,237,105,126,219,71,161,190,99,130,209,125,1,140,9,98,76,48,205,152,160,211,23,40,247,152,96,48,6,124,168,207,29,3,62,212,135,241,0,140,7,96,60,192,61,30,240,161,62,140,7,0,213,198,221,165,234,141,2,64,145,184,207,240,254,251,19,254,2,30,40,213,47,103,85,225,210,60,216,243,80,207,195,61,171,71,249,174,233,121,132,35,193,163,136,46,9,241,152,208,114,143,231,110,211,96,95,224,35,158,190,192,71,208,23,64,95,0,125,1,79,95,224,35,232,11,0,21,199,179,248,111,13,132,182,3,176,70,8,237,0,180,3,176,70,8,0,128,124,241,98,105,90,99,104,7,160,29,128,118,0,218,1,101,134,50,144,46,61,126,201,112,138,238,84,251,115,176,68,114,169,178,213,49,107,73,226,242,229,89,171,60,94,148,183,68,233,233,39,163,208,78,75,183,3,159,25,136,159,210,9,218,101,71,181,19,236,84,102,155,103,69,15,181,38,194,47,75,127,86,9,80,86,28,139,243,156,128,154,226,83,59,254,135,124,44,197,175,224,227,248,5,117,8,112,142,16,246,12,97,207,80,189,207,17,194,190,65,196,0,196,128,122,239,27,172,122,59,230,185,129,226,75,2,0,60,172,56,28,63,80,52,229,112,142,238,84,251,115,176,68,182,82,159,171,150,209,126,50,124,121,214,42,143,23,229,45,81,122,250,201,40,28,223,97,177,231,132,129,162,41,135,115,116,167,218,159,131,37,178,149,58,13,181,19,6,218,89,111,60,107,149,199,139,242,150,40,61,253,100,20,78,232,176,24,240,214,8,125,254,185,55,47,202,209,165,236,207,65,74,206,147,183,14,148,219,126,249,242,205,147,123,28,218,188,188,111,29,200,219,54,237,181,125,28,188,165,212,81,35,74,186,228,210,39,43,233,46,101,127,14,82,114,158,180,219,186,197,242,247,235,157,39,247,56,180,121,121,223,50,144,183,109,218,85,247,241,249,94,61,36,78,155,218,180,222,23,237,248,111,59,173,233,207,51,189,25,95,202,25,205,44,164,91,52,54,60,221,198,167,123,227,82,14,226,220,177,193,82,246,231,32,37,243,201,133,99,237,79,23,141,13,210,155,153,192,106,198,120,115,115,118,115,229,88,185,188,107,140,124,115,154,124,45,55,74,208,216,44,197,135,118,55,186,89,183,173,169,195,205,250,100,190,206,109,105,58,79,160,239,158,221,241,173,48,187,123,78,119,188,250,227,229,189,122,40,158,7,204,111,198,255,101,125,183,251,172,88,250,45,142,200,253,153,222,164,218,86,25,39,14,20,77,57,156,163,59,213,254,28,44,113,98,105,198,4,79,28,104,103,189,241,172,85,30,47,202,91,162,244,244,147,81,136,91,234,13,3,126,216,207,156,28,78,62,94,254,96,201,232,84,47,213,48,42,97,52,121,26,88,148,69,20,221,249,109,221,252,229,194,165,10,106,193,43,231,165,204,147,41,142,21,163,100,227,91,68,70,27,94,105,81,189,132,249,137,168,222,220,210,200,74,18,253,68,84,23,113,61,51,206,211,56,57,130,191,160,48,187,133,105,230,207,35,246,108,183,167,249,109,31,133,215,7,160,107,246,187,5,235,147,55,141,15,249,84,47,213,48,42,97,52,109,249,252,249,121,207,156,18,222,207,110,205,172,207,225,82,5,181,224,149,243,82,230,201,20,199,138,81,178,241,45,34,163,13,175,180,168,94,194,252,68,84,111,110,105,100,37,137,126,34,170,139,184,158,25,231,105,156,28,193,95,80,152,221,194,52,243,231,17,123,182,219,211,252,182,143,66,167,157,31,32,183,78,176,222,231,7,252,186,71,102,157,224,103,123,195,207,15,176,214,9,222,216,42,21,118,126,128,119,157,160,255,252,0,115,157,96,252,243,3,62,215,155,246,252,128,227,122,143,239,173,194,249,1,238,117,130,56,71,8,0,218,133,147,177,63,10,40,49,78,129,127,2,0,80,90,156,138,8,5,164,4,27,40,23,101,119,41,251,115,144,18,43,205,186,171,98,36,241,114,49,191,89,79,202,98,7,190,28,241,165,139,87,162,93,218,151,199,251,178,193,216,129,114,81,118,151,178,63,7,41,141,45,77,45,20,35,137,151,139,249,205,122,82,22,59,240,229,136,47,93,188,18,237,210,190,60,222,151,13,14,24,72,151,158,71,73,63,133,32,165,3,58,172,22,146,218,166,44,118,224,203,145,183,116,237,210,190,211,188,111,122,132,62,167,245,230,69,89,158,66,144,210,244,218,199,0,203,2,101,177,3,95,142,188,165,107,151,246,217,242,157,26,88,35,93,244,126,129,3,67,244,49,247,11,28,152,88,223,120,37,207,29,43,166,16,164,100,62,185,112,71,137,118,238,23,224,167,229,177,95,128,103,27,243,53,175,253,2,233,235,58,158,7,196,223,47,112,224,64,214,251,5,242,240,108,220,49,18,111,141,208,233,189,184,99,4,119,140,116,218,29,35,136,1,136,1,136,1,184,103,168,204,152,60,80,46,202,238,82,246,231,32,165,201,165,25,15,104,175,36,101,177,3,95,142,188,165,107,151,246,229,241,62,0,40,47,190,216,251,37,172,94,170,200,152,224,254,17,99,130,201,177,127,162,49,65,119,41,251,115,144,210,254,165,25,19,228,107,153,255,152,160,197,119,255,146,140,9,242,173,176,127,206,99,130,251,183,105,76,112,255,76,219,1,31,233,79,242,36,9,221,36,57,147,112,78,90,218,206,237,46,197,123,230,60,113,158,242,56,37,147,253,35,253,38,228,37,22,229,150,161,33,199,39,92,34,199,14,162,60,201,188,39,110,169,96,254,253,6,246,27,72,230,1,249,212,86,22,30,157,45,149,242,160,119,160,252,148,131,148,122,209,35,43,149,29,248,114,228,45,93,187,180,239,52,239,251,210,64,249,41,7,41,125,9,49,160,84,118,224,203,145,183,116,237,210,190,211,188,111,238,64,121,41,219,20,130,148,230,34,6,148,202,14,124,57,242,150,174,93,218,119,154,247,205,25,40,47,101,155,66,144,210,28,196,128,82,217,129,47,71,222,210,181,75,251,78,243,190,153,3,229,165,108,83,8,82,154,137,24,80,42,59,240,229,200,91,186,118,105,223,105,222,247,229,129,242,83,14,82,250,50,98,64,169,236,192,151,35,111,233,218,165,61,188,175,110,120,111,179,88,126,239,107,150,209,10,249,226,3,37,208,249,168,26,218,221,66,115,160,92,148,221,165,236,207,65,74,205,210,68,226,118,73,98,241,45,139,29,248,114,228,45,93,123,109,47,143,232,61,67,22,252,123,134,140,103,198,159,181,103,72,37,186,214,32,140,248,247,12,153,229,204,61,67,19,201,36,178,19,113,246,12,237,188,99,119,138,123,207,144,174,241,247,12,233,154,185,103,200,124,159,236,218,213,18,220,51,52,147,204,34,178,103,139,31,65,100,246,12,29,77,236,61,67,199,180,114,47,108,189,90,123,134,62,65,188,123,134,44,89,188,123,134,78,32,39,18,255,158,33,93,251,166,98,238,25,210,181,176,61,67,186,230,236,25,58,203,248,118,182,241,247,61,242,253,81,46,231,24,239,63,38,231,146,243,200,249,228,2,194,219,51,244,139,214,167,197,173,87,107,207,144,249,201,222,51,100,126,142,222,51,164,107,230,158,161,171,140,247,171,137,127,207,208,117,196,62,91,220,202,191,156,172,32,230,158,33,93,187,153,132,159,45,174,107,230,158,33,93,91,69,156,179,197,117,45,184,103,104,29,9,219,51,164,107,246,158,161,45,68,126,207,144,225,159,59,246,12,245,40,222,61,67,134,119,114,246,12,233,154,179,103,72,215,204,61,67,123,43,225,123,134,102,40,59,246,12,237,176,230,28,227,179,119,207,208,161,202,97,173,116,115,207,208,225,202,2,229,8,227,91,244,217,226,230,55,247,158,161,99,21,115,207,144,174,69,237,25,210,181,227,148,227,149,19,148,19,149,147,148,147,149,83,148,83,149,211,148,211,149,234,236,25,186,112,160,92,148,221,165,236,207,65,74,23,150,166,29,80,140,36,95,237,229,243,45,139,29,248,114,196,151,238,107,189,233,185,118,74,157,23,135,158,129,242,82,190,164,33,162,212,131,81,153,82,217,129,47,71,222,210,181,75,251,78,243,190,25,3,229,162,124,113,67,134,210,140,210,212,194,165,141,246,240,253,99,163,76,118,224,203,145,183,116,237,210,190,60,222,87,118,92,9,75,213,188,174,243,246,128,236,233,255,107,47,124,58,26,255,134,93,225,145,208,74,97,163,111,149,180,166,14,233,202,248,191,114,87,30,82,206,9,161,58,119,52,109,94,134,156,207,172,208,239,106,37,34,97,69,108,84,214,154,202,90,174,124,244,12,163,106,167,225,183,0,0,157,134,239,228,242,223,24,235,3,176,62,0,235,3,176,62,160,158,184,187,195,78,91,1,226,214,181,140,7,164,241,146,236,61,44,138,98,50,142,104,7,212,175,29,112,86,47,218,1,104,7,116,78,59,224,205,181,221,73,1,164,197,15,49,135,84,115,188,103,16,54,0,224,97,201,251,2,230,61,67,78,95,128,146,184,125,129,93,136,191,47,16,126,207,144,213,23,184,76,157,210,250,116,185,90,182,190,0,239,158,33,126,95,224,10,53,222,61,67,222,190,128,115,207,80,120,95,192,127,207,144,187,47,96,126,150,239,11,44,33,97,125,129,27,73,188,190,128,125,207,80,59,250,2,238,123,134,228,250,2,87,170,254,123,134,146,245,5,252,247,12,101,217,23,136,190,103,40,170,47,128,241,0,204,11,96,60,160,222,227,1,136,1,136,1,136,1,245,142,1,255,53,228,135,174,217,239,110,120,211,220,223,156,103,222,84,139,66,144,174,253,220,155,202,203,231,151,198,250,230,200,227,150,204,157,159,247,44,40,145,67,209,91,142,167,143,205,41,168,17,175,156,87,206,32,159,112,136,168,5,159,6,245,119,120,250,75,4,53,231,113,118,211,20,75,234,215,40,168,165,195,61,200,223,47,151,216,171,68,54,227,73,24,110,215,96,170,159,47,223,139,101,60,84,68,215,255,219,225,123,180,227,43,126,171,240,126,65,65,251,242,234,133,103,123,30,236,114,63,11,64,215,236,119,55,188,105,238,111,206,51,111,170,69,33,72,215,126,238,77,229,229,243,75,99,125,115,228,113,75,230,206,207,123,22,148,200,161,232,45,199,211,199,230,20,212,136,87,206,43,103,144,79,56,68,212,130,79,131,250,59,60,253,37,130,154,243,56,187,105,138,37,245,107,20,212,210,225,30,228,127,110,175,87,46,177,87,137,108,198,147,48,220,174,193,84,63,95,190,23,203,120,168,136,174,255,183,195,247,104,199,87,252,86,225,253,130,130,246,229,213,11,207,246,60,4,235,61,27,156,135,249,22,0,168,20,126,58,228,135,253,140,151,207,155,223,250,230,60,243,83,243,210,119,231,51,63,243,185,243,121,56,101,108,185,28,9,131,165,121,207,130,18,57,20,189,229,120,250,216,156,130,26,241,202,121,229,12,242,9,135,136,90,240,105,80,127,135,167,191,68,80,115,30,103,55,77,177,164,126,141,130,90,58,220,131,252,253,114,137,189,74,100,51,158,132,225,118,13,166,250,249,242,189,88,198,67,69,116,69,191,49,191,69,220,126,229,215,216,239,111,65,251,242,234,133,103,251,176,223,126,250,185,65,93,219,71,165,100,95,117,63,85,52,38,184,191,58,137,28,160,58,99,130,230,243,100,115,131,186,54,133,136,198,4,15,84,15,82,101,199,4,39,171,50,99,130,198,8,204,232,152,160,197,201,61,38,56,69,141,158,27,52,17,28,19,60,88,106,110,80,215,236,49,193,67,12,203,77,53,254,166,169,222,185,65,187,102,120,99,130,186,150,213,220,224,116,117,9,153,161,122,199,4,205,28,254,185,65,243,213,28,19,156,169,70,205,13,234,154,57,55,168,107,225,99,130,186,182,222,248,139,30,19,156,165,38,155,27,212,53,217,49,65,93,115,207,13,206,81,195,199,4,13,11,72,204,13,206,85,231,169,246,152,160,174,45,104,229,141,55,38,104,120,163,50,95,149,157,27,228,3,251,5,128,186,227,2,244,91,91,248,143,33,63,236,103,188,124,222,252,214,55,231,153,159,154,151,190,59,159,249,153,207,157,207,195,41,99,203,229,72,24,44,205,123,22,148,200,161,232,45,199,211,199,230,20,212,136,87,206,43,103,144,79,56,68,212,130,79,131,250,59,60,253,37,130,154,243,56,187,105,138,37,245,107,20,212,210,225,30,228,239,151,75,236,85,34,155,241,36,12,183,107,48,213,207,151,239,197,50,30,42,162,43,250,141,249,45,226,246,43,191,198,126,127,11,218,151,87,47,60,219,135,253,246,171,30,195,126,88,121,13,234,130,242,213,20,124,199,2,198,3,48,30,128,241,128,176,241,128,175,52,59,125,60,0,49,160,156,49,224,11,77,94,12,248,98,179,250,49,224,203,77,196,128,172,98,192,215,154,24,19,52,252,125,40,252,123,94,124,128,234,91,16,117,218,25,56,11,245,136,154,130,239,212,26,63,195,252,78,85,218,1,165,171,169,95,192,119,164,113,254,80,220,180,243,135,242,231,204,207,33,207,57,94,206,243,135,138,181,107,26,90,231,15,181,219,43,226,228,207,83,90,139,54,191,254,206,31,226,113,150,245,39,30,61,127,138,140,102,217,105,31,228,47,139,159,12,249,97,63,179,115,156,219,239,228,243,230,183,190,57,207,252,212,188,244,221,249,204,207,124,238,124,30,78,25,91,46,251,217,185,253,222,210,230,247,160,28,60,137,116,237,232,134,155,126,152,62,150,21,120,26,241,202,121,229,116,36,231,217,40,74,127,175,108,126,235,250,109,232,200,233,151,202,157,115,86,67,100,121,55,77,177,164,126,141,130,90,58,220,157,92,222,154,10,218,61,232,85,34,155,241,36,12,183,43,223,166,110,137,248,94,44,227,161,162,186,18,253,198,252,53,226,246,43,191,198,126,127,19,255,214,130,191,43,183,237,195,127,251,56,71,8,231,8,225,28,161,122,159,35,84,141,222,72,30,120,35,206,19,4,224,97,26,206,22,199,57,66,56,71,8,103,137,33,6,32,6,32,6,32,6,96,60,0,227,1,24,15,192,185,194,104,7,160,29,128,118,0,218,1,136,1,136,1,136,1,117,139,1,179,7,253,208,53,251,221,13,111,26,239,27,239,187,251,137,255,179,55,85,68,197,45,141,83,206,122,234,150,76,78,46,119,126,135,162,35,17,175,180,152,182,35,145,40,37,200,39,26,193,156,178,178,121,45,226,45,17,212,92,84,90,148,26,230,39,126,157,189,118,13,231,25,229,85,226,250,20,121,151,140,77,229,158,198,41,231,79,23,89,51,204,34,225,86,19,211,242,122,154,195,95,78,94,140,7,96,60,0,227,1,88,31,0,0,64,117,241,223,41,247,61,96,60,0,227,1,24,15,192,152,96,93,99,192,127,109,149,143,1,255,181,53,42,6,152,57,16,3,16,3,100,99,128,233,47,229,136,1,245,109,65,13,141,160,21,9,192,195,116,109,198,160,31,246,51,94,62,111,126,127,233,224,119,247,19,255,103,62,119,17,15,43,183,93,206,122,26,165,65,240,187,59,191,67,209,145,136,87,90,76,219,145,72,148,18,228,19,141,96,78,89,217,188,22,241,150,8,106,46,42,45,74,13,243,19,191,206,94,187,134,243,140,242,42,113,125,138,188,75,198,166,114,79,227,148,243,167,139,172,25,102,145,112,171,137,105,121,61,205,225,47,43,111,93,113,48,246,12,1,240,176,18,226,205,131,197,115,122,243,96,103,106,88,30,206,213,145,40,47,237,204,207,101,213,118,234,160,31,246,51,94,62,111,126,127,233,224,119,247,19,255,103,62,119,17,15,43,183,93,206,122,26,165,65,240,187,59,191,67,209,145,136,87,218,47,135,95,11,94,57,47,101,247,183,104,4,115,70,201,230,181,184,87,82,175,20,188,122,241,151,22,165,134,249,137,95,231,160,189,194,106,59,220,171,196,245,41,242,46,25,155,202,61,141,83,206,159,46,178,102,152,69,194,173,38,166,229,245,52,135,191,156,188,213,90,35,20,118,182,184,53,47,240,251,222,188,230,6,233,152,133,100,111,150,118,141,208,160,82,149,53,66,251,176,244,107,132,26,99,242,89,35,180,47,203,122,141,208,82,37,106,94,32,223,53,66,108,12,214,8,1,64,254,248,67,165,79,17,189,56,39,233,131,237,128,49,234,43,93,99,213,178,172,15,232,86,177,70,8,235,3,162,215,7,52,213,172,214,7,140,83,235,182,70,8,255,27,128,186,227,210,154,159,49,142,118,64,30,237,128,63,246,162,29,128,118,0,218,1,157,143,135,135,226,167,228,197,17,128,237,128,184,88,13,159,0,224,97,64,45,113,57,238,216,2,92,192,222,97,204,11,96,223,96,189,247,14,35,10,214,15,55,161,141,90,81,92,137,22,28,192,193,85,240,11,0,168,53,150,32,6,0,0,16,11,141,156,206,182,232,31,3,219,230,139,171,17,239,51,197,110,216,221,13,192,195,58,0,47,14,23,95,18,168,187,239,116,150,135,97,110,176,29,115,131,75,123,49,55,136,185,65,204,13,102,131,115,71,138,47,9,0,240,48,0,224,225,175,24,179,170,32,112,215,24,238,26,195,93,99,184,123,28,227,1,88,43,140,241,0,220,51,132,24,128,24,128,24,128,24,192,143,1,43,168,168,47,112,19,181,98,192,205,148,146,149,244,22,234,143,1,183,210,219,168,25,3,110,167,147,200,29,212,137,1,119,26,159,239,162,241,250,2,119,211,123,232,100,114,47,189,143,222,79,31,160,171,104,48,6,60,72,31,162,179,201,195,84,38,6,76,86,101,98,192,106,106,199,128,53,134,180,143,208,133,228,81,106,199,128,199,104,116,95,224,113,250,4,13,158,41,122,58,137,215,23,88,107,240,124,210,248,91,71,189,125,129,245,116,3,125,138,110,164,188,24,176,137,250,251,2,79,211,103,168,29,3,254,65,101,98,192,179,212,140,1,207,209,37,228,121,234,143,1,47,208,101,228,69,106,247,5,94,162,203,201,102,106,198,128,45,244,101,234,143,1,175,80,94,95,96,43,181,98,192,54,186,154,244,209,96,12,232,167,97,49,96,128,218,49,96,144,38,235,11,12,81,153,51,69,183,83,127,95,96,152,134,199,128,17,186,35,6,80,113,95,128,52,148,134,29,3,212,198,2,133,54,26,13,126,12,96,13,39,6,140,105,120,99,192,216,134,92,95,160,187,113,156,210,108,140,107,244,52,122,27,39,43,227,27,19,26,19,27,147,26,216,51,4,228,129,101,24,19,172,209,152,32,250,2,232,11,160,47,128,241,0,196,0,196,0,196,0,172,17,170,46,110,221,142,86,32,0,15,19,227,198,142,239,217,221,129,24,208,225,88,222,11,15,3,0,160,172,88,129,241,83,0,168,53,110,66,12,104,59,238,68,75,13,128,135,105,152,27,196,188,0,230,5,48,47,80,87,44,194,25,34,64,27,61,108,101,105,250,2,213,218,55,168,107,83,72,57,219,1,242,251,6,227,174,21,198,190,193,246,237,27,116,183,3,58,119,223,32,162,117,253,112,27,70,163,128,76,219,1,186,182,143,74,201,190,234,126,170,168,29,176,191,58,137,28,160,58,237,0,243,121,246,237,128,3,213,131,84,217,118,128,220,158,33,35,234,142,182,3,44,78,238,118,192,20,53,186,29,96,34,216,14,56,88,234,252,0,93,179,219,1,135,24,150,155,106,252,77,83,189,237,0,187,102,120,237,0,93,203,170,29,48,93,93,66,102,168,222,118,128,153,195,223,14,48,95,205,118,192,76,53,170,29,160,107,102,59,64,215,194,219,1,186,182,222,248,139,110,7,204,82,147,181,3,116,77,182,29,48,91,117,183,3,230,168,225,237,0,195,2,18,237,128,185,234,60,213,110,7,232,218,130,86,222,120,237,0,195,27,149,249,170,108,59,128,143,180,107,133,209,23,64,95,0,125,1,156,33,18,127,94,224,206,222,44,231,5,174,83,139,139,1,203,12,94,119,245,198,153,23,184,65,181,99,192,141,106,59,230,5,150,171,226,121,129,21,106,116,12,184,73,149,155,23,184,89,77,51,47,176,82,141,31,3,110,81,111,85,171,49,47,112,155,122,187,218,185,123,134,208,14,64,59,0,237,128,122,183,3,16,3,16,3,16,3,48,47,80,119,220,135,241,117,0,243,2,152,23,192,188,0,230,5,106,58,47,160,99,173,48,214,10,99,173,48,206,17,66,12,64,12,64,12,192,126,1,64,2,15,118,208,200,193,67,9,116,121,167,96,229,252,195,57,217,101,117,135,143,212,172,201,84,63,180,3,208,14,200,179,29,240,13,21,237,128,178,183,3,158,26,244,195,24,137,25,125,119,195,155,102,125,242,126,115,127,119,40,4,233,58,180,55,52,249,124,121,52,172,119,175,60,110,201,248,114,5,165,246,127,118,115,229,107,225,205,237,215,200,249,243,210,246,218,49,168,29,159,11,95,3,183,108,94,106,60,41,253,246,18,105,46,42,237,80,8,151,212,95,7,124,143,240,243,247,219,152,175,173,168,254,120,180,162,236,25,230,159,124,31,137,147,35,202,50,193,250,178,63,63,209,27,124,26,244,18,255,175,38,204,87,188,117,206,251,213,134,121,141,222,68,123,189,46,232,26,55,140,218,246,224,201,2,122,14,100,92,154,210,74,236,210,234,184,252,117,42,11,88,98,93,31,192,205,208,64,174,128,135,1,245,195,58,172,154,234,80,124,126,40,110,90,88,137,172,56,23,71,59,47,41,178,164,235,166,149,167,213,170,87,199,159,31,178,94,147,121,174,72,58,49,61,39,69,70,179,236,180,15,242,175,59,214,119,224,127,164,13,248,47,11,180,9,95,24,138,155,246,133,161,252,57,23,71,59,47,41,178,164,235,166,245,133,161,118,123,69,153,234,248,11,67,214,107,50,207,21,73,39,166,231,164,200,104,150,157,246,65,254,178,168,214,190,193,203,84,107,191,192,229,106,117,247,13,94,161,98,223,96,85,246,13,94,169,98,223,160,133,83,135,226,166,157,154,81,116,59,53,199,255,17,242,180,243,146,34,75,186,110,90,167,22,210,14,168,74,29,159,58,100,189,38,243,92,145,116,98,122,78,138,140,102,217,105,31,228,159,119,59,64,199,58,65,172,19,196,126,1,236,23,0,128,80,108,194,40,102,135,224,140,161,184,105,103,12,229,207,185,56,218,121,73,145,37,93,55,173,51,134,218,237,21,101,170,227,51,134,172,215,100,158,43,146,78,76,207,73,145,209,44,59,237,131,252,179,196,151,135,226,166,125,121,40,127,206,197,209,206,75,138,44,233,186,105,125,185,144,24,80,149,58,254,242,144,245,154,204,115,69,210,137,233,57,41,50,154,101,167,125,144,127,150,248,210,80,220,180,47,13,229,207,185,56,218,121,73,145,37,93,55,173,47,21,18,3,170,82,199,95,26,178,94,147,121,174,72,58,49,61,39,69,70,179,236,180,15,242,151,69,157,199,4,175,217,42,63,38,120,205,214,168,49,65,51,7,198,4,147,140,9,126,171,209,254,49,193,165,74,209,99,130,166,191,84,123,76,240,223,27,69,252,175,201,23,151,111,205,50,111,28,106,0,0,127,41,3,206,219,154,101,222,243,80,167,181,192,89,141,226,189,175,253,24,24,137,155,54,48,146,63,231,226,104,231,37,69,150,116,221,180,6,70,218,237,21,101,170,227,129,17,235,53,153,231,138,164,19,211,115,82,100,52,203,78,251,32,255,44,113,250,80,220,180,211,135,242,231,92,28,237,188,164,200,146,174,155,214,233,133,140,9,86,165,142,79,31,178,94,147,121,174,72,58,49,61,39,69,70,179,236,180,15,242,7,162,240,65,216,10,128,135,105,249,207,11,28,167,98,173,112,85,231,5,78,84,59,109,173,240,73,42,111,94,224,100,149,191,86,248,174,102,94,243,2,167,170,214,90,225,187,155,237,156,23,56,93,205,115,173,240,209,67,229,162,147,142,118,94,82,84,141,110,53,235,216,162,31,228,194,231,235,127,42,146,78,76,207,73,57,186,208,118,192,209,104,215,198,198,71,97,51,0,30,6,0,185,226,25,236,25,234,16,92,60,20,191,196,197,67,197,112,142,202,33,78,151,151,80,46,103,18,43,229,83,23,23,15,21,225,13,89,112,49,105,228,33,173,91,70,235,115,144,11,223,71,253,207,68,210,241,232,249,83,194,53,203,90,239,139,107,219,234,248,7,254,211,0,9,241,44,124,167,35,240,7,244,185,0,248,78,186,88,136,243,4,113,158,32,206,19,172,245,121,130,136,1,136,1,136,1,136,1,56,79,16,107,132,112,158,32,206,19,212,181,30,230,124,238,101,249,245,62,38,228,72,59,12,19,61,124,39,237,248,182,83,10,121,94,149,177,46,175,110,147,109,226,224,235,163,50,190,86,40,235,206,129,148,93,4,121,119,205,73,223,23,91,163,125,187,177,221,83,211,223,163,132,53,178,103,198,50,161,29,208,142,118,192,230,94,180,3,208,14,40,75,59,224,67,219,252,48,248,140,190,187,225,77,115,127,115,158,121,83,45,10,65,250,78,57,126,170,88,26,235,155,35,143,28,5,175,132,254,207,110,205,196,250,216,60,189,28,29,137,252,218,187,229,12,242,137,39,179,152,135,187,102,252,114,250,75,184,115,222,52,36,170,23,55,77,177,164,126,43,4,45,19,172,99,191,15,5,237,30,244,42,145,4,209,18,134,89,83,228,171,34,203,203,80,227,215,21,175,134,130,53,226,182,158,223,75,252,150,185,178,87,244,219,227,121,52,255,151,28,148,107,110,0,198,127,209,209,119,55,188,105,238,111,206,51,111,170,69,33,72,215,126,238,77,229,229,243,75,99,125,115,228,113,75,230,206,207,123,22,148,200,161,232,45,199,211,199,230,20,212,136,87,206,43,103,144,79,56,68,212,130,79,131,250,59,60,253,37,130,154,243,56,187,105,138,37,181,114,188,220,27,172,77,191,237,220,158,227,181,64,208,238,65,253,69,54,227,73,24,110,215,96,170,159,47,223,139,101,60,84,68,215,255,219,225,123,180,227,43,126,171,240,126,65,65,251,6,237,226,254,117,240,126,201,65,185,202,223,255,12,199,29,35,197,151,4,0,120,88,121,112,245,72,241,37,1,160,147,60,44,253,250,0,93,219,71,165,100,95,117,63,85,52,38,184,191,58,137,28,160,58,99,130,173,145,226,68,235,3,116,109,10,17,141,9,30,168,30,164,202,142,9,78,86,101,198,4,141,30,211,232,152,160,197,201,61,38,56,69,141,94,31,96,34,56,38,120,176,212,250,0,93,179,199,4,15,49,44,55,213,248,155,166,122,215,7,216,53,195,27,19,212,181,172,214,7,76,87,151,144,25,170,119,76,208,204,225,95,31,96,190,154,99,130,51,213,168,245,1,186,102,174,15,208,181,240,49,65,93,91,111,252,69,143,9,206,82,147,173,15,48,230,190,36,199,4,103,171,238,245,1,115,212,240,49,65,195,2,18,235,3,230,170,243,84,123,76,80,215,22,180,242,198,27,19,52,188,81,153,175,202,174,15,224,195,30,19,220,56,232,135,174,217,239,110,120,211,172,79,222,111,238,239,14,133,32,93,55,109,62,95,30,13,235,221,43,79,144,134,95,174,160,212,254,207,110,174,124,45,188,185,253,26,57,127,94,218,94,59,134,201,196,179,127,208,50,94,141,69,165,189,182,113,203,27,212,92,84,218,161,16,46,169,191,14,248,30,225,231,239,183,49,95,219,112,91,249,37,12,183,103,152,127,242,125,36,78,142,40,203,4,235,139,87,35,126,9,69,121,194,189,221,91,231,188,95,45,31,152,27,196,26,33,204,13,214,123,110,16,49,160,216,24,48,168,32,6,32,6,32,6,160,29,128,24,128,24,128,24,128,24,128,24,128,24,80,237,187,198,128,242,99,16,103,100,0,57,206,13,162,29,128,118,0,218,1,157,218,23,216,222,139,24,128,24,128,24,80,190,24,48,220,139,241,128,206,137,1,58,246,13,34,6,96,76,176,214,49,128,140,71,12,64,12,192,152,32,0,180,27,234,248,50,72,65,75,33,5,0,212,17,141,82,252,250,24,98,0,144,19,198,192,183,0,9,96,60,0,243,2,24,15,192,152,160,55,6,116,143,71,12,64,12,64,12,40,95,12,104,142,199,152,32,16,15,61,232,11,0,53,192,111,70,138,47,9,0,240,48,0,168,54,122,209,70,218,1,140,9,98,60,0,227,1,88,35,84,101,44,30,41,190,36,0,192,195,202,131,95,141,20,95,18,0,58,201,195,156,190,192,132,241,86,95,224,15,204,234,11,92,204,46,97,151,178,63,178,203,216,229,236,10,102,245,5,174,100,97,247,14,255,137,121,251,2,87,177,37,204,233,11,92,205,156,190,192,159,153,121,174,240,95,24,239,92,225,165,204,221,23,184,134,89,231,10,255,149,253,141,77,38,127,103,83,200,181,236,58,182,140,137,250,2,215,179,57,228,6,230,237,11,220,200,236,190,192,114,182,130,89,125,129,137,227,173,190,192,77,204,234,11,220,204,236,190,192,74,198,239,11,220,194,204,190,192,173,204,233,11,220,198,62,69,110,103,246,185,194,119,48,231,92,225,59,153,211,23,184,139,153,125,129,187,153,221,23,184,135,133,159,43,124,47,243,223,59,124,31,59,155,220,207,204,190,192,3,44,252,222,225,85,6,175,7,153,251,222,225,135,152,213,23,120,152,173,102,217,222,59,188,134,5,239,29,126,132,217,125,129,71,153,217,23,120,140,61,206,172,190,192,19,108,45,147,187,119,248,73,230,239,11,172,99,209,125,129,245,44,172,47,176,129,201,223,59,252,20,115,250,2,27,217,164,241,193,123,135,55,177,240,190,192,211,204,236,11,60,51,122,43,224,179,204,123,174,240,115,204,234,11,60,207,94,96,78,95,224,69,198,235,11,188,196,54,51,167,47,176,133,189,204,188,125,129,87,152,251,92,225,173,108,27,91,164,244,177,126,134,187,199,113,247,56,238,30,199,221,227,249,199,0,140,9,98,76,16,99,130,24,19,44,35,118,109,227,156,207,235,106,54,223,180,27,230,215,10,198,238,185,88,60,216,14,168,199,120,128,221,14,192,120,0,198,3,194,198,3,120,125,129,78,27,15,168,122,100,252,233,72,241,37,1,0,30,6,116,18,246,66,155,30,168,48,254,56,82,124,73,0,232,36,15,195,188,0,230,5,48,47,128,121,129,42,227,210,145,226,75,2,0,60,44,13,222,132,222,103,45,176,55,234,25,40,4,63,27,41,190,36,0,116,146,135,97,60,0,227,1,24,15,192,120,128,133,30,230,124,238,101,249,69,157,9,172,61,209,110,162,135,239,164,29,223,118,74,33,207,171,50,214,229,213,109,178,77,28,124,125,84,198,215,10,101,221,57,144,178,139,32,239,174,185,234,187,27,219,61,53,253,61,74,88,35,123,86,192,75,0,192,194,126,24,19,232,16,104,195,113,210,204,39,97,37,226,240,210,134,197,148,172,148,44,56,69,209,144,227,225,206,37,103,49,121,9,162,41,203,112,231,61,183,159,197,151,32,185,229,189,181,155,158,78,56,7,17,23,190,111,249,243,134,217,210,239,171,97,181,42,202,159,157,246,217,213,11,15,223,26,142,147,102,62,249,214,112,54,188,190,53,44,166,100,165,100,193,41,138,134,28,15,119,46,57,139,201,75,16,77,89,134,59,239,185,253,44,190,4,223,26,78,239,87,233,124,69,142,131,136,11,223,183,252,121,195,108,233,247,213,176,90,21,229,207,78,251,236,234,5,0,128,34,176,63,250,73,0,80,35,28,80,226,95,60,230,6,49,55,136,185,193,122,207,13,62,53,232,135,174,217,239,110,120,211,172,79,222,111,238,239,14,133,32,93,135,246,134,38,159,47,143,134,245,238,149,199,45,25,95,174,160,212,254,207,110,174,124,45,188,185,253,26,57,127,94,218,94,59,6,181,227,115,225,107,224,150,205,75,141,39,165,223,94,34,205,69,165,29,10,225,146,250,235,128,239,17,126,254,126,27,243,181,21,213,31,143,86,148,61,195,252,147,239,35,113,114,68,89,38,88,95,246,231,131,198,7,159,6,189,196,255,171,9,243,21,111,157,243,126,181,97,94,163,55,209,90,171,11,186,198,13,163,182,61,152,82,64,59,157,140,75,83,90,137,93,90,29,151,191,78,101,1,75,172,235,195,88,43,12,228,10,120,88,57,112,48,70,95,1,32,20,24,19,196,152,32,198,4,235,61,38,136,24,128,24,128,24,128,61,67,85,198,52,180,245,1,160,214,152,142,24,0,36,196,12,248,78,170,241,0,220,53,134,187,198,112,215,88,167,222,53,134,59,70,112,199,8,238,24,169,211,29,35,24,19,196,152,32,198,4,49,38,88,101,28,54,84,124,201,236,40,84,205,102,157,165,79,222,118,232,52,59,3,64,124,204,195,168,27,80,98,236,132,179,22,58,22,243,75,17,123,194,61,236,205,227,179,166,152,212,179,49,47,128,121,1,204,11,96,94,0,99,130,24,19,196,152,32,214,10,215,49,6,92,179,85,62,6,92,179,53,42,6,152,57,16,3,146,196,128,111,53,218,31,3,150,42,69,199,0,211,95,48,47,208,94,124,4,163,182,0,60,12,0,114,197,97,152,23,0,114,199,79,6,139,47,9,0,101,246,176,184,124,49,38,136,49,193,60,199,3,190,161,98,76,16,235,4,243,197,79,183,38,47,153,188,108,187,240,246,241,89,216,163,122,122,87,215,55,139,181,181,197,173,110,245,123,193,96,241,37,1,160,204,30,86,55,207,62,60,241,168,211,185,136,1,64,174,128,135,21,131,13,195,197,151,172,58,174,166,240,155,114,251,102,58,142,245,245,108,0,40,31,46,104,192,6,101,110,7,12,168,157,103,143,65,9,157,208,14,40,206,55,159,218,86,252,175,161,110,237,128,228,227,1,63,66,111,13,200,21,85,241,48,236,27,196,190,65,236,27,196,190,65,172,17,194,26,33,236,27,196,26,161,250,225,60,244,5,0,120,88,173,199,3,126,140,26,2,114,69,85,60,12,125,1,244,5,208,23,192,25,34,121,198,128,227,84,196,128,170,198,128,19,213,78,139,1,39,169,188,24,112,178,202,143,1,95,111,228,21,3,78,85,173,24,112,154,218,206,24,112,186,90,247,241,128,15,232,104,173,2,240,48,204,13,98,110,16,115,131,117,159,27,44,91,76,58,178,176,147,103,62,236,138,210,239,45,240,188,155,247,133,240,122,127,237,207,221,249,64,7,89,192,237,97,73,112,148,207,22,31,108,125,63,26,103,51,101,134,163,244,122,235,15,192,195,208,23,64,95,0,125,1,244,5,176,78,16,243,2,152,27,196,220,32,238,23,192,253,2,184,95,0,247,11,212,17,31,198,233,239,0,60,12,0,114,197,49,24,195,6,0,160,13,88,136,216,19,3,152,23,192,188,0,230,5,48,47,128,121,1,204,11,96,94,0,231,7,232,90,15,115,62,247,50,247,239,255,3,44,78,203,226,168,136,220,19,88,54,45,152,15,198,164,51,209,147,127,210,142,111,59,165,144,231,85,25,233,114,244,40,157,87,103,68,79,30,31,26,229,248,97,105,206,31,25,205,249,90,97,137,157,3,41,187,112,243,126,148,237,154,147,190,31,111,245,5,118,99,187,179,133,9,56,28,235,42,243,137,144,94,197,199,11,175,45,11,123,182,129,239,249,195,249,229,78,78,205,74,73,206,237,252,225,178,88,44,95,89,228,56,203,75,144,157,172,69,104,29,198,67,148,230,126,158,164,124,251,107,53,123,156,55,156,95,238,228,212,172,148,228,220,206,27,46,139,197,242,149,69,142,179,188,4,217,201,90,132,214,97,60,68,105,238,231,73,202,183,191,86,129,252,112,230,112,251,41,84,71,215,122,202,6,116,54,246,78,221,19,27,172,204,170,172,125,88,121,101,219,183,196,178,117,38,206,25,206,47,119,114,106,86,74,114,110,231,12,151,197,98,249,202,34,199,89,94,130,236,100,45,66,235,48,30,162,52,247,243,36,229,219,95,171,217,227,135,195,249,229,78,78,205,74,73,206,237,135,195,101,177,88,190,178,200,113,150,151,32,59,89,139,208,58,140,135,40,205,253,60,73,249,246,215,106,246,248,241,112,126,185,147,83,179,82,146,115,251,241,112,89,44,150,175,44,114,156,229,37,200,78,214,34,180,14,227,33,74,115,63,79,82,190,253,181,154,61,126,48,156,95,238,228,212,172,148,228,220,126,48,92,22,139,229,43,139,28,103,121,9,178,147,181,8,173,195,120,136,210,220,207,147,148,111,127,173,102,143,239,15,231,151,59,57,53,43,37,57,183,239,15,151,197,98,249,202,34,199,89,94,130,236,100,45,66,235,48,30,162,52,247,243,36,229,219,95,171,241,128,181,194,88,43,140,181,194,56,67,4,49,0,49,0,49,0,251,5,0,25,96,125,64,57,128,245,1,232,11,160,29,128,118,0,218,1,232,11,32,6,32,6,32,6,160,47,128,190,0,250,2,64,125,241,246,113,176,65,122,28,62,106,197,5,176,38,16,130,11,134,243,203,157,156,90,90,62,23,12,151,197,98,249,202,34,199,89,94,130,236,100,45,66,235,48,30,162,52,89,185,162,242,93,208,225,235,3,112,158,32,206,19,196,121,130,56,79,16,99,130,24,19,180,242,99,76,16,99,130,85,196,180,225,242,80,129,173,161,53,80,60,166,15,151,135,10,108,13,173,129,226,113,48,106,8,128,135,1,0,16,138,19,106,112,99,17,230,5,48,47,128,121,1,204,11,96,94,0,243,2,152,23,192,126,1,196,0,196,0,196,0,204,13,2,249,163,58,251,5,134,75,44,105,151,10,79,106,255,120,0,218,1,104,7,160,29,128,118,64,181,241,131,65,252,7,0,224,97,104,7,160,29,128,118,0,198,4,49,55,136,185,65,204,13,214,121,110,176,190,45,181,143,13,161,181,10,116,162,135,205,27,131,190,0,250,2,232,11,160,47,144,127,95,0,49,0,49,0,49,0,243,2,213,198,15,49,47,0,192,195,106,141,51,81,67,0,60,12,227,1,232,11,160,47,128,190,192,14,73,123,92,231,53,247,134,158,221,252,213,84,39,59,79,104,195,185,208,95,51,120,78,244,240,157,180,227,219,78,41,228,121,85,198,186,188,186,2,103,102,127,125,84,198,215,10,101,221,57,144,178,139,32,239,174,57,233,251,165,214,142,223,221,216,238,169,233,127,185,132,123,135,247,204,216,106,104,7,160,29,128,118,0,230,5,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,176,111,16,251,6,177,111,16,103,138,162,29,128,118,0,218,1,216,47,208,185,216,19,123,135,1,120,88,173,241,122,212,16,0,15,243,224,91,174,85,145,223,238,248,219,85,254,189,6,247,199,148,31,103,230,84,11,223,201,140,238,119,225,39,64,7,98,223,49,101,145,228,172,156,126,97,103,103,70,247,123,136,1,0,80,65,252,32,179,95,238,15,17,3,0,160,130,56,39,179,95,238,143,16,3,42,143,71,112,82,72,198,120,185,81,126,25,127,140,95,110,12,96,125,0,214,7,96,125,0,214,7,0,69,227,2,252,159,42,25,126,179,29,237,0,180,3,208,14,64,59,0,251,5,16,3,138,138,1,255,57,30,49,0,49,0,123,134,252,49,0,123,134,176,103,8,123,134,176,103,8,125,1,180,3,208,14,64,95,0,49,0,49,0,49,0,243,2,0,80,44,150,214,248,151,16,108,7,252,129,89,237,128,139,217,37,236,82,246,71,118,25,187,156,93,193,172,118,192,149,44,108,60,224,79,204,219,14,184,138,45,97,78,59,224,106,230,180,3,254,204,204,241,128,191,48,222,120,192,82,230,110,7,92,195,172,241,128,191,178,191,177,201,228,239,108,10,185,150,93,199,150,49,81,59,224,122,54,135,220,192,188,237,128,27,153,221,14,88,206,86,48,111,59,224,38,102,181,3,110,102,118,59,96,37,227,183,3,110,97,102,59,224,86,230,180,3,110,99,159,34,183,51,123,60,224,14,230,140,7,220,201,156,118,192,93,204,108,7,220,205,236,118,192,61,44,124,60,224,94,230,31,15,184,143,157,77,238,103,102,59,224,1,22,62,30,176,202,224,245,32,115,143,7,60,196,172,118,192,195,108,53,203,118,60,96,13,11,142,7,60,194,236,118,192,163,204,108,7,60,198,30,103,86,59,224,9,182,150,201,141,7,60,201,252,237,128,117,44,186,29,176,158,133,181,3,54,48,249,241,128,167,152,211,14,216,200,120,227,1,155,88,120,59,224,105,102,182,3,158,25,189,5,224,89,230,29,15,120,142,89,237,128,231,217,11,204,105,7,188,200,120,237,128,151,216,102,230,180,3,182,176,151,153,183,29,240,10,115,143,7,108,101,219,216,34,165,143,245,51,244,5,208,23,64,95,0,125,129,36,125,129,95,185,214,173,124,175,2,247,221,164,195,247,59,94,67,0,0,194,241,62,29,54,0,224,97,0,0,240,241,250,97,216,0,0,234,140,223,96,79,7,0,212,26,111,168,77,59,0,107,133,177,86,24,107,133,235,189,86,184,108,49,233,200,194,90,96,31,210,157,207,239,45,176,221,247,190,16,94,239,175,125,251,243,3,29,100,1,183,135,37,193,81,62,91,124,176,245,253,104,244,81,50,195,251,245,122,235,15,192,195,252,232,113,205,152,247,230,56,123,62,161,77,51,243,19,61,124,39,237,248,182,83,10,121,94,149,177,46,175,174,192,170,133,175,143,202,248,90,161,172,59,7,82,118,17,228,221,53,39,125,47,108,253,175,220,141,237,158,154,254,239,74,248,95,119,207,140,173,134,117,130,88,39,136,117,130,216,55,136,24,128,24,128,24,128,24,128,24,128,24,128,24,128,189,195,0,0,20,133,255,197,248,62,0,212,26,255,135,24,224,193,31,96,15,0,240,224,98,252,38,0,32,18,151,224,119,2,104,175,214,229,158,37,205,85,21,157,235,41,69,185,235,176,186,30,86,45,124,100,80,238,89,210,92,85,209,185,158,82,148,187,14,171,235,97,213,194,7,6,229,158,37,205,85,21,157,235,41,69,185,235,176,186,30,86,45,92,138,30,97,69,112,158,90,54,137,222,54,128,90,65,12,0,16,3,128,167,251,162,32,206,35,83,58,9,221,162,224,151,32,90,162,244,50,231,173,117,154,26,141,227,21,89,74,217,126,79,104,135,12,97,28,179,144,198,161,17,69,13,81,16,64,59,160,222,136,222,47,176,130,154,175,188,115,132,110,162,214,126,129,155,41,37,43,233,45,212,191,95,224,86,122,27,53,247,11,220,78,39,145,59,168,179,95,224,78,227,243,93,45,170,242,231,8,221,77,239,161,147,201,189,244,62,122,63,125,128,174,162,193,253,2,15,210,135,232,108,242,48,149,217,47,48,89,149,217,47,176,154,218,251,5,214,24,210,62,66,23,146,71,169,189,95,224,49,26,125,142,208,227,244,9,234,223,47,48,168,156,78,226,157,35,180,214,224,249,164,241,183,142,122,207,17,90,79,55,208,167,232,70,202,219,47,176,137,250,207,17,122,154,62,67,237,253,2,255,160,50,251,5,158,165,230,126,129,231,232,18,242,60,245,239,23,120,129,46,35,47,82,251,28,161,151,232,114,178,153,154,251,5,182,208,151,169,127,191,192,43,148,119,142,208,86,106,237,23,216,70,87,147,62,26,220,47,208,79,195,246,11,12,80,123,191,192,32,77,118,142,208,16,245,238,23,88,170,240,246,11,108,167,254,115,132,134,105,248,126,129,17,186,99,191,0,181,173,25,60,71,136,52,148,134,153,98,238,23,80,27,11,20,218,104,52,248,251,5,88,195,217,47,48,166,225,221,47,48,182,33,119,142,80,119,227,56,165,217,24,215,232,105,244,54,78,86,198,55,38,52,38,54,38,53,226,236,25,66,12,64,12,64,12,64,12,64,12,64,12,64,12,40,95,12,248,211,248,44,98,0,122,67,64,93,177,4,115,74,53,199,161,3,105,75,201,80,56,116,160,138,90,86,129,111,90,14,135,14,180,187,110,202,130,215,245,69,65,156,71,166,116,149,16,173,79,122,141,203,108,179,56,94,209,185,86,168,134,39,198,161,17,69,13,227,1,24,15,168,234,120,192,206,125,24,19,196,120,128,174,117,97,77,54,0,223,1,18,129,193,3,128,138,121,216,184,49,176,106,150,24,131,24,0,192,195,106,141,177,168,33,0,30,6,0,153,98,105,101,103,220,151,98,165,76,40,254,134,181,20,0,0,0,0,218,1,29,137,58,222,51,116,237,120,220,51,132,123,134,112,207,16,246,11,0,104,7,160,29,0,0,136,1,136,1,64,181,112,3,198,103,1,0,0,106,138,27,241,31,0,0,106,141,229,136,1,64,201,129,241,0,0,64,12,64,12,0,0,196,0,196,0,0,40,26,43,209,83,4,0,0,237,0,180,3,0,0,49,0,49,0,0,16,3,16,3,98,160,142,123,134,22,16,236,25,194,158,33,236,25,194,158,33,160,138,184,35,167,150,198,103,70,146,151,76,94,22,0,128,184,248,220,72,217,232,126,110,228,115,136,1,0,80,24,62,59,82,54,186,159,29,249,44,98,0,0,20,6,244,5,128,206,197,221,88,229,211,145,184,167,244,245,138,187,198,112,215,24,238,30,175,247,93,99,73,231,6,205,24,96,205,13,234,218,62,42,37,251,170,251,169,162,185,193,253,213,73,228,0,213,137,1,230,243,93,72,188,24,96,230,54,231,6,167,140,122,106,48,6,28,168,30,164,202,206,13,202,197,0,195,226,163,49,192,226,228,158,27,156,162,70,199,0,19,193,185,193,131,85,153,24,160,107,118,12,56,196,176,220,84,227,111,154,234,141,1,118,205,240,98,128,174,249,99,128,249,60,201,220,224,116,117,9,153,161,122,99,128,153,195,158,27,188,177,245,109,121,235,213,156,27,156,169,134,207,13,222,107,124,50,99,128,174,133,207,13,234,218,122,227,47,122,110,112,150,154,44,6,232,154,236,220,224,108,213,29,3,230,168,225,49,192,176,0,103,110,208,31,3,230,170,243,84,59,6,232,218,130,86,222,120,115,131,134,55,42,243,85,185,24,32,250,255,159,54,6,232,88,31,128,245,1,88,31,128,245,1,149,198,53,219,209,87,5,224,97,213,199,42,140,164,1,9,241,32,124,167,35,240,103,196,90,0,190,83,107,92,85,80,61,62,132,255,25,240,29,160,195,112,40,110,133,5,224,97,133,226,53,35,252,207,97,249,146,113,145,163,240,154,145,252,245,108,71,249,118,212,103,190,178,203,80,45,163,213,178,144,169,8,189,130,115,131,127,96,214,220,224,197,236,18,118,41,251,35,187,140,93,206,174,96,214,220,224,149,44,184,62,192,156,27,164,196,156,27,252,19,243,206,13,94,197,150,48,103,110,240,106,230,204,13,254,153,153,235,3,254,194,120,235,3,150,50,247,220,224,53,204,90,31,240,87,246,55,54,153,252,157,77,33,215,178,235,216,50,38,154,27,188,158,205,33,55,48,239,220,224,141,204,158,27,92,206,86,48,239,220,224,77,204,154,27,188,153,217,115,131,43,25,127,110,240,22,102,206,13,222,202,156,185,193,219,216,167,200,237,204,94,31,112,7,115,214,7,220,201,156,185,193,187,152,57,55,120,55,179,231,6,239,97,225,235,3,238,101,222,53,66,103,145,251,216,217,228,126,102,206,13,62,192,156,245,1,188,185,193,85,6,175,7,153,57,55,104,175,15,120,136,89,115,131,15,179,213,44,217,220,224,18,194,159,27,92,195,220,235,3,172,185,193,71,152,61,55,248,40,51,231,6,31,99,143,51,107,110,240,9,182,150,185,215,8,137,231,6,159,100,254,185,193,117,44,122,110,112,61,11,155,27,220,192,252,235,3,196,115,131,79,49,103,110,112,35,243,175,17,50,231,6,55,177,240,185,193,167,153,57,55,248,12,27,253,133,49,239,250,128,231,152,53,55,248,60,123,129,57,115,131,47,50,222,220,224,75,108,51,115,230,6,183,176,151,153,119,110,240,21,230,94,31,176,149,109,99,139,148,62,214,207,226,205,13,98,125,0,214,7,96,125,0,214,7,228,129,71,74,63,134,118,194,112,182,244,30,197,168,97,69,241,216,248,106,120,152,8,143,195,243,18,226,157,195,197,241,122,176,183,115,236,246,80,111,185,109,93,7,15,91,211,65,254,84,110,172,67,124,5,106,128,226,198,3,126,222,148,27,15,248,69,179,221,227,1,79,52,229,199,3,22,55,203,60,30,176,126,124,39,140,7,252,170,153,207,120,192,148,145,242,143,7,252,186,137,253,2,64,245,240,15,180,159,170,219,38,40,65,221,29,89,152,12,239,208,157,207,239,45,80,243,247,133,240,122,127,132,28,207,117,252,175,235,3,185,106,248,124,65,246,123,97,188,223,195,146,224,40,159,180,31,108,125,63,26,17,182,68,216,140,218,0,58,225,127,63,214,7,96,125,0,214,7,96,125,0,0,0,21,198,203,169,90,164,104,7,160,29,128,118,0,218,1,81,216,218,145,253,222,137,195,237,167,0,116,50,194,253,35,137,247,200,149,129,95,2,64,185,208,135,177,227,92,113,120,98,251,126,108,8,214,3,242,68,187,60,108,222,152,178,90,228,227,67,252,207,97,249,226,81,181,191,203,81,248,248,80,254,122,182,163,124,81,245,200,147,51,31,217,101,168,38,225,156,183,165,179,160,239,165,17,69,49,61,199,122,173,17,58,77,119,62,99,141,80,89,208,73,107,132,220,30,150,4,69,173,17,74,58,47,240,85,29,243,2,152,23,192,188,0,214,7,228,143,183,234,213,163,156,47,109,160,42,128,23,36,197,165,149,31,171,251,207,68,145,117,101,142,122,255,180,237,177,254,231,185,74,112,200,72,249,169,253,206,176,192,127,43,113,61,254,247,173,18,179,198,228,41,113,176,47,48,70,125,165,107,172,90,150,53,66,221,42,250,2,232,11,68,247,5,154,106,86,125,129,113,42,250,2,229,194,219,244,234,81,206,151,54,80,21,192,11,178,193,91,244,234,81,206,151,54,0,223,173,23,230,235,213,163,156,47,109,0,190,91,47,204,211,171,71,57,95,218,0,124,183,94,152,171,87,143,114,190,180,1,248,110,189,240,102,189,122,148,243,165,13,192,119,235,133,57,122,245,40,231,75,27,128,239,102,11,156,33,130,245,1,88,43,140,181,194,64,114,204,196,121,13,0,124,176,214,152,10,251,3,64,189,129,51,98,128,138,3,227,1,24,15,192,120,64,189,199,3,146,198,128,145,46,119,12,160,132,31,3,110,163,188,24,112,39,213,181,187,168,63,6,188,158,240,99,192,1,196,140,1,119,211,123,232,100,114,47,189,143,222,79,31,160,171,104,177,49,96,13,141,138,1,159,54,94,63,67,188,49,224,113,202,139,1,167,19,51,6,124,129,132,197,128,111,17,81,12,248,1,249,33,57,135,252,136,252,152,172,167,27,232,83,116,35,229,197,128,77,244,151,196,140,1,191,34,118,12,120,154,62,67,237,24,64,38,196,137,1,75,72,48,6,188,64,237,24,112,35,177,98,192,102,42,23,3,238,37,102,12,120,128,108,165,225,49,160,159,102,31,3,152,18,55,6,108,167,78,12,216,75,145,137,1,35,116,71,12,160,78,12,152,171,136,99,128,218,88,160,208,134,76,12,24,211,224,197,128,143,43,50,49,160,217,24,215,232,105,244,54,78,86,198,55,38,52,38,54,38,53,48,38,8,84,21,108,2,108,0,0,201,112,10,198,47,1,0,0,184,88,138,22,49,80,35,236,91,218,179,167,1,0,64,12,0,0,0,49,0,0,0,196,0,0,0,242,66,15,102,215,0,23,176,78,16,235,4,235,186,78,240,111,253,88,39,136,53,66,232,11,0,0,0,0,60,76,66,143,9,208,118,130,23,0,53,67,189,238,29,254,136,238,124,198,189,195,101,65,39,221,59,236,246,176,36,40,234,222,97,160,126,120,21,218,55,0,32,133,87,227,183,2,0,109,199,47,135,171,71,57,95,218,0,124,183,120,124,128,197,201,125,20,203,146,247,79,133,118,252,32,203,139,114,158,82,243,113,52,203,79,150,112,124,104,148,243,135,165,37,56,114,92,86,188,63,90,128,214,11,19,240,56,86,178,204,199,89,251,60,12,40,6,175,65,95,0,0,106,140,215,118,108,4,216,163,11,181,43,198,33,25,91,103,70,46,214,158,19,66,117,238,104,218,60,73,206,197,173,21,254,121,83,110,173,240,47,154,237,94,43,252,68,83,126,173,240,226,102,153,215,10,175,31,223,9,107,133,127,213,204,103,173,240,148,145,242,175,21,254,117,179,188,103,138,234,216,47,128,253,2,56,87,24,251,5,0,128,131,221,48,142,210,113,184,22,227,155,0,60,167,4,150,216,125,130,44,175,172,45,255,157,17,212,33,0,84,5,123,230,208,14,155,187,173,51,109,213,137,122,201,232,148,141,222,111,64,139,191,112,95,147,163,146,135,95,239,133,218,6,128,90,99,3,122,117,29,133,171,41,108,80,205,223,144,28,21,252,94,1,32,62,112,199,8,0,196,197,222,18,61,196,78,29,73,2,0,64,14,251,96,36,9,40,49,190,166,195,6,176,49,180,79,190,95,96,164,203,94,43,108,68,123,149,146,125,213,253,84,209,90,225,253,213,73,228,0,213,89,43,108,62,223,165,245,234,94,43,252,122,194,95,43,124,0,113,175,21,158,50,186,58,53,184,86,248,64,245,32,85,118,173,240,100,85,102,173,176,174,217,107,133,45,78,238,181,194,83,84,239,90,225,79,27,175,159,33,222,181,194,38,130,107,133,247,157,96,174,21,254,2,9,91,43,252,45,242,133,166,189,86,248,16,195,114,83,141,191,105,234,247,201,23,155,63,32,63,36,231,144,31,145,31,239,88,217,203,91,43,172,107,191,36,230,90,225,95,145,180,107,133,167,171,75,200,12,213,187,86,216,204,97,175,21,190,177,245,109,121,235,213,92,43,60,83,21,173,21,254,82,211,92,43,124,47,249,114,243,126,242,128,241,61,124,173,176,174,173,55,254,162,215,10,207,82,229,215,10,51,197,89,43,172,107,178,107,133,191,210,180,214,10,239,165,152,107,133,231,168,225,107,133,13,11,120,214,10,127,181,105,174,21,158,171,120,215,10,207,85,231,169,102,170,185,86,88,215,22,180,242,198,91,43,108,120,163,50,95,253,90,243,99,202,199,149,232,181,194,124,96,173,240,205,219,241,127,26,128,135,1,117,4,238,23,0,196,56,16,99,56,0,80,51,96,60,160,232,241,128,131,213,122,142,7,88,123,135,203,52,30,112,208,132,252,199,3,76,116,194,120,192,33,33,173,131,111,13,241,158,190,208,200,38,66,189,216,208,181,188,192,151,156,135,151,114,146,98,115,134,116,167,186,234,104,75,142,86,115,240,74,70,92,182,229,40,237,129,93,118,77,79,11,248,240,0,151,239,160,239,233,253,77,62,229,237,129,210,195,163,79,70,26,113,60,108,122,118,45,239,81,190,51,114,105,203,35,6,32,6,84,61,6,244,55,16,3,0,160,120,204,131,63,2,64,65,152,143,95,27,0,248,160,116,192,238,169,78,208,1,200,166,174,225,11,241,161,118,128,205,58,65,7,32,155,186,134,47,0,213,193,155,209,47,1,74,129,183,116,128,39,190,21,191,166,218,224,109,17,117,125,104,110,190,128,251,5,112,191,0,238,23,192,253,2,64,49,56,28,255,213,1,160,214,88,128,24,0,0,29,133,35,240,155,6,106,132,51,7,146,167,22,47,79,29,108,14,169,160,87,185,113,82,65,123,212,79,78,204,231,12,29,181,84,7,156,210,182,211,18,234,238,97,255,62,84,118,62,69,73,8,212,195,19,59,219,195,222,137,126,47,0,0,29,135,253,7,235,170,249,201,58,106,191,147,61,236,237,204,122,63,156,161,14,242,199,187,209,66,2,0,1,138,26,19,252,34,198,4,129,80,96,76,176,93,56,106,123,217,249,28,133,147,159,225,137,29,202,185,94,237,128,175,162,29,0,160,29,80,74,252,126,168,236,124,178,150,240,247,152,107,172,181,39,198,229,12,127,201,10,223,72,28,229,223,169,195,122,64,158,168,162,135,45,219,214,126,90,113,203,37,151,217,93,50,25,21,113,169,101,219,194,210,146,107,179,172,227,239,242,206,94,67,155,162,249,30,159,122,26,207,8,47,27,77,217,159,195,242,170,248,229,162,128,243,3,112,126,0,206,15,192,249,1,245,196,87,48,47,0,192,195,208,14,64,59,0,237,128,218,183,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,48,38,152,37,138,90,39,248,239,88,39,8,132,2,235,4,219,133,183,13,149,157,207,219,176,78,11,158,216,161,156,1,201,22,4,230,6,1,120,88,142,192,158,33,160,28,64,95,160,211,145,124,191,192,145,168,33,32,87,212,221,195,208,14,0,208,14,64,12,40,55,16,3,16,3,224,97,245,198,137,184,207,29,128,135,1,29,131,99,112,186,41,80,50,224,76,81,160,28,64,95,160,211,145,124,94,224,221,168,33,32,87,192,195,0,160,202,56,22,189,43,32,18,31,131,151,0,128,16,69,141,7,252,12,227,1,64,40,48,30,208,46,124,116,123,217,249,100,45,225,71,177,255,160,214,158,24,151,115,231,251,75,81,237,128,95,162,29,0,160,29,80,74,172,219,86,118,62,233,37,244,82,112,127,203,75,251,117,29,127,182,120,246,182,242,191,23,103,205,112,250,249,113,23,107,12,0,69,227,147,24,53,173,49,176,95,0,40,7,208,23,0,68,184,107,0,54,0,58,209,195,242,224,59,183,67,251,21,157,168,151,140,78,217,232,253,207,19,138,226,4,95,139,71,197,204,149,181,229,55,96,255,83,71,225,106,90,20,39,120,78,182,150,144,163,98,230,130,229,165,44,133,190,0,0,15,171,53,246,194,154,30,0,30,86,107,236,130,26,2,224,97,181,198,174,168,33,0,30,86,107,236,134,26,2,224,97,181,198,238,168,33,0,30,86,107,188,1,53,4,192,195,12,224,222,97,220,59,140,123,135,113,239,48,0,228,131,94,180,181,128,220,241,214,30,216,0,72,134,79,99,87,163,52,158,26,206,154,74,24,197,120,220,252,185,205,239,114,20,158,26,206,199,74,105,233,62,53,92,238,90,13,211,147,87,27,197,72,154,132,83,222,150,14,247,248,36,94,26,85,198,74,151,255,13,0,213,195,103,240,159,11,0,106,141,127,65,12,0,128,90,227,179,136,1,0,80,107,124,14,49,0,0,106,141,227,16,3,0,192,135,95,150,230,220,194,254,33,212,6,0,127,41,30,63,43,77,12,232,67,157,2,240,23,0,0,74,133,227,37,122,143,216,47,128,253,2,216,47,128,253,2,85,198,87,75,211,23,24,66,219,14,128,191,180,1,229,25,19,220,134,58,5,224,47,29,143,189,89,90,10,131,149,105,121,237,195,202,43,219,190,37,150,13,40,26,39,151,102,198,252,21,196,117,0,254,210,6,208,20,59,212,79,153,80,22,73,0,120,46,144,20,202,246,246,148,205,155,26,0,207,5,228,80,158,121,129,65,180,237,0,248,75,173,99,192,0,234,20,128,191,180,1,229,153,27,124,25,117,10,192,95,218,128,241,205,178,72,50,130,58,5,224,47,181,142,1,58,234,20,128,191,180,1,229,233,11,108,65,157,2,240,151,54,160,60,123,135,55,163,78,129,74,250,75,210,125,131,35,93,238,125,131,148,196,221,55,184,75,43,213,189,111,240,245,132,191,111,240,0,226,236,27,188,76,157,210,250,116,185,90,182,125,131,159,54,94,63,67,120,251,6,79,157,224,221,55,120,133,106,238,27,252,2,9,219,55,248,45,34,218,55,248,3,242,67,114,14,249,17,137,218,55,248,75,98,238,27,252,21,73,191,111,112,9,9,219,55,120,99,171,148,252,190,193,123,137,185,111,240,1,210,142,125,131,76,137,187,111,240,74,213,217,55,184,151,146,124,223,224,92,37,191,125,131,31,87,202,182,111,240,243,56,237,10,0,42,133,96,59,224,15,204,106,7,92,204,46,97,151,178,63,178,203,216,229,236,10,102,181,3,174,100,97,237,128,63,49,111,59,224,42,182,132,57,237,128,171,153,211,14,248,51,51,219,1,127,97,188,118,192,82,230,110,7,92,195,172,118,192,95,217,223,216,100,242,119,54,133,92,203,174,99,203,152,168,29,112,61,155,67,110,96,222,118,192,141,204,110,7,44,103,43,152,183,29,112,19,179,218,1,55,51,187,29,176,146,241,219,1,183,48,179,29,112,43,115,218,1,183,177,79,145,219,153,221,14,184,131,57,237,128,59,153,211,14,184,139,153,237,128,187,153,221,14,184,135,133,183,3,238,101,254,118,192,125,236,108,114,63,51,219,1,15,176,240,118,192,42,131,215,131,204,221,14,120,136,89,237,128,135,217,106,150,109,59,96,13,11,182,3,30,97,118,59,224,81,102,182,3,30,99,143,51,171,29,240,4,91,203,228,218,1,79,50,127,59,96,29,139,110,7,172,103,97,237,128,13,76,190,29,240,20,115,218,1,27,25,175,29,176,137,133,183,3,158,102,102,59,224,153,209,125,77,207,50,111,59,224,57,102,181,3,158,103,47,48,167,29,240,34,227,181,3,94,98,155,153,211,14,216,194,94,102,222,118,192,43,204,221,14,216,202,182,177,69,74,31,235,103,184,111,80,14,79,161,255,14,192,195,128,90,98,31,220,67,5,0,0,208,102,124,25,35,103,64,219,240,21,120,31,0,228,128,175,226,151,5,0,46,220,219,95,76,249,228,124,210,74,88,69,171,214,77,46,83,50,177,108,121,75,93,69,15,3,28,124,13,255,213,129,29,248,58,188,1,168,1,254,119,0,54,0,0,7,223,64,228,7,118,224,255,193,27,128,26,224,15,181,106,7,252,107,229,126,213,223,68,28,2,114,198,191,193,199,128,154,225,34,244,127,1,120,88,173,113,5,106,8,128,135,213,26,215,110,131,13,0,160,250,120,115,121,206,19,4,42,6,13,35,32,45,44,232,139,130,56,143,76,105,59,95,48,175,108,105,89,14,233,75,69,83,225,107,18,135,99,150,90,39,181,132,168,46,226,249,69,118,86,16,113,203,219,86,60,11,20,205,49,173,230,252,156,150,159,218,105,81,191,96,180,3,128,170,226,91,248,63,14,24,56,188,242,81,12,64,221,3,105,240,109,252,47,168,45,254,29,117,159,9,162,207,21,94,65,205,87,222,185,194,55,81,235,60,193,155,41,37,43,233,45,212,127,174,240,173,244,54,106,158,39,120,59,157,68,238,160,206,185,194,119,26,159,239,106,81,149,63,87,248,110,122,15,157,76,238,165,247,209,251,233,3,116,21,13,158,39,248,32,125,136,206,38,15,83,153,115,133,39,171,50,231,10,175,166,246,121,130,107,12,105,31,161,11,201,163,212,62,87,248,49,26,125,174,240,227,244,9,122,82,139,143,115,174,240,160,114,58,137,119,174,240,90,131,231,147,198,223,58,234,61,87,120,61,221,64,159,162,27,41,239,92,225,77,212,127,174,240,211,244,25,106,159,39,248,15,42,115,158,224,179,212,60,79,240,57,186,132,60,79,253,231,9,190,64,151,145,23,169,125,158,224,75,116,57,217,76,205,243,4,183,208,151,169,255,92,225,87,40,239,92,225,173,212,58,79,112,27,93,77,250,104,240,92,225,126,26,118,174,240,0,181,207,19,28,164,201,206,21,30,162,222,243,4,151,42,188,115,133,183,83,255,121,130,195,52,252,92,225,17,186,227,92,97,106,91,51,120,174,48,105,40,13,51,197,60,79,80,109,44,80,104,163,209,224,159,43,204,26,206,121,130,99,26,222,115,133,199,54,228,206,21,238,110,28,167,52,27,227,26,61,141,222,198,201,202,248,198,132,198,196,198,164,6,206,19,180,241,157,209,255,37,123,161,93,9,84,28,167,246,192,6,73,176,79,159,247,29,0,170,238,203,217,98,106,107,212,253,108,87,191,107,90,96,28,126,122,130,145,249,25,153,140,230,47,26,91,156,125,207,141,205,235,194,29,37,46,226,148,157,153,200,2,179,154,179,155,43,37,37,89,99,228,155,35,224,178,81,130,198,102,41,62,180,187,209,205,186,195,114,204,109,201,48,79,32,201,158,221,241,173,48,187,123,78,119,18,235,165,195,252,4,53,246,221,238,179,98,73,186,184,13,122,85,31,152,27,4,146,226,123,24,83,108,1,99,130,24,19,196,152,32,198,4,1,160,142,248,1,218,1,0,80,107,252,16,49,0,200,20,111,193,204,2,0,212,26,111,70,12,0,128,90,227,80,196,0,0,168,53,230,35,6,0,64,173,241,86,196,0,0,168,53,206,193,40,51,0,212,26,243,208,14,0,128,90,227,109,136,1,0,0,0,21,194,143,208,123,3,50,197,143,225,81,0,80,107,204,69,95,0,0,218,0,236,29,6,146,226,92,180,220,16,3,128,90,227,60,196,128,22,162,207,15,176,192,59,63,64,215,204,243,3,116,109,31,149,146,125,213,253,84,255,249,1,102,57,243,252,128,253,213,73,228,0,213,57,63,192,124,190,75,235,85,254,252,0,51,247,100,227,117,202,232,46,247,224,249,1,7,170,7,169,179,141,103,217,157,31,160,107,246,249,1,22,167,133,173,119,235,252,128,41,106,244,249,1,38,252,231,7,24,146,171,50,231,7,232,154,125,126,192,33,134,229,166,26,127,211,84,239,249,1,118,205,240,206,15,208,53,255,249,1,230,115,251,252,0,243,115,244,249,1,186,102,158,31,48,93,93,66,102,168,222,243,3,204,28,203,140,87,251,252,0,93,91,222,122,189,201,120,157,169,250,207,15,184,131,120,207,15,208,53,243,252,0,93,179,206,15,208,181,213,198,95,240,252,0,93,91,111,252,137,206,15,208,53,251,252,128,89,106,178,243,3,116,205,123,126,128,225,157,156,243,3,116,109,119,101,182,234,62,63,96,142,26,126,126,128,97,1,251,252,128,29,214,12,158,31,48,87,157,167,154,41,230,249,1,186,182,160,149,151,127,126,128,225,141,59,206,15,48,191,217,231,7,24,222,168,204,87,229,206,15,16,253,246,157,243,3,182,133,244,99,131,105,50,79,162,177,45,147,190,179,73,37,13,165,1,149,247,244,180,129,48,137,221,169,246,103,190,12,206,83,94,122,28,185,29,158,219,250,76,132,229,29,84,189,214,9,215,38,125,29,121,37,114,62,185,101,182,94,147,75,194,227,153,133,191,197,163,82,132,164,254,220,167,225,214,210,138,224,2,180,41,75,142,241,125,242,79,97,31,47,166,6,122,219,101,59,83,180,168,122,12,59,83,148,31,3,234,120,166,40,175,54,236,51,69,249,53,85,204,153,162,89,196,128,234,156,41,106,234,21,79,183,173,149,190,131,187,218,210,119,26,202,90,27,124,185,224,59,0,80,111,252,39,250,112,163,248,175,74,91,226,167,168,199,18,225,103,37,173,141,109,219,228,159,214,17,47,193,18,64,1,190,244,139,9,101,147,11,158,47,131,178,143,9,46,158,240,190,18,140,9,242,129,123,134,44,148,247,158,161,247,117,232,152,96,182,248,72,127,146,39,73,232,38,147,206,68,187,44,33,95,130,87,54,153,220,113,52,54,243,137,242,202,208,144,227,19,45,145,149,154,70,18,30,207,226,235,180,8,73,227,228,254,21,122,193,163,184,116,60,108,0,36,195,175,241,43,2,128,90,227,55,136,1,163,248,109,165,45,113,33,234,177,68,248,93,73,107,99,96,155,252,211,234,195,212,43,166,110,213,182,4,198,118,81,27,73,229,234,84,223,217,150,165,110,229,159,23,40,202,174,152,23,224,163,202,243,2,241,208,201,243,2,213,238,11,0,232,11,200,181,142,101,159,214,178,47,80,105,224,12,17,32,41,46,194,127,63,0,168,53,126,143,24,0,0,181,198,255,34,6,180,240,234,190,40,136,243,200,148,182,243,5,243,202,150,150,229,80,4,21,190,38,113,56,100,169,117,118,122,90,79,226,249,69,118,86,16,113,43,210,86,182,5,218,89,11,73,52,231,231,180,252,212,78,139,250,5,71,159,39,184,130,154,175,188,243,4,111,162,230,121,130,10,185,153,82,178,146,222,66,253,231,9,222,74,111,163,230,121,130,183,211,73,228,14,234,156,39,120,167,241,249,174,22,85,249,243,4,239,166,247,208,201,228,94,122,31,189,159,62,64,87,209,224,121,130,15,210,135,232,108,242,48,205,238,60,193,213,212,62,79,112,141,33,237,35,116,33,121,148,218,231,9,62,70,163,207,19,124,156,62,65,253,231,9,14,42,167,19,153,243,4,191,77,236,243,4,215,26,60,159,52,254,214,81,239,121,130,235,233,6,250,20,221,72,121,231,9,110,162,254,243,4,159,166,207,80,251,60,193,127,80,153,243,4,159,165,230,121,130,207,209,37,228,121,234,61,79,240,90,242,2,93,70,94,164,246,121,130,47,209,229,100,51,53,207,19,220,66,95,166,254,243,4,95,161,222,243,4,239,35,230,121,130,91,169,117,158,224,54,186,154,244,209,224,121,130,253,116,61,217,64,68,231,9,14,80,251,60,193,65,154,236,60,193,33,234,61,79,112,169,194,59,79,112,59,221,93,217,67,113,159,39,56,76,195,207,19,28,161,59,206,19,164,182,53,131,231,9,146,134,210,48,83,204,243,4,213,198,2,133,54,26,13,254,121,130,172,225,156,39,56,166,225,156,39,120,140,178,80,25,219,144,59,79,176,187,113,156,210,108,140,107,244,52,122,27,39,43,227,27,19,26,19,27,147,26,103,40,206,121,130,97,40,255,57,66,23,23,212,158,195,220,32,31,85,158,27,188,36,150,239,212,117,207,80,249,99,192,165,136,1,136,1,133,160,174,49,0,0,58,23,127,196,152,96,71,180,3,112,126,64,167,181,3,46,139,252,101,226,252,0,192,13,236,29,6,146,226,61,56,91,28,0,106,141,203,209,23,0,128,90,227,10,196,128,22,176,62,0,235,3,176,62,192,189,62,224,144,174,108,215,7,204,232,202,99,125,192,98,42,94,31,48,183,203,90,31,48,175,75,110,125,64,167,197,128,44,239,28,237,212,24,240,235,30,153,24,240,155,158,240,24,224,189,115,180,216,24,240,219,158,180,49,224,194,158,106,172,17,114,223,57,154,215,26,33,196,0,196,0,196,128,122,199,128,136,145,211,173,206,171,228,88,235,86,153,20,251,51,47,183,60,55,51,167,63,55,239,153,168,116,54,122,137,114,58,37,188,101,163,40,133,165,71,203,44,226,234,198,146,9,50,218,200,114,226,213,171,60,29,25,219,4,235,56,152,47,78,93,166,41,19,143,126,60,31,227,73,148,183,140,85,199,213,5,142,233,252,57,54,175,191,236,40,177,52,51,57,175,153,240,87,105,90,127,11,201,249,119,9,42,215,74,114,186,46,34,223,178,208,244,109,52,190,21,174,159,112,67,69,70,243,110,156,176,60,150,164,43,74,168,215,78,253,206,107,54,180,130,159,195,242,69,83,244,231,230,61,75,203,39,190,84,222,18,222,178,81,148,194,109,19,95,142,164,218,200,202,25,85,175,225,116,146,72,194,179,66,18,31,221,41,231,187,41,76,57,211,122,217,78,5,220,159,129,241,0,140,7,96,60,0,227,1,0,80,71,172,196,250,128,22,78,235,139,130,56,143,76,105,59,95,48,175,108,105,89,14,233,75,69,83,225,107,18,135,99,150,90,39,181,132,168,46,226,249,69,26,25,63,47,37,115,222,182,226,89,160,104,142,105,53,231,231,180,252,212,78,139,250,5,87,61,134,225,76,81,32,41,110,65,59,64,2,216,55,104,131,183,111,240,86,143,15,221,230,243,40,236,27,180,208,41,247,14,223,158,32,98,96,223,32,0,148,25,119,160,29,0,0,181,198,157,136,1,210,125,129,187,38,148,183,47,80,20,112,134,72,231,245,5,226,161,115,207,16,193,190,193,172,214,7,252,177,7,251,6,113,174,112,21,207,21,70,12,192,222,97,196,0,196,0,196,0,180,3,16,3,16,3,16,3,16,3,16,3,112,199,136,104,76,208,141,178,141,9,126,176,52,231,10,223,143,245,1,21,27,19,252,32,206,21,238,8,96,157,32,144,20,7,224,92,97,0,168,53,30,192,250,128,130,49,102,132,255,57,44,95,120,78,94,186,249,61,170,140,28,229,52,122,166,161,157,151,92,89,115,224,81,201,71,118,25,170,73,56,231,109,105,89,143,151,151,81,238,215,144,191,7,85,25,171,16,249,1,192,135,221,251,163,32,206,35,83,218,206,23,204,43,91,90,150,67,250,82,209,84,248,154,196,225,152,165,214,73,45,33,170,139,120,126,145,157,21,68,220,242,182,21,207,2,69,115,76,171,57,63,167,229,167,118,90,212,47,184,234,49,12,99,130,64,82,60,136,86,97,11,193,245,1,127,96,214,250,128,139,217,37,236,82,246,71,118,25,187,156,93,193,172,245,1,87,50,247,250,0,93,179,214,7,168,132,146,6,97,228,79,204,187,62,224,42,182,132,153,235,3,38,146,73,100,39,114,53,179,215,7,236,76,254,204,118,49,102,116,255,194,120,235,3,150,50,247,250,128,107,152,181,62,224,175,236,111,108,50,249,59,155,66,174,101,215,177,101,44,184,62,96,38,153,69,102,147,235,217,28,114,3,243,174,15,184,145,217,235,3,150,179,21,204,92,31,112,4,177,215,7,220,196,172,245,1,55,51,123,125,192,74,102,175,15,56,154,216,235,3,142,49,210,110,97,11,141,215,91,153,181,62,224,19,228,147,228,54,246,41,114,59,179,215,7,220,193,156,245,1,119,50,115,125,192,9,228,68,114,18,185,139,153,235,3,238,102,214,250,0,93,187,135,133,175,15,184,151,121,215,7,156,69,238,99,103,147,251,217,247,200,247,201,3,204,89,31,112,46,57,143,156,79,46,32,238,245,1,171,12,94,15,178,159,147,95,16,123,125,192,67,204,90,31,240,48,91,205,236,245,1,166,230,209,235,3,116,205,92,31,112,21,89,66,174,38,254,245,1,215,145,101,100,13,115,159,37,182,130,152,235,3,30,97,55,19,107,125,192,163,204,92,31,240,24,123,156,221,65,204,245,1,79,176,181,204,189,62,96,21,177,214,7,232,218,106,227,207,189,62,224,73,102,174,15,88,71,156,245,1,235,152,127,125,128,174,217,235,3,182,16,107,125,192,122,22,182,62,96,3,243,175,15,232,81,188,235,3,116,205,94,31,240,20,115,214,7,108,100,254,245,1,123,43,251,40,155,152,120,125,192,12,101,166,242,52,51,215,7,60,195,70,127,97,204,187,62,224,57,246,54,229,80,229,48,229,121,246,2,51,215,7,28,174,44,80,142,80,94,100,188,245,1,47,177,205,204,89,31,176,133,189,204,220,235,3,142,85,94,97,238,245,1,91,217,54,182,72,233,99,253,204,187,62,64,215,142,83,142,87,78,80,78,84,78,82,78,86,78,81,78,85,78,83,78,87,112,150,24,80,70,60,140,255,204,165,131,181,70,104,77,137,247,13,254,14,119,143,11,128,53,66,81,248,29,214,8,117,4,30,193,127,14,32,33,30,133,239,116,4,46,194,90,47,0,190,147,10,216,51,132,189,195,216,51,132,125,131,152,23,192,188,0,230,5,48,47,192,71,249,247,13,62,81,80,159,14,99,130,124,224,44,177,48,224,44,49,244,5,208,23,64,95,160,234,231,7,0,64,231,226,73,204,11,180,112,247,182,40,136,243,200,148,182,243,5,243,202,150,150,229,144,190,84,52,21,190,38,113,56,102,169,117,82,75,136,234,34,158,95,100,103,5,17,183,188,109,197,179,64,209,28,211,106,206,207,105,249,169,157,22,245,11,190,47,18,186,22,63,37,152,47,152,87,182,244,125,169,100,140,83,42,154,10,95,147,56,28,179,212,58,169,37,68,117,225,142,1,249,202,232,165,47,226,150,183,173,120,22,40,154,99,90,205,249,57,45,63,181,211,162,126,193,255,212,31,5,163,215,226,250,54,173,233,79,153,222,148,161,224,165,50,163,233,127,146,4,139,198,242,101,148,133,191,84,24,149,115,199,242,53,17,227,194,29,210,93,228,146,211,46,61,179,153,68,98,107,76,80,78,167,53,70,190,57,77,126,158,141,99,121,165,220,49,224,159,250,55,143,149,145,200,26,19,12,203,49,183,25,228,239,72,185,103,183,216,162,162,231,230,152,96,90,223,225,243,10,171,219,249,9,106,204,28,19,148,245,62,19,139,187,227,250,51,63,167,229,167,118,154,152,90,176,222,75,185,126,97,91,186,244,248,37,195,41,186,83,237,207,214,59,47,133,159,154,68,210,164,229,211,240,77,95,111,34,155,148,195,139,242,150,40,61,253,184,20,44,79,105,167,165,1,0,168,26,214,77,216,169,207,15,93,179,223,45,88,159,188,105,124,200,167,122,169,134,81,9,163,105,203,231,207,207,123,230,148,240,126,118,107,102,125,14,151,42,168,5,175,156,151,50,79,166,56,86,140,146,141,111,17,25,109,120,165,69,245,18,230,39,162,122,115,75,35,107,1,190,254,50,117,17,215,51,227,60,141,147,35,248,11,10,179,91,152,102,254,60,98,207,118,123,154,223,246,81,232,180,245,1,198,108,44,214,7,68,172,15,248,117,143,204,250,128,223,244,132,175,15,208,53,247,58,193,98,215,7,252,182,39,237,250,128,11,123,170,177,62,192,240,70,220,49,130,24,128,24,128,24,144,107,12,248,80,127,20,12,190,177,83,130,249,130,121,101,75,203,114,72,95,42,154,10,95,147,56,28,179,212,58,169,37,68,117,225,238,37,230,43,163,151,190,136,91,222,182,226,89,160,104,142,105,53,231,231,180,252,212,78,139,250,5,191,39,18,186,230,254,54,173,41,74,9,167,224,205,59,163,41,95,250,61,177,101,76,90,42,154,74,80,147,184,28,179,212,58,169,37,130,121,172,39,238,24,144,175,140,94,250,34,110,121,219,138,103,129,162,57,122,177,184,59,174,230,252,156,150,159,218,105,98,106,86,202,59,35,97,180,152,93,223,166,53,253,41,211,155,50,20,188,84,102,52,253,79,146,96,209,88,190,140,178,240,151,10,163,98,165,5,53,145,161,238,254,100,127,158,217,76,34,241,172,102,60,174,115,154,252,60,124,205,221,49,224,157,253,155,199,202,234,201,186,195,210,231,54,195,248,239,217,45,182,168,232,185,185,62,32,173,239,136,235,87,132,249,9,106,204,92,31,32,235,125,38,22,119,199,245,103,126,78,203,79,237,52,49,53,43,229,136,72,232,154,251,219,180,166,63,101,122,83,134,130,151,202,140,166,255,73,18,44,26,203,151,81,22,254,82,97,84,172,180,160,38,50,212,221,159,236,207,51,155,73,36,158,213,140,199,117,78,147,159,135,175,185,59,6,28,97,196,0,89,61,89,119,88,250,220,102,24,255,61,187,197,22,21,61,55,99,64,90,223,17,215,175,8,243,19,212,152,25,3,100,189,207,196,226,238,184,254,204,207,105,249,169,157,38,166,102,165,188,43,18,198,56,133,235,219,180,166,63,101,122,83,134,130,151,202,140,166,255,73,18,44,26,203,151,81,22,254,82,97,84,172,180,160,38,50,212,221,159,236,207,51,155,73,36,158,213,140,199,117,78,147,159,135,175,185,59,6,188,203,136,1,178,122,178,238,176,244,185,205,48,254,123,118,139,45,42,122,110,198,128,180,190,35,174,95,17,230,39,168,49,51,6,200,122,159,137,197,221,113,253,153,159,211,242,83,59,77,76,205,74,153,23,9,93,115,127,155,214,244,167,120,211,69,20,188,185,102,52,101,202,69,97,209,88,190,140,178,240,151,210,181,167,38,196,213,36,46,71,187,116,54,18,71,229,224,231,15,62,181,107,210,193,60,35,6,100,35,213,220,166,216,10,243,140,24,32,46,47,122,110,198,128,180,190,35,178,64,26,219,7,97,198,128,56,244,22,119,199,229,37,174,97,25,95,179,82,112,126,0,206,15,192,249,1,238,185,193,67,186,178,157,27,156,209,149,199,249,1,139,169,120,110,112,110,151,53,55,56,175,75,110,110,112,255,190,40,232,90,252,148,96,190,96,94,217,210,178,28,210,151,138,166,194,215,36,14,199,44,181,78,106,9,81,93,184,219,1,249,202,232,165,47,226,150,183,173,120,22,40,154,99,90,205,249,57,45,63,181,211,162,126,193,111,232,143,130,174,197,79,9,230,11,230,149,45,45,203,33,125,169,104,42,124,77,226,112,204,82,235,164,150,16,213,133,59,6,228,43,163,151,190,136,91,222,182,226,89,160,104,142,105,53,231,231,180,252,212,78,139,250,5,99,207,68,86,216,132,83,105,128,74,98,183,254,40,136,243,200,148,182,243,5,243,202,150,150,229,144,190,84,52,21,190,38,113,56,102,169,117,82,75,136,234,34,158,95,100,103,5,17,183,188,109,197,179,64,209,28,211,106,206,207,105,249,169,157,22,245,11,62,48,18,186,22,63,37,152,47,152,87,182,244,129,169,100,140,83,42,154,10,95,147,56,28,179,212,58,169,37,68,117,225,142,1,249,202,232,165,47,226,150,183,173,120,22,40,154,99,90,205,249,57,45,63,181,211,162,126,193,221,125,81,120,122,130,40,69,215,162,75,219,249,130,121,101,75,203,114,72,95,42,154,10,95,147,56,28,179,212,58,169,37,68,117,225,142,1,201,37,120,102,66,92,43,136,184,229,109,43,11,255,152,224,182,64,17,28,163,181,147,145,227,217,9,226,156,150,159,218,105,98,106,193,122,7,0,89,204,233,0,207,233,4,29,0,160,93,152,221,1,191,159,78,208,1,0,218,133,89,29,240,251,233,4,29,0,160,93,152,217,1,191,159,78,208,33,11,236,218,31,5,113,30,153,210,118,190,96,94,217,210,178,28,210,151,138,166,194,215,36,14,199,44,181,78,106,9,81,93,196,243,139,236,172,32,226,150,183,173,120,22,40,154,99,90,205,249,57,45,63,181,211,162,126,193,245,138,120,207,77,208,181,231,19,174,229,121,161,84,107,128,86,245,20,205,241,193,158,135,122,30,238,89,61,202,247,69,174,53,94,194,58,169,132,216,44,180,220,150,220,109,58,173,63,10,226,60,50,165,237,124,193,188,178,165,101,57,164,47,21,77,133,175,73,28,142,89,106,157,212,18,162,186,136,231,23,217,89,65,196,45,111,91,241,44,80,52,199,180,154,243,115,90,126,106,167,69,253,130,39,71,66,215,226,167,4,243,5,243,202,150,158,156,74,198,56,165,162,169,240,53,137,195,49,75,173,147,90,66,84,23,238,24,144,175,140,94,250,34,110,121,219,138,103,129,162,57,166,213,156,159,211,242,83,59,45,234,23,188,127,36,116,45,126,74,48,95,48,175,108,233,253,83,201,24,167,84,52,21,190,38,113,56,102,169,117,82,75,136,234,194,29,3,242,149,209,75,95,196,45,111,91,241,44,80,52,199,180,154,243,115,90,126,106,167,69,253,130,209,19,3,146,96,43,122,254,29,131,174,190,40,136,243,200,148,182,243,5,243,202,150,150,229,144,190,84,52,21,190,38,113,56,102,169,117,82,75,136,234,34,158,95,100,103,5,17,183,188,109,197,179,64,209,28,211,106,206,203,185,205,136,207,125,19,28,43,71,253,130,223,209,31,5,93,115,127,155,214,244,167,76,111,202,80,240,82,153,209,244,63,73,130,69,99,249,50,202,194,95,42,140,138,149,22,212,68,134,186,251,147,253,121,102,51,137,196,179,154,241,184,206,105,242,243,240,53,119,199,128,119,244,111,30,43,171,39,235,14,75,159,219,12,227,191,103,183,216,162,162,231,230,89,98,105,125,71,92,191,34,204,79,80,99,230,89,98,178,222,103,98,113,119,92,127,230,231,180,252,212,78,19,83,179,82,222,26,9,93,115,127,155,214,244,167,120,211,69,20,188,185,102,52,101,202,69,97,209,88,190,140,178,240,151,210,181,129,9,113,53,137,203,209,46,157,141,196,81,57,248,249,131,79,237,154,116,240,86,35,6,100,35,213,220,166,216,10,111,53,98,128,184,188,232,185,25,3,210,250,142,200,2,105,108,31,132,25,3,226,208,91,220,29,151,151,184,134,101,124,205,74,121,119,36,116,205,253,109,90,211,159,50,189,41,67,193,75,101,70,211,255,36,9,22,141,229,203,40,11,127,169,48,42,86,90,80,19,25,234,238,79,246,231,153,205,36,18,207,106,198,227,58,167,201,207,195,215,220,29,3,222,109,196,0,89,61,89,119,88,250,220,102,24,255,61,187,197,22,21,61,55,99,64,90,223,17,215,175,8,243,19,212,152,25,3,100,189,207,196,226,238,184,254,204,207,105,249,169,157,38,166,102,165,188,63,18,186,230,254,54,173,41,74,9,167,224,205,59,163,41,95,90,140,69,99,227,74,18,166,153,12,149,160,38,113,57,166,215,58,158,78,114,121,172,39,238,24,144,175,140,94,250,34,110,162,231,179,187,243,178,91,214,122,155,49,32,78,77,45,238,142,235,207,252,156,150,159,218,105,98,106,86,202,130,72,232,154,251,219,180,166,63,101,122,83,134,130,151,202,140,166,255,73,18,44,26,203,151,81,22,254,82,97,84,172,180,160,38,50,212,221,159,236,207,51,155,73,36,158,213,140,199,117,78,147,159,135,175,185,59,6,44,48,218,1,178,122,178,238,176,244,185,205,48,254,123,118,139,45,42,122,110,182,3,210,250,142,184,126,69,152,159,160,198,204,24,32,235,125,38,22,119,199,245,103,126,78,203,79,237,52,49,53,43,101,82,159,31,186,102,191,91,176,62,89,207,110,238,9,230,15,150,140,78,245,82,13,163,18,70,211,150,207,159,159,247,204,41,225,253,236,104,107,127,14,151,42,168,5,175,156,151,50,79,166,56,86,140,146,141,111,17,25,109,120,165,69,245,18,230,39,162,122,115,75,35,107,1,190,254,50,117,17,215,51,227,60,141,147,99,112,130,255,23,20,102,183,48,205,252,121,196,158,237,246,52,191,237,163,16,188,95,224,232,62,247,253,2,71,247,225,126,1,220,47,80,167,251,5,162,239,30,63,186,175,184,187,199,69,247,11,100,121,247,56,86,72,212,15,119,247,212,91,127,192,139,96,59,224,195,158,118,192,135,209,14,64,59,0,237,0,79,59,224,195,104,7,0,0,144,30,165,89,109,29,125,223,160,5,127,59,192,120,102,252,89,237,0,213,136,194,13,194,136,191,29,96,150,51,219,1,19,201,36,178,19,113,218,1,59,239,248,143,227,110,7,232,26,191,29,160,107,102,59,192,124,159,236,250,79,101,182,3,174,83,221,237,128,153,100,22,153,109,228,144,105,7,28,65,100,218,1,71,19,187,29,112,12,89,102,240,90,216,42,99,181,3,62,65,188,237,0,75,42,119,59,224,6,245,4,114,34,49,219,1,55,170,78,59,64,215,190,169,152,237,0,93,11,107,7,232,154,211,14,56,203,248,118,182,241,247,61,242,253,81,46,231,24,239,63,38,231,146,243,200,249,228,2,194,107,7,252,194,248,180,92,93,220,250,110,181,3,204,79,118,59,64,215,86,168,209,237,128,155,84,179,29,112,149,241,244,106,226,111,7,92,71,150,25,207,205,118,128,174,221,108,88,102,57,89,65,204,118,128,241,141,248,219,1,119,16,119,59,64,215,204,118,128,174,173,34,86,59,96,165,186,218,248,22,108,7,172,35,226,118,192,45,234,173,170,221,14,216,66,228,219,1,134,127,238,104,7,244,40,222,118,128,225,157,156,118,128,174,57,237,0,93,51,219,1,123,43,225,247,13,206,80,118,180,3,12,141,111,83,111,87,205,118,128,174,121,219,1,135,42,135,41,118,59,224,112,101,129,114,132,241,141,223,14,48,188,113,71,59,192,252,230,110,7,28,171,152,237,0,93,139,106,7,232,218,113,202,241,202,9,202,137,202,73,202,201,202,41,202,169,202,105,202,233,138,211,14,56,172,63,12,83,155,135,25,243,7,238,39,211,154,206,103,43,101,122,51,156,134,149,207,75,101,70,128,110,18,44,26,235,149,36,46,252,165,194,168,156,59,150,175,137,24,23,238,144,238,34,151,156,118,233,153,205,36,18,207,106,206,110,174,28,43,167,211,26,35,223,156,38,63,207,198,177,188,82,238,152,127,152,49,55,40,35,17,237,110,116,179,238,176,28,115,155,65,254,142,148,123,118,139,45,42,122,110,206,13,166,245,29,62,175,176,186,157,159,160,198,204,185,65,89,239,51,177,184,59,174,63,243,115,90,126,106,167,137,169,89,41,71,70,194,136,73,174,111,211,154,162,148,112,10,222,188,51,154,242,165,197,88,52,54,174,36,97,154,201,80,9,106,18,151,99,122,173,227,233,36,151,199,122,226,142,1,249,202,232,165,47,226,150,183,173,120,22,40,154,163,23,139,187,227,106,206,207,105,249,169,157,38,166,102,165,124,32,18,186,230,254,54,173,41,74,9,167,224,205,59,163,41,95,90,140,69,99,227,74,18,166,153,12,149,160,38,113,57,166,215,58,158,78,114,121,172,39,238,24,144,175,140,94,250,34,110,162,231,179,187,243,178,91,214,122,155,237,128,56,53,181,184,59,174,63,243,115,90,126,106,167,137,169,89,41,209,227,1,152,23,192,188,0,230,5,220,243,2,97,227,1,85,156,23,120,111,127,20,140,95,134,235,219,180,166,40,37,156,130,55,239,140,166,124,105,49,22,141,141,43,73,152,102,50,84,130,154,196,229,152,94,235,120,58,201,229,177,158,184,219,1,249,202,232,165,47,226,150,183,173,120,22,40,154,163,23,139,187,227,106,206,207,105,249,169,157,38,166,102,165,188,47,18,186,230,254,54,173,41,74,9,167,224,205,59,163,41,95,90,140,69,99,227,74,18,166,153,12,149,160,38,113,57,166,215,58,158,78,114,121,172,39,238,24,144,175,140,94,250,34,110,121,219,138,103,129,162,57,122,177,184,59,174,230,252,156,150,159,218,105,98,106,86,202,135,35,161,107,241,83,130,249,130,121,101,75,127,56,149,140,113,74,69,83,225,107,18,135,99,150,90,39,181,132,168,46,220,49,32,95,25,189,244,69,220,242,182,21,207,2,69,115,76,171,57,63,167,229,167,118,90,212,47,248,240,72,24,61,104,215,183,105,77,81,74,56,5,111,222,25,77,249,210,98,44,26,27,87,146,48,205,100,168,4,53,137,203,49,189,214,241,116,146,203,99,61,113,199,128,195,141,185,193,252,100,244,74,32,146,89,244,220,156,27,204,199,110,89,215,142,57,38,24,167,166,22,119,199,245,103,126,78,203,79,237,52,49,181,96,189,3,245,192,73,184,99,11,0,106,141,83,16,3,0,160,214,56,25,49,0,0,106,13,101,34,108,0,0,117,6,69,12,0,92,248,94,95,20,196,121,100,74,219,249,130,121,101,75,203,114,72,95,42,154,10,95,147,56,28,179,212,58,169,37,68,117,17,207,47,146,99,164,199,75,95,196,45,111,91,241,44,80,52,199,180,154,243,115,90,126,106,167,69,253,130,177,86,24,107,133,177,86,184,222,107,133,209,18,170,31,198,160,47,0,184,48,165,63,10,226,60,50,165,237,124,193,188,178,165,101,57,164,47,21,77,133,175,73,28,142,89,106,157,212,18,162,186,136,231,23,217,89,65,196,45,111,91,241,44,80,52,199,180,154,243,115,90,126,106,167,69,253,130,17,5,1,160,83,48,54,81,11,175,202,103,137,121,199,3,242,61,75,204,204,29,239,44,49,93,179,207,18,115,143,7,20,119,150,152,57,30,96,190,6,207,18,235,158,40,51,30,160,107,114,103,137,153,72,126,150,152,174,197,63,75,204,164,85,141,179,196,236,241,128,114,159,37,182,177,47,10,186,22,63,37,152,47,152,87,182,180,44,135,244,165,162,169,240,53,137,195,49,75,173,147,90,66,84,23,238,152,159,175,140,94,250,34,110,121,219,138,103,129,162,57,166,213,156,159,211,242,83,59,45,234,23,156,180,29,96,206,11,56,237,0,74,248,237,0,107,94,192,223,14,200,103,94,32,207,118,192,26,26,213,14,224,207,11,240,218,1,113,231,5,188,237,128,44,230,5,246,232,138,211,14,88,66,130,237,0,115,94,192,106,7,220,72,172,118,128,53,47,16,221,14,240,207,11,136,218,1,225,243,2,201,218,1,238,121,129,30,69,233,141,110,7,4,231,5,162,218,1,114,243,2,238,118,128,53,47,32,211,14,240,207,11,88,237,128,232,121,1,179,29,16,156,23,80,123,237,118,0,98,64,39,197,128,174,94,153,24,64,122,139,139,1,223,80,171,22,3,14,233,202,54,6,204,232,202,35,6,44,166,226,24,48,183,203,138,1,243,186,228,98,192,181,91,253,208,53,251,221,134,251,153,59,151,247,155,251,187,67,33,72,215,77,155,207,55,40,147,77,203,45,147,159,62,79,174,160,212,162,52,94,57,30,127,177,181,118,154,40,230,42,171,101,152,254,142,221,194,164,20,105,36,174,139,96,173,240,107,51,74,162,40,251,240,61,37,88,74,76,195,175,75,180,70,242,8,175,45,113,142,48,203,132,123,35,175,70,248,191,179,112,203,136,228,114,232,71,201,59,59,0,93,179,223,109,184,159,185,115,121,191,185,191,59,20,130,116,221,180,249,124,103,115,165,178,56,186,75,250,41,4,229,10,74,45,74,227,149,227,241,15,179,150,152,171,172,150,97,250,59,118,11,147,82,164,145,187,220,171,38,138,109,236,182,174,152,15,79,162,40,251,240,61,37,88,74,76,195,175,139,200,187,146,32,188,182,196,57,194,44,19,238,141,188,95,7,255,119,22,110,25,145,92,14,253,40,121,101,250,2,175,158,216,190,121,129,77,253,155,250,195,230,5,54,245,39,237,11,108,234,231,247,5,54,245,135,205,11,108,234,119,250,2,155,250,173,190,192,166,254,69,163,178,216,125,129,77,253,206,188,128,201,231,100,227,53,206,188,192,166,126,119,95,96,83,191,127,94,96,83,127,212,188,128,201,117,113,75,94,222,29,35,113,250,2,155,250,147,204,11,108,234,55,251,2,166,20,118,95,96,83,127,251,230,5,54,245,155,125,129,77,253,222,121,129,77,253,249,206,11,108,234,79,59,47,96,82,112,207,11,108,234,15,159,23,48,60,81,49,127,49,241,230,5,202,62,227,217,53,16,158,190,203,196,172,41,135,115,116,167,218,159,131,37,130,185,162,244,72,99,131,188,202,166,175,55,158,181,202,227,69,121,75,148,158,126,92,10,102,126,227,95,117,27,45,157,7,70,250,119,157,24,158,158,156,114,18,138,238,84,251,179,253,254,186,137,226,92,241,228,220,109,98,184,68,187,71,70,190,61,38,166,181,143,141,61,39,38,183,46,207,90,237,241,34,243,245,245,19,179,242,157,116,30,150,31,5,51,255,72,255,72,135,173,252,123,165,255,149,254,240,244,228,148,147,80,116,167,218,159,253,239,188,92,241,228,244,230,14,150,141,166,22,148,41,107,59,201,148,226,89,171,61,94,196,147,32,111,137,178,183,125,20,69,51,61,234,23,19,4,198,3,48,30,128,241,128,188,199,3,54,245,151,121,60,64,38,6,188,177,141,49,96,109,255,218,208,24,176,54,113,12,88,43,136,1,107,67,99,192,90,87,12,88,59,26,3,214,142,198,128,181,59,98,192,90,87,12,88,219,138,1,107,99,197,128,181,158,24,176,54,16,3,214,70,198,128,181,163,49,96,109,234,24,176,54,81,12,88,219,138,1,107,93,49,96,109,27,99,192,218,86,12,88,235,139,1,107,115,142,1,107,83,143,9,174,245,197,128,181,17,49,192,240,68,197,252,197,100,31,3,208,14,64,59,0,237,128,206,157,23,216,208,231,135,174,217,239,54,130,105,214,39,239,55,247,119,135,2,175,172,67,157,207,55,40,147,77,203,43,147,159,66,80,46,62,21,94,222,240,114,14,127,177,181,68,41,222,180,112,45,195,244,231,91,45,40,37,95,35,119,57,17,13,191,117,197,124,68,18,69,219,199,79,59,104,213,48,75,122,229,23,123,87,124,132,215,150,56,71,152,101,28,235,240,61,32,248,52,232,29,225,58,242,126,133,241,229,189,177,223,15,93,179,223,109,184,159,185,115,121,191,185,191,59,20,130,116,221,180,249,124,131,50,217,180,220,50,249,233,243,228,10,74,237,151,200,205,149,207,217,203,63,204,90,98,174,178,90,134,233,239,216,45,92,74,190,70,238,114,34,26,126,235,138,249,240,36,138,178,15,223,83,130,165,196,52,252,242,139,188,43,9,194,107,75,156,35,204,50,142,117,248,30,16,124,202,255,157,133,91,70,36,151,174,237,55,81,78,222,245,125,126,232,154,253,110,35,152,102,125,242,126,115,127,119,40,240,202,58,212,249,124,131,50,217,180,188,50,249,41,4,229,226,83,225,229,13,47,231,240,23,91,75,148,226,77,11,215,50,76,127,190,213,130,82,242,53,114,151,19,209,240,91,87,204,71,36,81,180,125,252,180,131,86,13,179,164,87,126,177,119,197,71,120,109,137,115,132,89,198,177,14,223,3,130,79,131,222,17,174,35,239,87,24,95,222,117,1,232,154,253,110,35,152,102,125,242,126,115,127,119,40,240,202,58,212,249,124,215,113,165,178,56,186,101,242,83,8,202,197,167,194,203,27,94,206,225,47,182,150,40,197,155,22,174,101,152,254,124,171,5,165,228,107,228,46,39,162,225,183,174,152,143,72,162,104,251,248,105,7,173,26,102,73,175,252,98,239,138,143,240,218,18,231,8,179,140,99,29,190,7,4,159,6,189,35,92,71,222,175,48,190,188,79,109,243,67,215,236,119,27,238,103,238,92,222,111,238,239,14,133,32,93,55,109,62,223,160,76,54,45,183,76,126,250,60,185,130,82,187,211,6,84,47,87,62,103,47,255,48,107,137,185,202,106,25,166,191,99,183,48,41,7,85,190,70,238,114,34,26,126,235,138,249,240,36,138,178,15,223,83,130,165,196,52,252,242,139,188,43,9,194,107,75,156,35,204,50,225,222,200,251,117,240,127,103,225,150,17,201,229,208,143,146,23,231,10,227,92,97,156,43,140,115,133,235,137,61,6,210,150,146,163,112,208,196,228,220,218,165,101,30,124,247,232,176,85,236,157,229,215,101,198,115,219,210,165,199,47,25,78,209,157,106,127,182,222,121,41,252,212,36,146,38,45,159,134,111,250,122,19,217,164,28,94,148,183,68,233,233,199,165,96,121,74,59,45,221,14,252,199,184,122,233,91,93,156,167,150,77,162,183,161,101,210,17,120,115,19,54,0,146,225,96,220,181,98,69,231,254,228,144,45,109,230,11,230,77,199,59,11,90,254,82,209,84,248,154,196,225,152,165,214,217,89,203,122,146,149,95,100,101,133,226,109,85,36,199,48,94,242,114,240,115,90,126,106,167,137,169,89,41,103,166,128,174,201,231,11,230,149,45,157,165,36,225,165,162,169,240,53,137,195,49,75,173,179,179,150,245,196,29,3,242,229,47,71,191,120,91,21,201,49,140,151,188,28,252,156,150,159,218,105,98,106,193,122,7,242,199,32,110,120,4,74,134,227,250,147,67,182,180,153,47,152,55,29,239,44,104,249,75,69,83,225,107,18,135,99,150,90,103,103,45,235,73,86,126,145,149,21,138,183,85,145,28,195,120,201,203,193,207,105,62,253,167,198,219,27,81,212,172,148,227,83,64,215,228,243,5,243,202,150,206,82,146,240,82,209,84,248,154,196,225,152,165,214,217,89,203,122,226,142,1,249,242,151,163,95,188,173,138,228,24,198,75,94,14,126,78,203,79,237,52,49,53,43,229,132,20,208,53,249,124,193,188,178,165,179,148,36,188,84,52,21,190,38,113,56,102,169,117,118,214,178,158,184,99,64,190,252,229,232,23,111,171,34,57,134,241,146,151,131,159,211,242,83,59,77,76,205,74,65,95,0,125,1,244,5,234,221,23,192,136,8,80,85,76,199,252,126,38,248,109,127,20,196,121,100,74,219,249,130,121,101,75,203,114,72,95,42,154,10,95,147,56,28,179,212,58,59,107,89,79,226,249,69,118,86,16,113,43,210,86,182,5,218,89,11,73,52,231,231,180,252,212,78,139,250,5,35,10,2,85,197,12,180,3,50,193,87,251,147,67,182,180,153,47,152,55,29,239,44,104,249,75,69,83,225,107,18,135,99,150,90,103,103,45,235,73,86,126,145,149,21,138,183,85,145,28,195,120,201,203,193,207,105,249,169,157,38,166,102,165,124,42,5,116,77,62,95,48,175,108,233,44,37,9,47,21,77,133,175,73,28,142,89,106,157,157,181,172,39,238,24,144,47,127,47,125,17,183,34,109,101,91,160,157,181,144,68,115,126,78,203,79,237,52,49,53,43,229,147,41,160,107,242,249,130,121,101,75,103,41,73,120,169,104,42,124,77,226,112,204,82,235,236,172,101,61,113,199,128,124,249,123,233,139,184,21,105,43,219,2,237,172,133,36,154,243,115,90,126,106,167,137,169,89,41,159,72,1,93,147,207,23,204,43,91,58,75,73,194,75,69,83,225,107,18,135,99,150,90,103,103,45,235,137,59,6,228,203,223,75,95,196,173,72,91,217,22,104,103,45,36,209,156,159,211,242,83,59,77,76,205,74,249,120,10,232,154,124,190,96,94,217,210,89,74,18,94,42,154,10,95,147,56,28,179,212,58,59,107,89,79,220,49,32,95,254,94,250,34,110,69,218,202,182,64,59,107,33,137,230,252,156,150,159,218,105,98,106,86,202,199,82,64,215,228,243,5,243,202,150,206,82,146,240,82,209,84,248,154,196,225,152,165,214,217,89,203,122,226,142,1,249,242,247,210,23,113,43,210,86,182,5,218,89,11,73,52,231,231,180,252,212,78,19,83,179,82,126,154,2,186,38,159,47,152,87,182,116,150,146,132,151,138,166,194,215,36,14,199,44,181,206,206,90,214,19,119,12,200,151,191,151,190,136,91,145,182,178,45,208,206,90,72,162,57,63,167,229,167,118,154,152,154,149,114,108,10,232,154,124,190,96,94,217,210,89,74,18,94,42,154,10,95,147,56,28,179,212,58,59,107,89,79,220,49,32,95,254,94,250,34,110,69,218,202,182,64,59,107,33,137,230,252,156,150,159,218,105,98,106,193,122,7,128,58,97,38,214,24,181,240,207,253,201,33,91,218,204,23,204,155,142,119,22,180,252,165,162,169,240,53,137,195,49,75,173,179,179,150,245,36,43,191,136,107,5,17,183,34,109,101,91,160,157,181,144,68,115,126,78,203,79,237,52,49,53,43,229,232,237,201,161,107,237,43,157,7,162,37,74,47,115,249,180,118,203,102,163,108,118,175,135,12,217,74,227,208,136,162,22,125,207,144,5,222,61,67,186,102,222,51,164,107,251,168,148,236,171,238,167,250,239,25,50,203,153,247,12,237,175,78,34,7,168,206,61,67,230,243,93,90,175,242,247,12,153,185,39,27,175,83,70,111,195,9,222,51,116,160,122,144,58,219,120,150,221,61,67,186,102,223,51,100,113,90,216,122,183,238,25,154,162,70,223,51,100,194,127,207,144,33,185,42,115,207,144,174,217,247,12,29,98,88,110,170,241,55,77,245,222,51,100,215,12,239,158,33,93,243,223,51,100,62,183,239,25,50,63,71,223,51,164,107,230,61,67,211,213,37,100,134,234,189,103,200,204,177,204,120,181,239,25,210,181,229,173,215,155,140,215,153,170,255,158,161,59,136,247,158,33,93,51,239,25,210,53,235,158,33,93,91,109,252,5,239,25,210,181,245,198,159,232,158,33,93,179,239,25,154,165,38,187,103,72,215,188,247,12,25,222,201,185,103,72,215,118,87,102,171,238,123,134,230,168,225,247,12,25,22,176,239,25,218,97,205,224,61,67,115,213,121,173,147,214,205,123,134,116,109,65,43,47,255,158,33,195,27,119,220,51,100,126,179,239,25,50,188,81,153,175,202,221,51,36,234,3,196,185,103,232,97,156,195,14,0,64,199,97,53,34,27,0,15,51,144,190,47,160,16,149,80,210,32,140,136,250,2,19,201,36,178,19,113,250,2,59,147,164,125,129,203,84,171,47,112,185,26,236,11,204,36,179,136,108,95,224,8,34,211,23,56,154,216,125,129,99,136,191,47,240,9,18,221,23,56,129,156,72,130,125,129,43,212,120,119,142,158,101,60,57,219,248,251,30,241,246,5,206,37,231,145,243,201,5,132,215,23,248,5,201,170,47,112,21,89,66,174,38,254,59,71,175,35,254,190,192,10,98,245,5,110,38,81,125,1,235,206,209,85,36,188,47,176,142,132,221,57,234,244,5,182,144,100,125,129,30,69,166,47,112,165,234,191,115,116,111,37,188,47,48,67,145,233,11,28,170,28,166,216,125,129,195,149,5,202,17,74,220,190,128,121,231,232,177,138,108,95,224,56,229,120,229,4,229,68,229,36,229,100,229,20,229,84,229,52,229,116,5,119,142,234,218,239,134,241,159,10,232,68,15,155,131,57,79,73,236,55,4,27,0,240,176,58,99,127,212,16,0,15,171,53,246,69,13,1,240,48,0,200,21,243,208,51,5,114,199,95,41,108,80,94,76,220,14,27,148,31,152,27,204,123,110,240,212,9,152,27,196,220,96,29,231,6,79,26,83,246,232,119,134,222,57,145,28,16,227,148,49,240,176,206,70,121,250,2,111,65,223,23,0,42,133,127,30,132,13,0,120,88,213,198,3,194,246,13,86,101,173,240,233,4,227,1,85,25,15,48,247,13,118,254,120,64,210,24,96,60,115,197,0,93,139,27,3,44,184,99,128,174,241,99,128,174,185,99,128,141,178,197,0,75,22,153,24,240,77,197,140,1,186,22,22,3,116,77,20,3,76,156,99,188,71,197,0,243,125,113,235,53,109,12,208,181,176,24,96,229,151,143,1,186,102,198,0,93,107,71,12,48,252,51,69,12,208,181,228,49,192,152,37,205,45,6,232,90,187,98,0,206,15,192,249,1,56,63,160,51,206,15,64,95,0,125,1,244,5,234,221,23,192,200,13,144,45,254,9,243,35,21,3,218,1,104,7,160,29,128,49,65,196,0,196,0,196,0,196,0,140,9,98,76,16,99,130,24,19,196,220,32,230,6,49,55,136,185,65,196,0,196,0,196,128,122,197,128,178,143,89,30,182,45,63,202,124,218,225,28,221,169,246,103,235,157,151,194,79,205,211,6,254,188,249,217,79,70,14,145,77,202,225,69,121,75,228,165,255,78,99,190,228,93,19,179,144,59,60,191,200,175,171,139,93,183,229,71,153,79,59,156,163,59,213,254,108,189,243,82,248,169,121,218,192,159,119,215,109,237,172,55,145,77,202,225,69,121,75,228,165,255,110,227,247,255,158,137,89,200,29,158,95,228,215,217,207,13,162,47,128,190,0,250,2,157,209,23,120,247,128,31,70,196,26,125,247,68,49,79,154,245,201,251,205,253,221,161,16,164,235,166,205,231,235,126,250,159,91,109,218,22,71,119,201,32,13,191,92,65,169,157,207,255,185,245,63,183,122,185,90,159,205,167,60,171,88,57,220,169,118,121,235,221,150,212,157,226,104,96,151,227,107,25,174,129,67,205,214,88,84,218,145,194,47,175,91,243,160,213,252,53,46,35,169,191,14,188,114,89,124,29,155,216,146,248,61,37,168,77,144,159,200,175,68,222,21,132,155,183,255,41,207,179,195,63,135,243,114,116,52,181,215,181,87,171,124,58,188,95,135,223,230,110,159,226,213,155,255,87,104,106,100,249,181,59,119,148,188,101,143,1,63,201,45,6,252,100,235,79,184,49,224,39,161,49,192,157,106,151,183,222,127,178,213,77,219,161,108,61,255,73,138,24,240,147,24,49,192,111,175,159,180,41,6,88,124,127,226,138,1,63,105,99,12,248,9,55,6,252,36,231,24,240,147,212,49,224,39,49,99,128,169,145,229,215,157,20,3,206,204,45,6,156,185,245,76,110,12,56,51,52,6,184,83,237,242,214,251,153,91,221,180,29,202,214,243,51,83,196,128,51,99,196,0,191,189,206,108,83,12,176,248,158,233,138,1,103,182,49,6,156,201,141,1,103,230,28,3,206,76,29,3,206,140,25,3,76,141,44,191,142,19,3,202,62,38,248,145,129,162,41,135,115,116,167,218,159,173,119,94,10,63,181,72,27,124,100,160,157,245,38,178,73,57,188,40,111,137,210,211,143,75,193,204,255,145,129,143,116,216,77,154,71,14,20,77,57,156,163,59,213,254,108,189,243,82,248,169,69,218,224,200,129,118,214,155,200,38,229,240,162,188,37,74,79,63,46,5,51,255,145,3,71,118,88,12,184,190,191,104,202,225,28,221,169,246,231,96,137,96,174,52,122,180,171,108,122,235,242,172,85,30,47,202,91,162,244,244,227,82,152,216,107,150,105,167,165,17,3,16,3,16,3,16,3,178,198,198,109,73,210,55,110,75,79,57,186,148,253,217,122,231,165,100,207,63,107,251,229,197,37,104,147,242,121,81,124,233,226,149,8,207,157,159,109,202,98,245,118,98,179,218,217,250,109,41,133,126,47,151,64,138,87,58,188,166,129,78,196,32,78,110,2,42,136,133,253,113,211,22,246,231,207,217,141,119,55,242,163,157,157,54,186,246,158,70,62,116,189,180,226,211,125,175,207,126,239,107,20,103,149,133,253,249,122,238,194,126,235,85,134,239,251,27,254,167,34,233,196,244,156,20,25,205,178,211,62,200,63,26,31,104,213,51,206,17,146,221,47,64,199,44,36,123,179,180,231,8,13,42,85,185,111,112,31,150,254,28,161,198,24,153,115,132,246,106,198,221,47,176,47,203,250,28,161,165,74,123,207,17,98,99,218,119,142,208,253,253,126,232,154,253,110,195,253,204,157,203,251,205,253,221,161,16,164,235,166,205,231,27,148,201,166,229,150,201,79,159,39,87,80,106,191,68,110,174,124,206,94,254,97,214,18,115,149,213,50,76,127,17,31,191,148,124,141,196,117,17,172,21,126,109,70,113,140,178,15,223,83,130,165,196,52,252,186,68,107,36,143,240,218,18,231,16,211,114,252,85,166,38,189,26,69,75,35,254,21,6,107,60,90,222,124,240,254,210,223,58,93,126,9,129,106,215,115,221,61,236,125,165,215,191,252,18,2,213,174,103,120,88,217,241,1,212,16,0,15,171,53,40,238,29,6,224,97,6,182,13,248,97,63,227,229,115,242,155,159,188,223,220,223,29,10,65,186,110,218,124,190,60,26,214,187,87,30,158,6,94,185,130,82,251,37,114,115,229,107,225,46,201,47,239,72,198,167,236,231,35,230,194,215,192,45,155,151,26,79,74,191,189,130,154,243,235,61,104,221,112,73,253,117,192,247,8,63,127,191,141,249,218,138,234,143,71,43,202,158,97,254,201,247,145,56,57,194,185,241,234,139,87,35,126,9,69,121,194,189,221,91,231,188,95,45,31,245,61,75,236,233,1,156,37,134,179,196,242,60,75,236,233,209,24,80,237,115,133,167,54,253,79,166,5,158,76,111,198,111,125,204,104,102,209,134,89,52,86,215,142,234,43,166,189,116,238,216,184,37,46,108,149,48,229,187,136,83,118,102,34,11,204,106,206,110,174,148,148,100,141,145,111,142,128,203,70,9,26,155,165,248,208,238,70,55,235,14,203,49,183,37,195,188,38,191,166,246,236,142,111,133,217,221,115,186,77,203,166,171,251,184,229,231,39,168,177,239,118,159,21,75,191,197,221,105,52,202,19,47,148,120,63,114,114,217,202,172,85,167,160,222,54,134,135,1,101,197,34,248,38,0,0,45,124,20,247,132,3,64,13,113,12,126,249,0,96,64,193,250,0,0,30,214,1,248,199,64,241,37,1,160,147,60,44,122,125,192,10,106,190,242,246,14,223,68,173,245,1,55,83,74,86,210,91,168,127,125,192,173,244,54,106,174,15,184,157,78,34,119,80,103,125,192,157,198,231,187,90,84,229,247,14,223,77,239,161,147,201,189,244,62,122,63,125,128,174,162,193,245,1,15,210,135,232,108,242,48,149,89,31,48,89,149,217,59,188,154,218,235,3,214,24,210,62,66,23,146,71,169,189,62,224,49,26,189,119,248,113,250,4,13,238,29,62,157,196,219,59,188,214,224,249,164,241,183,142,122,247,14,175,167,27,232,83,116,35,229,173,15,216,68,253,123,135,159,166,207,80,123,125,192,63,168,204,250,128,103,169,185,62,224,57,186,132,60,79,253,235,3,94,160,203,200,139,212,222,59,252,18,93,78,54,83,115,125,192,22,250,50,245,175,15,120,133,242,246,14,111,165,214,250,128,109,116,53,233,163,193,245,1,253,52,108,125,192,0,181,215,7,12,210,100,123,135,135,168,204,222,225,237,212,191,119,120,152,134,175,15,24,161,59,214,7,80,219,154,193,189,195,164,161,180,118,238,155,235,3,212,198,2,133,54,26,13,254,250,0,214,112,214,7,140,105,120,215,7,140,109,200,237,29,238,110,28,167,52,27,227,26,61,141,222,198,201,202,248,198,132,198,196,198,164,134,123,125,192,95,134,202,28,163,162,164,75,46,125,178,146,238,82,246,231,32,37,231,73,187,173,91,28,127,147,147,95,239,60,185,199,161,205,203,251,151,161,188,109,211,174,186,143,207,247,207,165,142,1,81,210,37,151,62,89,73,119,41,251,115,144,146,243,164,221,214,45,142,191,201,201,175,119,158,220,227,208,230,229,253,243,80,222,182,105,87,221,151,251,23,157,45,174,43,240,68,201,101,177,121,221,176,163,196,141,109,57,249,114,121,8,215,21,18,18,221,36,41,245,205,17,249,142,13,157,133,88,153,192,54,183,168,183,86,228,44,209,219,212,219,43,33,233,159,74,29,53,162,164,75,46,125,178,146,238,82,246,231,32,37,231,73,187,173,91,28,255,79,76,12,234,157,39,247,56,180,121,121,255,52,148,183,109,218,85,247,229,254,69,87,29,159,74,61,179,142,115,133,1,0,49,0,0,128,114,224,61,91,235,169,211,146,9,197,201,243,198,146,206,145,191,103,107,39,214,126,185,109,94,70,92,219,129,94,32,163,83,145,122,239,53,80,46,121,28,158,94,174,157,228,11,123,33,6,0,64,36,190,216,251,165,94,88,1,0,242,199,167,177,63,169,112,124,6,54,7,128,72,236,55,176,31,90,204,21,65,99,160,92,148,221,165,236,207,65,74,141,210,248,87,49,146,120,185,152,223,172,39,101,177,3,95,142,248,210,197,43,209,46,237,203,227,125,0,0,100,135,127,169,109,11,127,252,64,185,40,243,74,5,159,141,47,77,36,110,151,36,22,223,178,216,129,47,71,222,210,181,215,246,242,192,222,97,236,29,198,222,225,186,239,29,14,195,35,219,146,60,137,134,124,153,176,156,73,56,39,45,109,231,118,151,226,61,115,158,56,79,121,156,146,201,254,200,54,19,242,18,139,114,203,208,144,227,19,46,145,99,7,81,158,100,222,19,183,84,48,255,155,6,222,52,144,204,3,242,169,173,44,60,58,91,42,0,208,217,216,103,96,31,140,156,73,225,209,109,73,158,36,161,155,36,231,163,219,178,213,77,38,183,187,20,239,153,243,196,121,202,227,148,76,246,71,183,153,144,151,88,148,91,134,134,28,159,112,137,28,59,136,242,36,243,158,184,165,130,249,247,30,216,123,32,153,7,228,83,91,89,120,116,182,84,0,160,179,177,239,192,190,104,7,84,4,249,237,127,72,70,217,93,202,254,28,164,84,158,93,27,237,149,228,141,3,229,176,4,95,138,188,101,107,151,238,157,182,103,40,191,253,15,201,40,187,75,217,159,131,148,202,179,107,163,189,146,236,53,80,14,75,240,165,200,91,182,118,233,222,105,123,134,14,26,40,23,101,119,41,251,115,144,210,65,165,169,133,246,74,82,22,59,240,229,200,91,186,118,105,95,30,239,203,6,52,66,159,241,205,188,40,71,151,178,63,7,41,209,210,212,66,49,146,136,44,80,22,59,240,229,136,47,93,188,18,237,210,190,60,222,151,13,254,123,160,92,148,221,165,236,207,65,74,255,93,154,90,104,151,36,22,223,178,216,129,47,71,222,210,181,215,246,0,192,195,231,176,171,20,168,28,186,7,202,69,217,93,202,254,28,164,212,93,154,72,220,46,73,44,190,101,177,3,95,142,188,165,107,175,237,59,7,103,12,148,159,114,144,210,25,104,141,149,202,14,124,57,242,150,174,93,218,119,154,247,125,126,160,252,148,131,148,62,143,24,80,42,59,240,229,200,91,186,118,105,255,249,204,247,13,90,224,237,27,212,53,107,223,160,74,40,105,16,70,252,251,6,117,205,218,55,56,145,76,34,59,145,188,247,13,206,36,179,200,108,227,153,204,190,193,35,136,204,190,193,163,137,123,223,160,174,45,108,149,177,246,13,126,130,200,236,27,60,145,248,247,13,234,90,220,125,131,103,25,79,206,54,254,190,71,162,247,13,118,181,206,200,139,218,55,72,122,101,246,13,234,154,185,111,240,42,178,132,92,77,120,251,6,117,205,222,55,168,107,246,190,65,93,187,153,120,247,13,126,67,189,131,132,237,27,212,181,213,198,95,220,125,131,186,102,239,27,220,66,146,237,27,236,81,148,94,247,190,65,195,59,165,246,13,238,173,100,177,111,240,80,229,176,214,110,61,103,223,160,174,241,247,13,26,222,40,220,55,120,172,34,183,111,80,215,120,251,6,213,94,185,125,131,157,140,107,251,241,127,186,222,117,157,183,7,20,239,97,199,99,204,23,0,106,130,19,51,252,181,39,237,11,24,207,92,125,1,93,227,247,5,140,214,22,167,47,176,243,142,86,167,187,47,160,107,252,190,128,174,153,125,1,243,125,178,171,181,90,108,95,224,24,18,213,23,176,100,241,246,5,78,32,188,190,192,55,21,179,47,160,107,97,125,1,93,19,245,5,76,156,99,188,255,152,156,75,206,35,231,147,11,8,239,12,145,95,180,62,45,110,189,90,125,1,243,147,221,23,216,163,43,78,95,64,215,130,125,129,235,136,221,23,176,242,47,39,43,8,191,47,160,107,222,190,128,174,153,125,1,93,91,69,194,251,2,235,72,246,125,1,195,63,93,125,1,239,25,34,78,95,224,144,46,167,47,160,107,78,95,64,215,100,250,2,51,148,29,125,129,81,91,206,232,154,99,124,22,247,5,14,87,22,40,71,40,50,125,1,243,155,221,23,88,76,237,190,128,174,249,251,2,115,187,172,190,192,188,46,167,47,112,188,114,130,114,162,114,146,114,178,114,138,114,170,114,154,114,186,34,123,134,8,0,0,73,112,106,14,173,242,211,208,210,207,24,215,96,236,62,119,156,81,18,175,229,215,117,222,30,0,15,43,59,110,66,13,213,198,198,124,57,242,150,174,42,30,134,241,128,250,141,7,152,159,49,30,32,26,15,112,207,13,102,49,30,96,206,13,102,63,30,224,204,13,6,199,3,120,115,131,97,227,1,88,31,128,245,1,88,31,128,245,1,245,196,93,88,31,80,243,186,150,241,128,52,94,146,189,135,69,81,76,198,17,125,1,244,5,208,23,168,119,95,160,234,17,254,43,201,71,158,51,142,210,15,118,227,255,109,105,209,95,132,7,20,78,191,12,28,75,128,223,12,20,95,178,24,122,64,222,117,147,119,141,21,237,17,191,25,128,15,230,137,175,97,125,6,0,148,18,175,238,43,166,108,26,62,85,177,7,124,7,40,35,200,64,186,244,248,37,195,41,186,83,237,207,193,18,100,160,72,27,228,85,54,189,204,60,107,149,199,139,242,150,40,61,253,100,20,8,122,4,146,88,50,8,27,0,240,176,58,99,143,33,216,0,128,135,213,25,107,16,165,1,120,152,129,255,28,242,195,126,198,203,231,205,111,125,115,158,249,169,121,233,187,243,153,159,249,220,249,60,156,50,182,92,142,132,193,210,188,103,65,137,28,138,222,114,60,125,108,78,65,141,120,229,188,114,6,249,132,67,68,45,248,52,168,191,195,211,95,34,168,57,143,179,155,166,88,82,191,70,65,45,29,238,65,254,126,185,196,94,37,178,25,79,194,112,187,6,83,253,124,249,94,44,227,161,34,186,162,223,152,223,34,110,191,242,107,236,247,183,160,125,121,245,194,179,125,216,111,63,253,126,1,93,219,71,165,100,95,117,63,85,180,78,112,127,117,18,57,64,117,214,9,154,207,119,105,189,202,239,23,48,115,155,235,4,167,140,174,76,11,174,19,60,80,61,72,149,93,39,56,89,149,89,39,168,107,246,58,65,139,147,123,157,224,20,53,122,191,128,137,224,58,193,131,85,153,253,2,95,104,218,235,4,15,49,44,55,213,248,155,166,126,159,124,177,233,236,23,176,107,134,183,78,80,215,252,251,5,204,231,73,214,9,78,87,151,144,25,170,119,157,160,153,195,191,95,192,124,53,215,9,206,84,195,215,9,222,75,190,220,52,247,11,232,90,248,58,65,93,91,111,252,69,175,19,156,165,38,219,47,160,107,178,235,4,191,210,116,239,23,152,163,134,175,19,52,44,192,89,39,232,223,47,48,87,157,167,154,41,230,58,65,93,91,208,202,27,111,157,160,225,141,202,124,245,107,77,185,253,2,124,200,175,19,60,183,255,220,254,176,84,249,167,241,17,77,199,159,67,158,243,185,253,71,55,228,165,56,55,135,21,88,89,210,180,105,201,200,58,171,209,14,233,69,249,207,205,113,109,155,69,155,111,19,190,95,203,250,19,143,158,63,69,70,179,236,180,15,242,111,55,126,48,84,118,62,63,168,228,136,77,22,82,151,71,243,188,36,113,211,77,199,35,77,233,170,120,24,250,2,229,236,11,232,26,175,47,224,222,59,92,213,190,128,174,161,47,144,85,95,64,118,239,112,218,190,64,185,241,139,161,240,239,121,241,1,170,111,65,212,41,218,1,104,7,160,29,128,118,64,245,219,1,191,28,10,255,158,23,31,160,250,22,68,157,202,2,243,2,152,23,200,66,122,204,11,228,171,125,242,121,1,244,5,176,62,0,235,3,176,62,32,75,104,216,103,15,0,128,129,239,15,149,157,207,247,43,217,27,204,66,234,242,104,158,151,36,110,186,233,120,164,41,93,77,15,227,247,51,58,117,60,96,75,183,188,20,24,15,72,43,125,118,227,1,223,154,24,143,39,198,3,0,62,174,194,190,65,0,30,86,107,236,142,153,33,0,30,86,107,172,70,148,6,224,97,181,198,159,80,67,0,60,172,214,216,13,45,53,0,30,86,107,60,140,40,13,192,195,106,141,43,81,67,0,60,172,214,56,8,53,4,192,195,106,141,215,161,183,6,192,195,106,141,201,136,210,0,60,172,132,152,59,88,60,167,185,131,157,169,97,121,56,87,71,162,188,180,51,63,119,182,182,217,97,222,96,241,156,230,13,118,166,134,229,225,92,29,137,242,210,206,252,220,217,218,102,135,249,131,197,115,154,63,216,153,26,150,135,115,117,36,202,75,59,243,115,89,181,77,127,134,136,66,84,66,73,131,48,34,58,67,100,34,153,68,118,34,206,25,34,59,147,164,103,136,92,166,90,103,136,92,174,6,207,16,153,73,102,17,217,51,68,142,32,50,103,136,28,77,236,51,68,142,105,229,118,159,33,242,9,18,125,134,200,9,228,68,18,60,67,228,10,169,51,68,190,77,236,51,68,206,50,158,156,109,252,125,143,120,207,19,60,151,156,71,206,39,23,16,222,25,34,191,32,89,157,33,114,21,89,66,174,38,222,51,68,174,37,215,17,255,25,34,43,136,117,134,200,205,36,234,12,145,251,136,121,134,200,42,18,126,134,200,58,178,158,108,32,209,103,136,108,33,201,206,16,233,81,100,206,16,185,82,221,93,217,67,113,159,33,178,183,18,126,134,200,12,69,230,12,145,67,149,195,90,233,230,25,34,135,43,11,148,35,148,184,103,136,28,163,44,84,142,85,100,207,19,60,78,57,94,57,65,57,81,57,73,57,89,57,69,57,85,57,77,57,93,57,67,177,207,16,65,12,64,12,64,12,168,119,12,232,228,182,24,208,110,156,137,83,165,42,128,164,237,0,227,153,171,29,160,107,113,219,1,22,220,237,0,93,227,183,3,116,205,125,158,160,141,178,181,3,44,89,100,218,1,223,84,204,118,128,174,133,181,3,116,77,212,14,48,113,142,241,30,213,14,48,223,23,183,94,211,182,3,116,45,172,29,96,229,151,111,7,232,154,217,14,208,181,118,180,3,12,255,140,217,14,48,207,19,180,219,1,186,150,188,29,96,140,7,230,214,14,208,53,180,3,128,178,227,187,104,13,0,64,77,113,22,126,253,29,209,23,88,65,121,125,1,115,76,240,38,106,245,5,110,166,148,172,164,183,80,127,95,224,86,122,27,53,251,2,183,211,73,228,14,234,244,5,238,52,62,223,69,253,125,129,240,49,193,187,233,61,116,50,185,151,222,71,239,167,15,208,85,52,216,23,120,144,62,68,103,147,135,105,118,103,139,175,166,118,95,96,141,33,237,35,116,33,121,148,218,125,129,199,104,244,152,224,227,244,9,234,239,11,12,42,167,147,120,99,130,107,13,158,79,26,127,235,168,119,76,112,61,221,64,159,162,27,41,175,47,176,137,250,199,4,159,166,207,80,187,47,240,15,42,211,23,120,150,154,125,129,231,232,18,242,60,245,247,5,94,160,203,200,139,212,30,19,124,137,46,39,155,169,217,23,216,66,95,166,254,190,192,43,148,55,38,184,149,90,125,129,109,116,53,233,163,193,190,64,63,13,235,11,12,80,187,47,48,72,147,141,9,14,81,111,95,96,169,194,235,11,108,167,254,49,193,97,26,222,23,24,161,59,250,2,212,233,11,248,199,4,73,67,105,216,125,1,181,177,64,161,141,70,131,223,23,96,13,167,47,48,166,225,237,11,140,109,200,141,9,118,55,142,83,154,141,113,141,158,70,111,227,100,101,124,99,66,99,98,99,82,163,29,125,129,159,55,171,18,23,127,25,67,210,197,149,209,170,186,248,85,141,109,252,235,2,116,199,152,32,198,4,49,38,136,49,65,160,94,248,1,122,233,0,80,107,252,16,49,0,0,106,141,115,16,3,42,138,171,123,97,131,78,198,143,241,203,4,0,160,16,156,139,104,3,116,16,30,221,46,247,44,105,174,114,104,84,70,249,202,46,103,251,45,93,125,11,165,195,220,109,213,151,240,124,252,191,132,39,118,244,111,32,95,156,52,166,236,18,158,161,227,247,81,7,156,50,6,30,6,240,177,7,78,118,2,224,97,181,198,21,168,33,0,30,6,0,64,155,240,19,140,54,181,29,187,226,6,8,0,30,22,137,169,129,93,75,211,2,79,166,39,216,217,52,35,147,221,80,139,198,234,218,121,35,73,75,199,43,121,238,216,184,244,47,220,81,226,34,78,217,153,137,44,48,171,57,187,185,82,82,146,53,70,190,57,2,46,27,37,104,108,150,226,67,187,27,221,172,59,44,199,220,150,12,243,4,146,236,217,29,223,10,179,187,231,116,39,177,94,58,204,111,198,247,176,239,118,159,21,75,210,197,109,208,171,206,216,29,189,53,0,30,86,107,60,132,26,2,224,97,181,198,46,168,33,0,30,86,107,220,86,243,149,156,0,60,172,238,184,29,53,4,192,195,52,220,53,134,123,134,112,207,16,238,26,195,121,130,56,79,16,231,9,226,60,193,58,226,65,140,216,0,240,176,202,245,5,116,109,10,41,103,59,0,125,129,106,247,5,248,247,11,184,219,1,184,115,180,243,240,207,195,248,79,5,180,207,195,224,127,237,199,199,80,7,0,60,44,147,190,128,174,237,163,82,178,175,186,159,42,234,11,236,175,78,34,7,168,78,95,192,124,158,125,95,224,64,245,32,85,182,47,32,119,215,152,209,242,26,237,11,88,156,220,125,129,41,106,116,95,192,68,176,47,112,176,84,95,64,215,236,190,192,33,134,229,166,26,127,211,84,111,95,192,174,25,94,95,64,215,178,234,11,76,87,151,144,25,170,183,47,96,230,240,247,5,204,87,179,47,48,83,141,234,11,232,154,217,23,48,122,203,161,125,1,93,91,111,252,69,247,5,102,169,201,250,2,186,38,59,38,56,91,117,247,5,230,168,225,125,1,195,2,18,125,129,185,234,60,213,238,11,232,218,130,86,222,120,125,1,195,27,149,249,170,108,95,128,15,244,5,22,162,29,0,192,195,106,141,99,80,67,0,60,76,171,247,125,131,103,109,195,250,0,172,15,192,250,128,58,199,128,35,17,3,16,3,16,3,106,60,30,240,81,244,5,0,120,88,173,241,33,212,16,0,15,171,53,142,70,13,1,240,48,13,235,3,176,62,0,235,3,176,62,160,174,56,10,237,0,0,30,86,107,124,28,53,4,192,195,106,141,79,160,134,0,120,152,86,239,53,66,56,67,4,235,3,176,62,160,206,227,1,69,226,87,184,87,10,200,16,191,134,63,1,64,229,241,27,252,142,1,160,214,248,109,105,98,0,198,3,48,30,128,241,0,140,7,212,19,239,25,238,76,94,101,212,165,147,244,47,131,214,245,180,103,246,56,162,64,59,62,216,219,57,118,123,40,129,46,239,170,165,207,230,231,97,107,58,200,159,128,122,96,23,6,27,84,1,61,174,122,234,205,177,206,38,180,201,31,38,122,248,78,218,241,109,167,20,242,188,42,99,93,94,93,129,223,202,215,71,101,124,173,80,214,157,153,108,12,216,53,39,125,255,167,53,222,182,27,219,61,53,253,139,74,56,122,191,103,198,86,195,152,32,198,4,49,38,136,115,132,16,3,16,3,16,3,16,3,16,3,16,3,16,3,48,55,8,148,9,23,99,29,25,80,26,124,117,40,110,90,88,137,172,56,23,71,59,47,41,178,164,235,166,149,167,213,170,87,199,95,29,178,94,147,121,174,72,58,49,61,39,69,70,179,236,180,15,242,207,18,95,25,138,155,246,149,161,252,57,23,71,59,47,41,178,164,235,166,245,149,66,98,64,85,234,248,43,67,214,107,50,207,21,73,39,166,231,164,200,104,150,157,246,65,254,64,20,46,199,221,227,0,60,172,214,120,45,226,37,0,15,3,128,76,113,9,198,49,129,10,97,21,90,106,0,60,12,144,192,165,248,223,6,116,52,112,191,64,57,239,23,248,66,147,119,191,192,23,155,213,191,95,224,203,205,106,221,47,240,149,102,121,239,23,248,90,179,168,251,5,46,137,61,182,113,201,208,37,153,140,135,68,83,137,202,33,78,151,151,80,46,103,18,43,229,97,145,100,116,227,75,144,5,23,147,70,30,210,186,101,180,62,7,185,240,125,212,255,76,36,29,143,158,63,37,92,179,172,245,190,4,35,144,177,241,26,216,12,128,135,117,0,190,49,38,105,201,35,116,88,15,200,19,240,48,0,8,199,101,21,24,109,189,28,35,194,0,0,228,130,43,16,93,50,2,27,151,180,228,218,17,88,15,200,19,85,241,176,185,219,252,176,159,241,242,121,243,91,223,156,103,126,106,94,250,238,124,230,103,62,119,62,15,167,140,45,151,35,97,176,52,239,89,80,34,135,162,183,28,79,31,155,83,80,35,94,57,175,156,65,62,225,16,81,11,62,13,234,239,240,244,151,8,106,206,227,236,166,41,150,212,202,113,229,196,96,109,250,109,231,246,28,175,5,130,118,15,234,47,178,25,79,194,112,187,6,83,253,124,249,94,44,227,161,34,186,162,223,152,223,34,110,191,242,107,236,247,183,160,125,131,118,113,255,58,120,191,228,160,92,85,143,181,183,141,20,95,18,0,224,97,245,192,159,208,99,3,128,12,177,243,8,255,179,255,201,206,35,73,169,218,223,229,40,236,60,146,191,158,237,40,223,142,250,140,146,61,157,78,50,165,147,112,200,206,210,87,77,204,139,126,85,188,161,157,120,116,187,220,179,164,185,202,161,81,25,229,43,187,156,168,73,0,0,210,227,47,181,234,15,46,173,149,182,215,160,175,95,32,218,117,207,208,95,39,254,45,101,61,255,189,112,63,89,143,29,199,133,225,78,244,180,0,120,88,7,224,242,145,226,75,2,0,60,12,0,58,19,55,162,143,88,57,252,118,164,248,146,0,0,15,43,15,46,26,41,190,36,0,192,195,202,131,255,25,41,190,36,0,192,195,202,131,223,143,20,95,18,0,224,97,209,40,106,55,82,114,62,209,37,151,99,124,8,158,88,73,206,229,192,73,99,138,225,115,134,94,124,73,160,74,56,101,76,187,56,215,221,195,58,161,29,112,19,218,1,240,196,74,114,70,59,32,239,146,0,218,1,157,228,97,73,239,24,49,158,141,222,49,162,16,149,232,90,131,48,34,186,99,100,34,153,68,118,34,206,29,35,59,239,184,205,194,125,199,136,174,241,239,24,209,53,247,29,35,54,130,119,140,204,36,179,136,236,29,35,71,16,153,59,70,142,38,246,29,35,199,180,114,187,239,24,249,4,241,222,49,98,201,226,189,99,228,4,114,34,9,222,49,242,77,197,188,99,68,215,194,238,24,209,181,111,19,251,142,145,179,140,111,103,27,127,223,35,223,31,229,114,142,241,254,99,114,46,57,143,156,79,46,32,188,59,70,126,209,250,180,184,245,154,238,142,145,171,140,247,171,137,247,142,145,107,201,117,196,190,99,196,202,191,156,172,32,214,29,35,55,147,240,59,70,116,237,62,114,191,241,186,138,132,223,49,178,142,172,39,27,72,244,29,35,91,136,252,29,35,134,127,238,184,99,164,71,145,189,99,100,15,197,186,99,68,215,204,59,70,246,86,194,239,24,153,161,240,238,24,209,53,239,29,35,135,42,135,181,210,205,59,70,14,87,22,40,71,40,113,239,24,57,70,89,168,28,107,60,249,152,241,23,125,199,200,113,202,241,202,9,202,137,202,73,202,201,202,41,202,169,202,105,202,233,202,25,138,125,199,8,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,64,61,99,0,198,140,0,192,193,237,152,11,170,28,254,123,164,248,146,0,0,15,43,15,254,111,164,248,146,0,0,15,43,15,254,119,164,248,146,0,0,15,43,15,46,25,41,190,36,0,192,195,0,160,51,113,7,198,4,129,14,194,157,240,103,160,6,248,245,72,241,37,1,160,147,60,44,184,70,232,15,204,90,35,116,49,187,132,93,202,254,200,46,99,151,179,43,152,181,70,232,74,102,175,17,26,233,114,175,17,162,196,92,35,244,39,230,93,35,116,21,91,194,156,53,66,87,51,103,141,208,159,217,46,68,215,254,194,220,107,132,94,79,172,53,66,75,153,123,141,208,53,236,0,98,174,17,250,43,251,27,155,76,254,206,166,144,107,217,117,108,25,19,173,17,186,158,205,33,55,48,239,26,161,27,153,189,70,104,57,91,193,188,107,132,110,98,214,26,161,155,153,189,70,104,37,227,175,17,186,133,153,107,132,110,101,206,26,161,219,216,167,200,237,204,90,35,244,105,114,7,251,12,177,215,8,221,201,156,53,66,119,49,115,141,208,221,204,94,35,116,15,51,215,8,125,129,136,214,8,221,203,52,242,45,226,94,35,116,31,59,155,220,207,204,53,66,15,176,31,144,31,146,115,200,143,8,127,141,208,42,131,215,131,204,92,35,244,75,98,174,17,250,21,121,136,89,107,132,30,102,171,89,178,53,66,75,8,127,141,208,26,102,174,17,186,177,85,202,94,35,244,8,179,215,8,61,202,204,53,66,143,177,199,153,181,70,232,9,182,150,153,107,132,238,37,230,26,161,7,136,120,141,208,147,204,191,70,104,29,139,94,35,180,158,133,173,17,218,192,204,53,66,76,17,175,17,250,221,54,123,141,208,83,204,89,35,180,145,57,107,132,246,82,236,53,66,155,88,248,26,161,167,153,185,70,232,153,209,59,21,158,101,115,148,185,138,179,70,232,57,102,173,17,122,158,189,192,156,53,66,47,50,222,26,161,151,216,102,230,172,17,218,194,94,102,222,53,66,175,176,143,41,31,87,236,53,66,91,217,54,182,72,233,99,253,44,237,58,65,196,0,196,128,250,197,128,143,35,6,32,6,32,6,212,58,6,92,182,181,190,49,160,234,125,174,123,49,238,5,36,196,125,240,157,142,192,161,195,176,1,0,223,169,51,222,138,122,4,224,59,0,0,164,196,82,236,160,173,44,230,34,150,3,25,248,14,252,168,186,248,229,72,241,37,1,0,30,214,9,32,67,176,1,0,15,171,62,190,55,82,124,73,0,128,135,149,7,223,31,41,190,36,0,192,195,202,131,31,140,20,95,18,0,224,97,64,246,88,133,85,107,0,144,0,255,53,82,124,73,0,128,135,149,7,15,226,191,39,144,16,15,193,119,58,2,103,34,214,2,240,157,90,227,91,41,234,241,225,24,255,7,86,227,127,6,124,167,67,129,187,198,112,215,24,238,26,195,93,99,85,198,207,71,138,47,9,0,240,176,242,224,178,145,226,75,2,0,60,172,60,184,98,164,248,146,0,0,15,43,15,174,26,41,190,36,0,192,195,202,131,123,71,138,47,9,0,240,176,58,225,17,204,10,2,29,141,164,115,131,188,179,197,227,204,13,238,210,74,229,157,45,238,159,27,180,206,22,55,115,79,38,151,169,83,90,159,46,87,203,54,55,248,105,227,213,57,91,60,108,110,240,10,53,252,108,113,115,110,208,123,182,184,123,110,48,252,108,113,203,34,238,179,197,211,207,13,138,206,22,183,230,6,189,103,139,71,207,13,70,159,45,158,223,220,96,216,217,226,252,185,193,43,85,222,217,226,241,231,6,221,103,139,103,61,55,232,156,45,110,166,39,153,27,196,250,0,172,15,192,250,0,172,15,176,208,195,156,207,189,44,191,150,199,4,166,183,165,197,51,209,195,119,210,142,111,59,165,144,231,85,25,235,242,234,54,217,38,14,190,62,42,227,107,133,178,238,28,72,217,69,144,119,215,156,244,125,188,213,127,219,141,237,158,154,254,19,37,236,9,238,153,177,213,208,14,64,59,0,237,128,122,183,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,48,30,0,0,217,99,3,230,85,1,0,8,193,83,57,197,136,141,153,209,221,84,171,40,246,116,173,180,125,6,255,161,74,128,127,228,84,11,207,102,70,247,185,26,248,73,250,53,66,186,182,143,74,201,190,234,126,170,104,60,96,127,117,18,57,64,117,198,3,204,231,201,214,8,233,218,148,209,30,104,112,60,224,64,245,32,85,118,60,96,178,42,51,30,96,244,190,70,199,3,44,78,238,241,128,41,106,244,26,33,19,193,241,128,131,165,214,8,233,154,61,30,112,136,97,185,169,198,223,52,213,187,70,200,174,25,222,120,128,174,101,181,70,104,186,186,132,204,80,189,227,1,102,14,255,26,33,243,213,28,15,152,169,70,173,17,210,53,115,141,144,174,133,143,7,232,218,122,227,47,122,60,96,150,154,108,141,144,49,255,45,57,30,48,91,117,175,17,154,163,134,143,7,24,22,144,88,35,52,87,157,167,154,41,230,120,128,174,45,104,229,141,55,30,96,120,163,50,95,149,93,35,196,71,218,49,65,196,128,250,198,128,23,38,34,6,116,82,12,200,171,125,113,68,65,247,44,37,231,147,94,194,35,218,112,151,212,17,29,117,127,85,54,218,132,83,73,199,35,77,233,206,170,171,78,196,165,131,176,1,0,15,171,62,94,194,216,30,144,16,155,225,59,29,129,235,16,107,1,248,14,80,0,182,224,127,6,0,116,24,30,192,127,1,0,30,166,97,223,32,246,11,96,191,0,246,11,0,0,80,60,94,41,77,239,18,103,137,225,44,49,156,37,86,239,179,196,234,27,135,119,25,198,255,34,160,90,30,182,109,98,123,248,118,42,254,128,49,65,0,30,86,107,76,192,74,78,0,30,86,107,220,139,40,13,192,195,0,9,244,99,117,16,0,148,24,27,134,139,47,89,117,92,77,225,55,229,246,205,116,28,235,235,217,0,144,12,131,53,111,233,85,109,157,224,27,198,89,37,177,78,176,26,235,4,191,161,214,125,157,224,94,227,222,56,14,235,4,243,196,170,225,226,75,2,64,57,61,108,251,196,58,122,54,98,0,128,24,80,239,24,144,102,76,112,64,237,60,123,12,74,232,132,49,193,226,124,115,195,182,226,127,13,24,19,148,197,175,49,123,11,192,195,106,141,241,88,197,5,192,195,0,160,163,241,65,189,253,20,128,242,226,37,180,212,0,120,24,208,241,232,154,4,27,0,0,80,29,16,196,172,182,226,19,122,157,100,112,115,42,82,243,48,94,81,114,148,161,134,170,92,255,69,217,207,226,147,150,155,191,124,54,84,195,177,168,4,30,86,156,12,110,78,69,106,30,198,43,74,142,50,212,80,149,235,191,40,251,89,124,210,114,243,151,207,134,42,0,228,9,37,81,75,94,45,65,251,127,41,78,215,5,128,82,160,129,241,128,194,129,115,133,113,174,48,206,21,198,185,194,0,0,148,27,99,106,212,62,58,65,111,7,167,226,184,134,243,42,82,142,186,215,127,249,117,241,151,183,190,195,71,178,195,255,97,21,23,0,15,171,53,122,177,163,3,128,135,213,26,247,32,74,3,240,48,64,2,99,49,91,5,0,0,0,100,140,110,252,111,105,59,254,23,45,53,0,30,86,107,244,96,196,6,128,135,1,0,208,38,52,203,214,23,104,162,78,234,130,174,113,195,168,109,15,198,21,240,107,36,227,210,148,86,98,151,86,199,229,175,83,89,192,18,235,250,200,8,188,31,200,19,157,228,97,31,96,113,114,31,197,138,145,234,131,41,249,252,172,68,167,176,31,205,218,197,249,67,163,156,63,44,45,193,145,153,253,135,249,104,1,90,47,76,192,227,88,201,50,31,103,213,241,176,180,248,209,112,126,185,147,83,179,82,146,115,251,209,112,89,44,150,175,44,114,156,229,37,200,78,214,34,180,14,227,33,74,115,63,79,82,190,253,181,154,61,190,55,156,95,238,228,212,172,148,228,220,190,55,92,22,139,229,43,139,28,103,121,9,178,147,181,8,173,195,120,136,210,220,207,147,148,111,127,173,2,114,24,131,153,27,0,30,38,137,239,12,231,151,59,57,53,43,37,57,183,239,12,151,197,98,249,202,34,199,89,94,130,236,100,45,66,235,48,30,162,52,247,243,36,229,219,95,171,217,227,236,225,252,114,39,167,102,165,36,231,118,246,112,89,44,150,175,44,114,156,229,37,200,78,214,34,180,14,227,33,74,115,63,79,82,190,253,181,10,200,225,22,172,228,4,224,97,146,56,107,56,191,220,201,169,89,41,201,185,157,53,92,22,139,229,43,139,28,103,121,9,178,147,181,8,173,195,120,136,210,220,207,147,148,111,127,173,2,114,248,45,218,1,0,60,172,214,24,135,121,1,0,30,6,0,64,42,244,224,20,128,10,227,127,208,82,3,224,97,181,198,243,168,33,0,30,86,107,220,137,26,2,224,97,181,198,31,48,115,3,192,195,58,0,191,28,147,180,228,199,48,106,11,228,138,118,121,216,188,49,229,178,3,98,0,128,24,128,24,80,78,252,10,189,53,0,30,86,107,124,31,53,4,192,195,106,141,38,250,2,0,60,172,3,128,241,0,160,172,192,120,0,0,132,99,98,5,214,217,78,170,193,90,224,167,6,253,176,159,241,242,57,249,205,79,222,111,238,239,14,133,32,93,135,246,134,38,143,239,78,147,120,52,172,119,175,60,60,13,188,114,5,165,246,127,118,107,198,215,194,155,219,175,145,243,231,165,237,181,163,151,143,152,11,95,3,183,108,94,106,60,41,253,246,18,105,46,42,237,80,8,151,212,95,7,124,143,240,243,247,219,152,175,173,168,254,120,180,162,236,25,230,159,124,31,137,147,35,202,50,193,250,178,63,191,106,82,240,105,208,75,252,191,154,48,95,241,214,57,239,87,27,230,53,184,99,164,62,192,29,35,126,188,6,119,140,84,26,201,239,24,217,136,59,70,128,92,1,15,43,59,54,160,134,0,120,88,7,226,181,5,142,225,236,140,189,227,0,144,33,142,45,120,70,227,139,122,210,146,187,226,183,15,228,234,97,0,0,116,62,118,195,127,146,182,163,27,107,132,0,120,24,0,0,109,194,238,104,7,180,29,119,99,71,7,0,15,171,53,46,66,13,1,240,176,90,227,5,212,16,0,15,3,106,139,61,208,27,5,128,90,99,79,196,0,0,168,53,94,143,24,0,0,0,208,70,188,1,81,24,0,106,141,189,16,3,0,160,36,120,35,126,141,0,0,20,142,55,33,242,0,64,173,177,55,98,0,0,148,4,251,224,215,88,83,188,6,171,184,0,120,24,0,0,109,194,190,104,125,0,64,73,176,31,126,141,0,0,20,142,253,17,121,0,160,36,56,0,191,70,0,0,10,199,129,136,60,5,225,32,88,26,0,218,130,147,10,58,41,252,12,189,248,146,64,149,112,74,219,110,225,173,138,135,61,219,245,92,215,243,93,47,116,189,216,245,82,215,230,174,45,93,47,119,233,218,43,93,91,187,182,117,121,243,245,117,245,119,13,24,207,6,187,134,186,182,119,13,119,141,116,233,198,183,46,66,136,174,237,163,82,178,175,186,159,170,107,99,200,88,210,77,154,100,28,233,33,189,196,44,55,158,76,32,251,171,147,200,1,70,234,171,200,171,201,107,200,107,91,207,119,105,189,238,74,94,71,118,35,187,147,61,200,158,228,245,228,13,100,47,242,70,227,249,155,200,222,100,31,178,47,217,143,236,111,124,59,128,28,72,14,106,229,158,108,188,78,33,150,60,7,147,67,70,63,77,37,211,200,116,50,131,28,168,30,164,206,54,158,205,49,254,230,146,121,100,62,121,51,121,11,121,43,121,155,241,253,80,114,24,249,39,242,246,86,137,195,201,2,50,89,125,71,235,243,59,141,215,119,145,119,147,247,24,239,71,26,127,239,37,239,51,94,223,79,62,64,142,34,31,52,62,125,136,124,152,124,132,124,116,148,211,194,214,251,177,228,99,228,227,100,138,250,73,227,219,167,140,191,127,54,254,22,145,79,27,175,159,33,255,66,62,75,62,71,142,51,62,31,63,90,230,164,214,251,201,198,235,41,228,84,114,154,241,126,176,122,6,249,60,249,2,249,34,249,18,249,50,249,10,249,42,249,26,249,58,249,6,249,127,228,95,201,55,201,191,25,57,52,242,45,227,245,223,201,153,228,59,228,187,228,16,195,114,83,141,191,105,234,247,141,167,63,32,63,36,231,144,31,145,31,19,187,102,126,66,254,131,252,39,249,47,242,83,242,179,209,103,63,55,222,127,105,252,45,38,191,50,94,127,77,126,67,126,219,74,185,144,252,142,252,55,249,159,214,231,139,200,239,201,255,146,255,35,127,32,23,147,75,200,165,228,143,228,50,226,212,246,229,228,10,227,219,149,228,79,100,186,186,132,204,80,255,76,254,66,150,146,107,200,95,201,223,200,223,91,249,150,25,175,215,147,27,200,141,173,111,203,91,175,55,25,175,51,213,149,228,22,114,171,241,233,54,114,123,235,233,29,228,78,114,87,235,211,221,228,30,114,175,241,233,126,242,128,241,250,32,121,136,60,108,188,175,54,254,214,144,71,200,163,228,49,242,56,121,194,248,182,150,60,105,188,174,55,254,158,34,27,201,38,227,253,105,242,12,249,7,121,150,60,71,158,39,47,180,104,189,72,94,50,222,55,147,89,234,203,228,21,178,213,248,188,141,244,145,126,50,64,6,201,16,217,78,134,201,8,209,73,151,66,20,69,81,21,93,163,74,67,97,202,24,101,172,210,173,52,149,113,198,147,94,227,111,188,50,65,153,168,76,82,118,50,62,191,74,121,181,242,26,229,181,198,167,157,149,93,148,93,149,215,41,187,25,159,119,87,102,171,123,42,175,87,222,160,236,165,188,81,121,147,50,71,221,199,120,186,175,178,159,178,191,114,128,114,160,114,144,50,89,153,162,28,172,28,162,76,85,166,41,211,141,180,153,198,223,44,101,182,226,88,115,142,50,87,153,167,204,87,222,172,188,69,121,171,241,252,109,202,92,117,158,106,166,252,147,242,118,227,251,130,86,222,119,40,239,52,222,223,165,188,91,121,143,241,126,164,242,94,229,125,173,231,239,87,62,160,28,165,124,80,57,186,245,237,67,202,135,149,143,40,31,53,62,47,84,230,27,52,62,166,124,92,249,132,242,73,229,83,202,63,183,210,23,181,94,63,173,124,166,245,254,47,202,103,149,207,41,162,223,254,231,149,47,40,95,84,190,164,224,255,4,144,12,7,163,151,5,0,64,199,96,41,254,27,2,0,192,193,212,194,91,59,235,59,102,133,241,220,109,101,231,19,93,114,58,90,187,240,196,74,114,46,7,48,47,0,148,3,152,23,0,68,248,61,118,117,1,240,48,0,0,218,132,153,232,105,182,29,79,35,74,3,240,48,0,0,218,132,89,104,7,100,132,151,38,194,6,64,50,204,198,175,176,230,184,30,45,53,0,30,150,24,159,31,135,26,6,0,160,12,56,109,164,248,146,0,208,73,30,150,116,223,160,241,108,116,223,160,66,84,162,107,13,194,136,104,223,224,68,50,137,236,68,156,125,131,59,239,216,161,230,222,55,168,107,252,125,131,186,230,222,55,104,35,184,111,112,38,153,69,100,247,13,30,65,100,246,13,30,77,236,125,131,199,180,114,187,247,13,126,130,120,247,13,90,178,120,247,13,158,64,78,36,193,125,131,223,84,204,125,131,186,22,182,111,80,215,190,77,236,125,131,103,25,223,206,54,254,190,71,190,63,202,229,28,227,253,199,228,92,114,30,57,159,92,64,120,251,6,127,209,250,180,184,245,154,110,223,224,85,198,251,213,196,187,111,240,90,114,29,177,247,13,90,249,151,147,21,196,218,55,120,51,9,223,55,168,107,247,145,251,141,215,85,36,124,223,224,58,178,158,108,32,209,251,6,183,16,249,125,131,134,127,238,216,55,216,163,200,238,27,220,67,177,246,13,234,154,185,111,112,111,37,124,223,224,12,133,183,111,80,215,188,251,6,15,85,14,107,165,155,251,6,15,87,22,40,71,40,113,247,13,30,163,44,84,142,85,204,125,131,186,22,189,111,240,56,229,120,229,4,229,68,229,36,229,100,229,20,229,84,229,52,229,116,229,12,5,251,6,95,196,120,0,0,15,51,240,212,160,31,246,51,94,62,39,191,249,201,251,205,253,221,161,16,164,235,208,222,208,228,243,229,209,176,222,189,242,240,52,240,202,21,148,218,255,217,205,149,175,133,55,183,95,35,231,207,75,219,107,199,160,118,124,46,124,13,220,178,121,169,241,164,244,219,75,164,185,168,180,67,33,92,82,127,29,240,61,194,207,223,111,99,190,182,162,250,227,209,138,178,103,152,127,242,125,36,78,142,40,203,4,235,203,254,60,119,82,240,105,208,75,252,191,154,48,95,241,214,57,239,87,27,230,53,122,19,81,187,46,232,26,55,140,218,246,96,126,1,115,132,36,213,40,186,18,187,180,90,163,81,123,150,88,215,213,24,19,4,114,5,60,172,236,104,12,193,6,0,60,12,0,128,246,224,205,88,165,216,118,220,140,121,1,0,30,166,101,113,174,176,185,62,128,146,184,235,3,146,157,43,124,153,106,157,43,124,185,90,182,245,1,188,115,133,249,235,3,174,144,58,87,88,180,62,192,57,87,56,124,125,64,86,231,10,95,69,150,144,176,245,1,246,185,194,178,235,3,238,37,230,250,128,7,72,59,214,7,184,207,21,150,91,31,112,165,234,172,15,176,206,21,78,182,62,192,127,174,112,150,235,3,100,206,21,14,95,31,128,53,66,88,35,132,53,66,88,35,84,101,188,86,151,123,150,52,87,85,116,174,167,20,229,174,195,234,122,88,181,176,179,46,247,44,105,174,170,232,92,79,41,202,93,135,213,245,176,106,225,53,186,220,179,164,185,170,162,115,61,165,40,119,29,86,197,195,162,199,3,86,80,243,149,55,38,120,19,181,198,3,110,166,148,172,164,183,80,255,120,192,173,244,54,106,142,7,220,78,39,145,59,168,51,30,112,167,241,249,174,22,85,249,49,193,187,233,61,116,50,185,151,222,71,239,167,15,208,85,52,56,30,240,32,125,136,206,38,15,211,236,238,26,91,77,237,241,128,53,134,180,143,208,133,228,81,106,143,7,60,70,163,199,4,31,167,79,80,255,120,192,160,114,58,137,55,38,184,214,224,249,164,241,183,142,122,199,4,215,211,13,244,41,186,145,242,198,3,54,81,255,152,224,211,244,25,106,143,7,252,131,202,140,7,60,75,205,241,128,231,232,18,242,60,245,143,7,188,64,151,145,23,169,61,38,248,18,93,78,54,83,115,60,96,11,125,153,250,199,3,94,161,188,49,193,173,212,26,15,216,70,87,147,62,26,28,15,232,167,97,227,1,3,212,30,15,24,164,201,198,4,135,168,119,60,96,169,194,27,15,216,78,253,99,130,195,52,124,60,96,132,238,24,15,160,182,53,131,99,130,164,161,52,204,20,115,60,64,109,44,80,104,163,209,224,143,7,176,134,51,30,48,166,225,29,15,24,219,144,27,19,236,110,28,167,52,27,227,26,61,141,222,198,201,202,248,198,132,198,196,198,164,6,246,12,1,192,219,48,67,15,0,181,198,161,136,1,0,80,107,28,134,24,32,129,169,129,29,102,211,2,79,166,39,216,133,54,35,147,157,107,139,198,26,61,248,190,98,44,113,238,216,184,37,46,220,81,226,34,78,217,153,137,44,48,171,57,187,185,82,82,146,53,70,190,57,2,46,27,37,104,108,150,226,67,187,27,221,172,59,44,199,220,150,12,243,154,252,154,218,179,59,190,21,102,119,207,233,78,98,61,63,226,249,206,252,4,53,246,221,238,179,98,73,186,56,19,189,234,22,3,142,68,12,168,72,12,56,178,116,49,224,72,196,128,22,48,47,128,121,1,204,11,96,94,160,202,120,127,95,213,53,168,11,202,87,83,240,29,11,207,247,249,97,63,227,229,113,62,155,159,188,223,220,223,29,10,188,178,14,117,62,223,160,76,54,45,175,76,60,249,189,114,241,169,240,242,134,151,115,248,139,173,37,74,241,166,133,107,25,166,63,223,106,65,41,249,26,185,203,137,104,248,173,43,230,35,146,40,218,62,126,218,65,171,134,89,210,43,191,216,187,226,35,188,182,196,57,194,44,227,88,135,239,1,193,167,65,239,8,215,145,247,43,76,34,111,181,199,3,138,2,198,3,210,142,7,240,83,211,140,7,236,82,232,255,241,186,142,9,2,64,121,241,118,204,237,1,169,208,196,25,34,0,60,172,214,152,187,29,54,0,224,97,117,198,59,80,67,0,60,172,214,152,135,26,2,224,97,90,22,231,9,234,218,62,42,37,251,170,251,169,162,179,196,246,87,39,145,3,84,103,141,144,249,60,217,121,130,186,54,101,116,37,75,112,141,208,129,234,65,170,236,89,98,114,107,132,116,205,94,35,100,113,114,159,37,54,69,141,94,35,100,34,120,150,216,193,82,231,9,234,154,189,70,232,16,195,114,83,141,191,105,170,119,141,144,93,51,188,53,66,186,150,213,121,130,211,213,37,100,134,234,93,35,100,230,240,159,39,104,190,154,103,137,205,84,163,206,19,212,53,115,141,144,174,133,159,37,166,107,235,141,191,232,179,196,102,169,201,214,8,233,154,236,89,98,179,85,247,26,161,57,106,248,26,33,195,2,18,231,9,206,85,231,169,102,138,185,70,72,215,22,180,242,198,59,75,204,240,70,101,190,42,123,158,32,31,216,59,252,30,180,3,0,120,152,86,239,123,135,63,185,173,122,103,138,126,114,27,206,20,117,183,3,112,166,40,206,20,173,27,142,192,156,56,0,100,132,119,162,47,0,192,195,234,253,31,21,53,4,192,195,0,32,83,44,29,95,89,201,107,220,43,198,61,67,184,103,8,99,130,245,30,19,68,12,64,12,64,12,192,188,64,61,177,0,189,53,0,30,86,107,28,134,26,2,224,97,181,198,161,168,33,0,30,166,97,76,16,227,1,24,15,192,120,64,93,241,46,180,3,0,120,88,173,113,36,106,8,128,135,213,26,239,70,13,1,240,48,160,114,120,15,246,12,1,0,0,100,142,127,25,73,94,50,121,89,0,0,202,130,228,251,5,142,156,244,94,180,205,0,0,49,0,0,66,49,102,24,54,0,128,58,131,33,6,0,64,173,113,20,90,139,64,69,129,59,71,109,224,206,81,62,218,121,231,104,90,124,48,86,100,198,157,163,0,208,105,56,26,173,51,32,83,124,168,50,30,181,239,24,212,22,224,32,184,111,240,15,204,218,55,120,49,187,132,93,202,254,200,46,99,151,179,43,152,181,111,240,74,22,188,103,200,220,55,72,137,185,111,240,79,204,187,111,240,42,182,132,57,251,6,175,102,206,190,193,63,51,243,158,161,191,48,222,61,67,75,153,123,223,224,53,204,186,103,232,175,236,111,108,50,249,59,155,66,174,101,215,177,101,76,180,111,240,122,54,135,220,192,188,251,6,111,100,246,190,193,229,108,5,243,238,27,188,137,89,251,6,111,102,246,190,193,149,140,191,111,240,22,102,238,27,188,149,57,251,6,111,99,159,34,183,51,251,158,161,59,152,115,207,208,157,204,217,55,120,23,51,247,13,222,205,236,125,131,247,176,240,123,134,238,101,230,61,67,238,125,131,247,177,179,201,253,204,220,55,248,0,115,238,25,226,237,27,92,101,240,122,144,153,251,6,237,123,134,30,98,214,190,193,135,217,106,150,108,223,224,18,194,223,55,184,134,185,239,25,178,246,13,62,194,236,125,131,143,50,115,223,224,99,236,113,102,237,27,124,130,173,101,214,61,67,230,190,193,7,136,120,223,224,147,204,191,111,112,29,139,222,55,184,158,133,237,27,220,192,252,247,12,137,247,13,62,197,156,125,131,27,153,179,111,208,186,103,200,220,55,184,137,133,239,27,124,154,153,251,6,159,97,163,191,48,230,189,103,232,57,102,237,27,124,158,189,192,156,125,131,47,50,222,190,193,151,216,102,230,236,27,220,194,94,102,222,125,131,175,48,247,61,67,91,217,54,182,72,233,99,253,172,172,251,6,255,178,157,255,57,44,95,60,170,246,119,57,10,127,217,158,191,158,237,40,95,84,61,242,228,204,71,118,25,170,73,56,231,109,233,44,232,123,105,68,81,76,198,49,125,59,192,185,111,80,212,14,176,238,27,116,218,1,186,150,77,59,224,58,213,221,14,176,238,27,148,107,7,56,247,13,134,181,3,220,247,13,46,83,205,118,192,222,204,110,7,152,247,13,134,183,3,110,104,73,103,182,3,110,84,157,118,192,160,18,117,223,160,213,14,112,223,55,120,31,155,170,222,207,204,251,6,221,237,0,187,6,121,237,0,243,190,193,229,170,184,29,176,66,141,110,7,124,116,146,232,190,193,99,38,153,247,13,218,237,128,155,85,231,190,193,71,152,125,223,160,211,14,88,56,201,219,14,240,222,55,184,82,229,183,3,220,247,13,250,219,1,183,168,199,78,242,223,55,24,183,29,224,191,111,112,169,34,106,7,124,165,233,191,111,48,172,29,96,222,55,232,180,3,110,83,111,87,121,237,0,243,190,65,187,29,96,221,55,24,183,29,96,221,55,40,219,14,224,163,248,118,192,34,87,127,249,211,33,125,231,207,164,234,87,255,139,81,250,179,82,20,94,63,152,143,158,159,75,57,46,112,92,69,198,21,142,231,200,121,66,46,178,159,40,65,245,164,18,90,45,11,15,59,25,227,150,109,196,233,176,62,80,41,156,81,50,143,61,89,47,187,197,178,150,176,252,26,3,197,214,92,81,30,225,231,243,246,209,209,200,195,89,123,237,250,233,210,175,142,205,90,194,242,107,12,20,91,115,69,121,68,90,62,73,207,20,229,205,13,198,57,83,116,151,86,42,111,76,208,127,166,168,53,38,104,230,54,207,20,157,50,58,114,85,182,51,69,63,109,188,58,99,130,97,103,138,94,17,49,38,104,158,41,234,157,27,116,159,41,26,62,55,104,89,196,61,55,152,254,76,81,209,220,160,117,166,168,119,110,48,250,76,209,232,185,193,252,206,20,13,155,27,116,198,4,69,103,138,58,115,131,241,207,20,117,143,9,102,125,166,168,51,38,104,166,227,158,33,156,43,108,199,0,243,29,231,10,227,92,225,60,99,0,218,1,104,7,160,29,208,25,237,128,188,250,40,199,149,190,119,156,181,132,229,215,24,40,182,230,138,242,8,120,94,82,188,171,64,203,61,216,219,57,118,123,168,183,220,182,174,131,135,173,233,32,127,106,39,14,71,244,44,12,95,174,229,90,139,170,120,24,198,4,49,38,136,49,65,140,9,34,6,32,6,32,6,224,190,65,0,168,27,190,142,213,224,29,129,111,160,30,129,132,56,24,119,131,116,4,14,68,61,2,240,157,90,99,95,212,35,0,223,169,53,246,65,61,2,240,157,90,99,111,212,35,0,223,73,5,204,13,98,110,16,115,131,88,31,80,157,61,67,151,169,214,158,161,203,85,236,25,194,158,161,44,247,12,241,99,192,149,42,246,12,1,233,241,77,204,94,150,6,255,134,186,200,176,47,128,118,0,218,1,104,7,160,29,0,196,199,32,44,14,148,24,31,215,235,36,131,155,83,145,154,135,241,138,146,163,12,53,84,229,250,47,202,126,22,159,180,220,252,229,179,161,26,142,147,74,224,97,197,201,224,230,84,164,230,97,188,162,228,40,67,13,85,185,254,139,178,159,197,39,45,55,127,249,108,168,2,0,80,110,124,27,227,150,133,225,71,37,191,215,15,168,58,170,226,97,88,35,132,53,66,88,35,132,243,3,162,176,1,167,110,117,20,174,166,176,65,39,3,191,215,178,227,59,232,239,1,64,41,48,62,117,180,252,46,126,205,64,98,15,75,226,127,114,101,198,163,29,32,137,143,13,193,6,64,39,122,216,188,49,176,189,28,126,49,88,111,253,1,120,88,58,124,15,237,96,0,168,53,190,166,23,195,231,173,122,245,40,231,75,27,168,10,224,5,217,224,238,113,121,81,126,123,142,53,116,207,184,252,104,3,85,65,158,30,6,0,128,27,71,102,186,226,225,189,153,82,251,65,1,189,230,247,119,216,138,143,15,97,5,11,80,43,44,132,199,87,26,51,48,23,11,100,138,195,198,192,7,227,227,28,204,81,0,0,0,72,99,113,163,40,78,207,15,192,218,229,71,244,190,193,21,173,222,10,239,60,193,155,168,181,111,240,102,74,201,74,122,11,245,239,27,188,149,222,70,205,125,131,183,211,73,228,14,234,236,27,188,211,248,124,87,139,170,252,121,130,119,211,123,232,100,114,47,189,143,222,79,31,160,171,104,112,223,224,131,244,33,58,155,60,76,101,246,13,78,86,101,246,13,174,166,246,190,193,53,134,180,143,208,133,228,81,106,239,27,124,140,70,159,39,248,56,125,130,250,247,13,14,42,167,147,120,231,9,174,53,120,62,105,252,173,163,222,243,4,215,211,13,244,41,186,145,242,246,13,110,162,254,243,4,159,166,207,80,123,223,224,63,168,204,190,193,103,169,185,111,240,57,186,132,60,79,253,251,6,95,160,203,200,139,212,62,79,240,37,186,156,108,166,230,190,193,45,244,101,234,223,55,248,10,229,157,39,184,149,90,251,6,183,209,213,164,143,6,247,13,246,211,176,125,131,3,212,222,55,56,72,147,157,39,56,68,189,251,6,151,42,188,125,131,219,169,255,60,193,97,26,190,111,112,132,238,216,55,184,163,151,31,60,79,144,52,148,86,28,54,247,13,170,141,5,10,109,52,26,252,125,131,172,225,236,27,28,211,240,238,27,28,219,144,59,79,176,187,113,156,210,108,140,107,244,52,122,27,39,43,227,27,19,26,19,27,147,26,157,115,158,224,185,165,233,7,156,135,30,9,0,180,1,151,149,102,60,164,60,146,0,64,157,112,73,105,126,121,229,145,4,0,234,132,75,83,252,242,6,212,178,72,146,29,6,213,50,72,1,84,9,56,75,12,103,137,225,44,49,156,37,86,79,124,7,183,206,2,29,233,97,123,78,128,237,229,240,119,156,43,12,192,195,106,141,235,80,67,0,60,172,214,88,134,26,2,224,97,181,198,181,168,33,0,30,6,0,53,198,255,186,126,163,75,113,31,52,0,212,14,255,133,213,221,29,129,159,162,30,129,132,248,123,63,108,208,9,248,43,234,17,128,239,0,137,112,61,70,108,0,120,152,134,181,194,88,43,140,181,194,88,43,12,36,197,207,49,22,1,116,0,208,14,64,59,0,237,128,122,183,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,48,38,88,47,252,14,103,127,1,29,233,97,115,38,194,246,0,32,131,223,98,94,39,213,188,128,121,191,128,213,23,208,181,125,84,74,246,85,247,83,69,125,129,253,213,73,228,0,213,233,11,152,207,119,33,254,190,64,248,253,2,118,95,96,10,241,246,5,158,28,182,251,2,7,170,7,169,178,125,1,185,251,5,140,150,215,104,95,192,226,233,238,11,76,81,163,239,23,48,17,236,11,28,172,202,220,47,160,107,118,95,224,16,195,114,83,141,191,105,170,247,126,1,187,102,120,125,1,93,243,223,47,144,180,47,48,93,93,66,102,168,222,190,128,153,195,238,11,220,72,172,190,128,249,106,246,5,102,170,225,125,129,123,141,79,230,253,2,186,22,222,23,208,181,245,198,95,116,95,96,150,154,236,126,1,93,235,85,158,28,150,233,11,204,86,221,247,11,204,81,195,251,2,134,5,56,125,1,255,253,2,115,213,121,170,221,23,208,181,5,173,188,241,250,2,134,55,42,243,85,185,251,5,68,191,253,170,244,5,14,26,169,30,229,124,105,167,199,133,147,202,89,123,229,182,90,58,237,179,209,77,142,138,153,43,14,63,140,9,98,76,16,99,130,152,23,64,12,64,12,64,12,192,188,64,24,254,138,17,116,32,17,224,57,237,176,196,69,70,95,239,247,24,239,4,66,48,220,132,13,128,120,248,3,98,10,0,0,53,196,197,136,125,0,0,116,32,246,232,130,13,196,56,36,99,235,204,200,197,218,115,66,168,206,29,77,155,151,33,231,107,49,178,3,0,37,248,13,237,62,161,56,94,0,0,228,139,63,162,167,89,1,92,134,90,2,106,0,172,17,194,26,161,60,215,8,125,67,197,26,161,178,175,17,186,122,155,31,70,157,143,190,91,176,62,121,211,220,223,156,103,222,84,119,57,127,62,47,85,62,255,160,52,214,55,91,42,62,5,59,23,159,162,187,132,87,122,167,28,79,31,93,187,98,82,80,102,71,34,191,220,110,57,29,201,121,54,138,210,95,164,147,187,126,248,18,249,245,227,215,5,143,98,80,31,94,189,250,107,198,43,165,191,134,68,117,18,212,205,225,46,46,203,183,120,92,155,138,124,36,218,78,225,156,28,221,131,53,20,172,17,183,95,249,53,246,215,154,248,183,22,252,93,185,109,207,71,176,222,171,137,43,209,94,7,18,226,79,240,157,142,192,37,184,37,0,128,239,0,137,176,18,30,0,192,195,58,26,111,153,80,125,29,222,218,1,58,0,114,120,91,68,93,31,218,86,95,248,237,80,220,180,176,18,89,113,46,142,118,94,82,100,73,215,77,43,79,171,85,177,142,205,215,32,23,57,207,21,73,39,166,231,164,200,104,150,157,246,65,254,117,193,18,140,235,0,9,113,53,124,167,35,240,99,95,212,251,115,78,245,250,23,248,75,199,251,14,80,77,252,6,245,8,192,119,0,0,72,137,165,53,190,105,35,253,217,226,230,90,97,74,226,174,21,206,234,108,241,178,172,21,230,157,45,206,95,43,124,133,212,217,226,162,181,194,206,217,226,225,107,133,179,58,91,252,42,178,132,132,173,21,182,207,22,151,61,79,240,94,98,174,21,126,128,180,99,173,176,251,108,113,255,90,225,165,74,212,90,97,235,108,241,100,107,133,253,103,139,103,185,86,88,230,108,241,124,206,20,45,203,253,2,78,12,192,253,2,237,191,95,224,214,102,149,238,23,144,219,47,240,149,102,186,251,5,254,54,9,247,11,116,46,174,195,56,33,80,19,156,56,20,55,237,196,161,252,57,23,71,59,47,41,178,164,235,166,117,226,80,187,189,162,92,117,108,190,6,185,200,121,174,72,58,49,61,39,69,70,179,236,180,15,242,47,10,215,87,246,127,225,103,48,42,92,19,220,48,9,30,150,22,135,132,172,82,252,54,87,207,23,26,217,112,126,177,145,159,86,223,150,174,161,151,114,146,98,115,134,116,167,186,234,104,75,142,86,115,240,74,70,92,182,229,40,237,129,93,118,77,247,7,184,12,112,249,14,250,158,222,47,56,135,125,123,160,244,240,232,147,145,70,28,15,155,158,221,10,224,81,190,51,114,89,83,124,194,80,220,180,19,134,242,231,92,28,237,188,164,200,146,174,155,214,9,133,252,255,169,78,29,155,175,65,46,114,158,43,146,78,76,207,73,145,209,44,59,237,131,252,179,132,54,20,55,77,27,202,159,115,113,180,243,146,34,75,186,110,90,90,33,49,160,58,117,108,190,6,185,200,121,174,72,58,49,61,39,69,70,179,236,180,15,242,47,10,24,15,0,202,14,140,7,212,21,55,119,192,204,221,74,204,62,22,142,91,74,106,243,91,115,147,11,103,138,226,76,81,220,59,140,123,135,59,19,164,3,110,90,232,4,29,128,108,234,26,190,0,84,17,195,219,131,159,0,0,168,15,70,182,7,63,1,0,80,31,12,110,15,126,2,0,160,211,113,199,142,17,236,237,219,131,159,0,0,168,15,238,220,17,13,238,194,44,39,0,212,16,93,195,193,79,0,80,22,252,191,2,189,242,110,252,23,132,135,1,29,136,111,14,192,6,0,80,103,252,43,98,0,0,0,21,196,30,93,176,129,24,135,100,108,157,25,185,88,123,78,8,213,185,163,105,243,80,207,17,120,23,118,117,1,240,48,45,139,179,197,113,174,48,206,21,182,207,21,214,181,206,59,87,120,182,154,238,92,97,222,217,226,56,87,24,104,47,238,195,44,5,208,65,120,211,32,108,0,192,119,234,140,251,241,63,13,72,136,7,224,59,29,129,125,16,203,1,248,14,144,8,95,197,46,22,0,30,86,107,188,31,115,131,0,60,44,71,156,52,166,24,62,63,75,204,231,12,29,94,90,7,156,50,166,93,156,225,97,0,0,100,139,7,43,53,138,121,210,152,178,75,136,40,141,118,0,60,12,0,128,42,225,97,180,3,16,165,1,180,3,128,204,240,14,204,11,0,240,176,90,227,189,168,33,0,30,86,107,188,7,53,4,192,195,106,141,111,99,165,40,0,15,211,112,231,40,238,28,197,157,163,184,115,180,174,248,58,86,115,3,240,48,180,3,208,14,64,59,160,246,237,128,244,103,137,153,49,128,146,184,49,32,217,89,98,151,169,214,89,98,151,171,101,139,1,188,179,196,248,49,224,10,169,179,196,68,49,192,57,75,44,60,6,100,117,150,216,85,100,9,9,139,1,246,89,98,178,49,224,94,98,198,128,7,72,59,98,128,251,44,49,185,24,112,165,234,196,0,235,44,177,100,49,192,127,150,88,178,24,240,205,113,188,24,32,115,150,24,250,2,124,124,11,125,1,0,30,86,107,252,27,106,8,128,135,97,60,0,227,1,24,15,192,188,64,109,163,244,191,162,29,0,192,195,128,80,60,142,51,39,1,64,18,235,134,219,69,61,105,154,59,149,247,41,174,100,209,37,215,213,224,22,90,191,142,201,45,91,132,53,101,104,164,225,83,124,141,215,193,199,128,106,161,7,173,97,0,0,74,143,39,208,231,3,128,90,99,45,98,0,0,212,26,79,34,6,0,64,173,177,14,49,0,0,106,141,245,53,143,1,88,39,136,117,130,88,39,136,117,130,85,198,47,75,115,126,241,118,156,28,5,192,95,218,128,111,150,102,85,68,121,36,1,224,185,117,194,83,165,233,203,109,69,92,7,42,233,47,24,15,192,120,0,198,3,112,142,16,98,0,98,0,98,0,98,0,206,18,195,89,98,252,24,128,179,196,202,114,150,24,63,6,116,254,89,98,27,35,122,77,207,76,202,139,114,58,169,55,98,116,160,246,104,151,15,252,163,36,99,100,207,14,21,67,39,57,159,103,135,242,212,254,89,196,128,178,140,120,13,213,141,115,89,124,239,153,161,98,232,36,231,243,204,80,158,218,63,131,24,80,18,180,175,38,218,197,57,46,95,140,7,96,60,0,227,1,24,15,168,50,158,79,220,247,89,147,107,148,94,216,131,255,192,117,199,26,180,5,11,193,218,161,226,75,182,159,58,208,217,190,9,148,19,47,98,135,105,66,188,4,203,69,98,51,108,4,20,136,125,177,82,29,112,1,235,4,177,78,48,207,117,130,223,80,177,78,16,123,135,1,160,138,120,5,173,115,160,102,248,253,0,108,0,0,117,198,31,17,3,0,160,214,184,4,49,0,0,106,141,75,17,3,0,192,133,173,24,17,2,128,90,99,27,98,0,0,116,56,46,71,219,23,182,132,85,12,44,24,240,195,126,230,228,112,242,241,242,7,75,70,167,122,169,134,81,9,163,25,165,65,240,187,55,191,37,133,255,179,140,84,124,26,162,167,225,118,137,230,20,37,27,223,34,225,150,19,151,22,213,75,20,45,126,77,200,121,78,180,254,81,28,147,120,102,188,154,150,207,225,254,5,133,73,47,214,84,100,181,240,239,222,82,242,245,248,142,190,40,232,90,252,148,96,190,96,94,217,210,178,28,210,151,138,166,194,215,36,14,199,44,181,78,106,9,81,93,184,255,55,228,43,163,151,190,136,91,222,182,226,89,160,104,142,105,53,231,231,180,252,212,78,139,250,5,163,197,214,89,184,175,52,119,174,0,85,193,17,125,81,16,231,145,41,109,231,11,230,149,45,45,203,33,125,169,104,42,124,77,226,112,204,82,235,164,150,16,213,69,60,191,200,206,10,34,110,121,219,138,103,129,162,57,166,213,156,159,211,242,83,59,45,234,23,28,30,33,166,54,253,79,166,5,158,76,111,198,143,60,51,154,89,196,175,69,99,139,139,149,231,198,230,117,225,142,18,23,113,202,206,76,100,129,89,205,217,205,149,146,146,172,49,242,205,17,112,217,40,65,99,179,20,31,218,221,232,102,221,97,57,230,182,100,152,39,144,100,207,238,248,86,152,221,61,167,59,137,245,210,97,126,130,26,251,110,247,89,1,73,251,67,102,156,22,183,65,47,153,125,131,43,168,249,202,59,75,236,38,106,237,27,188,153,82,178,146,222,66,253,251,6,111,165,183,81,115,223,224,237,116,18,185,131,58,251,6,239,52,62,223,213,162,42,127,150,216,221,244,30,58,153,220,75,239,163,247,211,7,232,42,26,220,55,248,32,125,136,206,38,15,83,153,125,131,147,85,153,125,131,171,169,189,111,112,141,33,237,35,116,33,121,148,218,251,6,31,163,209,103,137,61,78,159,160,254,125,131,131,202,233,36,222,89,98,107,13,158,79,26,127,235,168,247,44,177,245,116,3,125,138,110,164,188,125,131,155,168,255,44,177,167,233,51,212,222,55,248,15,42,179,111,240,89,106,238,27,124,142,46,33,207,83,255,190,193,23,232,50,242,34,181,207,18,123,137,46,39,155,169,185,111,112,11,125,153,250,207,18,123,133,242,206,18,219,74,173,125,131,219,232,106,210,71,131,251,6,251,105,216,190,193,1,106,239,27,28,164,201,206,18,27,162,222,125,131,75,21,222,190,193,237,212,127,150,216,48,13,223,55,56,66,119,236,27,164,182,53,131,103,137,145,134,210,48,83,204,125,131,106,99,129,66,27,141,6,127,223,32,107,56,251,6,199,52,188,251,6,199,54,228,206,18,235,110,28,167,52,27,227,26,61,141,222,198,201,202,248,198,132,198,196,198,164,6,246,13,218,216,187,207,251,14,0,85,247,101,32,25,6,177,38,8,168,41,210,159,43,172,107,251,168,148,236,171,238,167,138,206,16,217,95,157,68,14,80,157,190,128,249,60,217,185,194,186,54,101,180,197,26,236,11,28,168,30,164,202,158,33,34,215,23,48,90,94,163,125,1,139,147,251,12,145,41,106,116,95,192,68,240,12,145,131,165,206,21,214,53,187,47,112,136,97,185,169,198,223,52,213,219,23,176,107,134,215,23,208,181,172,206,21,158,174,46,33,51,84,111,95,192,204,225,63,87,216,124,53,207,16,153,169,70,157,43,172,107,102,95,64,215,194,207,16,209,181,245,198,95,244,25,34,179,212,100,125,1,93,147,61,67,100,182,234,238,11,204,81,195,251,2,134,5,36,206,21,158,171,206,83,237,190,128,49,139,223,202,27,239,12,17,195,27,149,249,170,236,185,194,124,216,125,129,27,250,162,160,107,241,83,100,144,174,116,22,240,75,16,45,81,122,153,243,214,90,134,190,40,143,227,29,197,90,190,253,158,208,14,25,194,56,102,33,141,67,35,138,90,120,43,1,243,2,54,48,47,192,71,149,231,5,182,199,234,255,101,53,47,16,134,246,204,11,60,222,23,5,113,30,153,210,73,232,22,5,191,4,209,18,165,151,57,111,173,211,212,104,28,175,200,82,202,246,123,66,59,100,8,227,152,133,52,14,141,40,106,143,70,66,215,226,167,60,154,138,110,81,240,75,16,45,81,122,153,243,214,90,134,190,40,143,19,3,138,181,124,251,61,161,29,50,132,113,204,66,26,135,70,20,53,172,15,192,250,0,172,15,168,247,250,128,187,251,162,96,212,93,236,20,25,164,43,157,5,252,18,68,75,148,94,230,188,181,150,161,47,202,227,196,128,98,45,223,126,79,104,135,12,97,28,179,144,198,161,17,69,13,237,0,180,3,208,14,168,119,59,224,250,190,40,24,243,192,177,83,100,144,174,116,22,240,75,16,45,81,122,153,243,214,90,134,190,40,143,19,3,138,181,124,251,61,161,29,50,132,113,204,66,26,135,70,20,181,23,35,161,107,241,83,130,249,130,121,101,75,191,152,74,198,56,165,162,169,240,53,137,195,49,75,173,147,90,66,84,23,238,249,162,124,101,244,210,23,113,203,219,86,60,11,20,205,49,173,230,252,156,150,159,218,105,81,191,224,118,173,79,236,36,92,48,1,54,168,34,198,195,251,129,10,163,107,39,216,0,0,0,64,14,255,222,195,123,218,68,59,96,20,19,43,109,137,106,75,95,39,95,106,103,77,241,121,119,170,239,152,122,197,209,237,143,125,81,16,231,145,41,157,132,110,81,240,75,16,45,81,122,153,243,214,58,77,141,198,241,138,44,165,108,191,39,180,67,134,48,142,89,72,227,208,136,162,134,255,93,64,126,80,48,106,81,1,96,141,16,214,8,97,141,16,206,18,3,128,124,64,209,14,0,0,160,4,192,188,64,145,96,136,252,0,80,49,252,23,86,185,1,25,225,103,37,245,165,109,219,228,159,214,15,24,19,196,152,32,198,4,235,61,38,136,24,128,24,128,24,80,239,24,240,167,190,40,232,90,252,20,25,164,43,157,5,252,18,68,75,148,94,230,188,181,150,161,47,202,227,196,128,98,45,223,126,79,104,135,12,97,28,179,144,198,161,17,69,237,138,72,232,90,252,148,43,82,209,45,10,126,9,162,37,74,47,115,222,90,203,208,23,229,113,98,64,177,150,111,191,39,180,67,134,48,142,89,72,227,208,136,162,134,17,17,32,63,52,49,75,132,49,65,140,7,96,60,0,227,1,88,39,8,212,22,61,104,7,0,0,80,2,116,245,201,63,173,62,182,77,48,218,237,88,245,3,0,136,1,146,88,214,23,5,113,30,153,210,73,232,22,5,191,4,209,18,165,151,57,111,173,211,212,104,28,175,200,82,202,246,123,66,59,100,8,227,152,133,52,14,141,40,106,107,34,161,107,241,83,214,164,162,91,20,252,18,68,75,148,94,230,188,181,150,161,47,202,227,196,128,98,45,223,126,79,104,135,12,97,28,179,144,198,161,17,69,237,225,72,232,90,252,148,135,83,209,45,10,126,9,162,37,74,47,115,222,90,203,208,23,229,113,98,64,177,150,111,191,39,180,67,134,48,142,89,72,227,208,136,162,54,16,9,99,38,38,118,74,48,95,48,175,108,233,129,84,50,134,66,141,75,133,175,73,28,57,179,212,154,135,65,53,137,181,172,39,238,62,98,158,50,250,233,139,184,229,109,43,158,5,138,230,152,86,115,126,78,203,79,237,180,168,95,112,248,104,193,212,192,157,235,211,2,79,166,39,184,151,125,70,51,139,177,143,69,99,117,237,168,130,198,117,206,29,27,183,196,133,59,74,92,196,41,59,51,145,5,102,53,103,55,87,74,74,178,198,200,55,71,192,101,163,4,141,205,82,124,104,119,163,155,117,135,229,152,219,146,97,158,64,146,61,187,227,91,97,118,247,156,238,36,214,243,99,66,172,153,203,249,9,106,236,187,221,103,197,146,116,113,38,122,1,64,62,120,176,231,161,158,135,123,86,247,192,18,157,134,187,250,162,32,206,35,83,58,9,221,162,224,151,32,90,162,244,50,231,173,117,154,26,141,227,21,89,74,217,126,79,104,135,12,97,28,179,144,198,161,17,69,13,107,133,177,86,24,107,133,235,189,86,248,99,125,126,24,116,71,223,45,88,159,188,105,124,200,167,122,169,134,81,9,163,105,203,23,37,135,243,221,157,223,214,205,45,145,152,35,207,2,118,153,96,57,47,101,247,183,104,4,115,70,201,198,183,136,140,54,188,210,162,122,137,146,151,87,111,110,105,100,169,242,245,151,169,139,184,158,25,231,105,156,28,193,95,144,40,53,202,150,98,79,230,219,220,253,187,146,183,56,218,1,104,7,160,29,80,239,118,192,237,125,81,208,181,248,41,50,72,87,58,11,248,37,136,150,40,189,204,121,107,45,67,95,148,199,137,1,197,90,190,253,158,208,14,25,194,56,102,33,141,67,35,138,218,29,145,208,181,248,41,119,164,162,91,20,252,18,68,75,148,94,230,188,181,150,161,47,202,227,196,128,98,45,223,126,79,104,135,12,97,28,179,144,198,161,17,69,173,234,243,26,175,194,238,84,0,200,17,19,250,157,215,108,104,5,63,135,229,139,166,232,207,205,123,150,150,79,124,169,188,37,188,101,163,40,133,219,38,190,28,73,181,145,149,51,170,94,195,233,36,145,132,103,133,36,62,154,141,95,135,215,86,60,30,43,38,20,45,99,52,38,246,59,175,217,208,10,126,14,203,23,77,209,159,155,247,44,45,159,248,82,121,75,120,203,70,81,10,183,77,124,57,146,106,35,43,103,84,189,134,211,73,34,9,207,10,73,124,116,98,206,191,47,83,206,137,41,99,192,196,2,98,0,230,5,48,47,80,215,121,129,87,239,132,121,129,78,188,95,192,176,56,98,64,68,12,248,117,143,76,12,248,77,79,120,12,208,53,59,6,232,90,209,49,224,183,61,105,99,192,133,61,213,152,27,52,188,17,49,0,49,0,49,0,49,0,49,0,49,0,49,0,49,0,49,0,49,0,49,0,49,0,49,0,49,0,49,0,49,0,247,11,164,194,110,59,233,218,238,88,85,148,9,246,128,29,59,4,104,7,160,29,128,118,0,250,2,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,24,19,4,58,31,47,142,129,13,0,140,9,162,29,128,118,0,218,1,232,11,32,6,32,6,32,6,32,6,32,6,32,6,32,6,32,6,32,6,32,6,32,6,132,197,0,11,188,24,160,107,102,12,208,181,125,84,74,246,85,247,83,253,49,192,44,103,198,128,253,213,73,228,0,213,137,1,230,243,93,72,188,24,96,230,158,108,188,78,25,245,212,96,12,56,80,61,72,205,54,6,24,22,31,141,1,22,167,133,173,119,43,6,76,81,163,99,128,9,127,12,48,36,87,101,98,128,174,217,49,224,16,195,114,83,141,191,105,170,55,6,216,53,195,139,1,186,230,143,1,230,115,59,6,152,159,163,99,128,174,153,49,96,186,186,132,204,80,189,49,192,204,225,143,1,230,235,77,198,235,76,213,31,3,238,32,222,24,160,107,102,12,208,53,43,6,232,218,106,227,47,24,3,116,109,189,241,39,138,1,198,184,230,104,12,152,165,38,139,1,186,230,141,1,134,119,114,98,128,174,237,174,204,86,221,49,96,142,26,30,3,12,11,216,49,64,19,199,128,185,234,60,213,142,1,186,182,160,149,55,58,6,152,223,236,24,96,120,163,50,95,149,139,1,162,177,64,180,3,208,14,64,59,0,237,128,232,185,65,210,239,188,166,133,155,74,24,69,121,110,87,79,8,230,54,191,203,81,136,167,149,124,110,59,167,83,194,91,54,138,82,184,109,226,203,145,84,155,107,39,196,213,147,79,55,156,151,140,36,254,60,215,79,184,97,66,186,218,76,94,38,30,253,27,39,44,159,16,167,196,138,9,69,203,104,226,182,190,40,136,243,200,148,78,66,183,40,248,37,136,150,40,189,204,121,107,157,166,70,227,120,69,150,82,182,223,19,218,33,67,24,199,44,164,113,104,68,81,59,61,18,186,22,63,37,152,47,152,87,182,244,233,169,100,140,83,42,154,10,95,147,56,28,179,212,58,169,37,68,117,225,254,223,144,175,140,95,144,146,57,111,91,241,44,80,52,199,180,154,243,115,90,126,106,167,69,253,130,113,166,40,206,20,197,93,99,56,83,20,49,0,49,0,49,0,49,0,49,0,49,0,49,160,200,24,240,98,79,89,98,192,45,125,81,208,181,248,41,50,72,87,58,11,248,37,136,150,40,189,204,121,107,45,67,95,148,199,137,1,197,90,190,253,158,208,14,25,194,56,102,33,141,67,35,138,218,173,145,208,181,248,41,183,166,162,91,20,252,18,68,75,148,94,230,188,181,150,161,47,202,227,196,128,98,45,223,126,79,104,135,12,97,28,179,144,198,161,17,69,13,235,4,177,78,16,235,4,235,189,78,48,255,21,8,0,80,78,76,198,169,168,29,129,55,55,97,3,32,25,14,236,131,13,0,160,206,152,130,118,0,0,212,26,7,35,6,180,128,245,1,88,31,128,245,1,245,94,35,180,188,47,10,198,168,111,236,20,25,164,43,157,5,252,18,68,75,148,94,230,188,181,150,161,47,202,227,196,128,98,45,223,126,79,104,135,12,97,28,179,144,198,161,17,69,173,184,22,7,27,225,127,14,203,23,158,147,151,110,126,143,42,35,71,57,141,158,105,104,231,37,87,214,28,120,84,242,145,93,134,106,18,206,121,91,90,214,227,229,101,148,251,53,196,229,117,93,95,20,196,121,100,74,39,161,91,20,252,18,68,75,148,94,230,188,181,78,83,163,113,188,34,75,41,219,239,9,237,144,33,140,99,22,210,56,52,162,168,85,125,60,99,42,198,117,128,132,152,6,223,201,101,76,112,250,78,56,75,172,51,206,18,179,214,9,166,63,75,204,191,78,208,59,38,104,174,19,140,63,38,232,172,19,196,89,98,184,103,8,0,146,98,22,218,1,130,118,192,31,152,213,14,184,152,93,194,46,101,127,100,151,177,203,217,21,204,106,7,92,201,130,251,5,20,162,18,74,26,132,145,63,49,239,220,224,85,108,9,51,219,1,19,201,36,178,19,185,154,217,237,128,157,201,159,153,185,95,224,47,140,215,14,88,202,220,237,128,107,152,213,14,248,43,251,27,155,76,254,206,166,144,107,217,117,108,25,11,182,3,102,146,89,100,54,185,158,205,33,55,48,111,59,224,70,102,183,3,150,179,21,204,108,7,28,65,236,118,192,77,204,106,7,220,204,236,118,192,74,102,183,3,142,38,118,59,224,24,35,237,22,102,238,23,184,149,89,237,128,79,144,79,146,219,216,167,200,237,204,110,7,220,193,156,118,192,157,204,108,7,156,64,78,36,39,145,187,152,217,14,184,155,217,251,5,238,97,225,237,128,123,153,183,29,112,22,185,143,157,77,238,103,223,35,223,39,15,48,167,29,112,46,57,143,156,79,46,32,238,118,192,42,131,215,131,236,231,228,23,196,110,7,60,196,172,118,192,195,108,53,75,178,95,224,42,178,132,92,77,252,237,128,235,200,50,178,134,185,219,1,43,136,217,14,120,132,221,76,172,118,192,163,204,108,7,60,198,30,103,86,59,224,9,182,150,185,219,1,171,136,104,191,192,147,204,108,7,172,35,78,59,96,29,19,183,3,182,16,171,29,176,158,133,181,3,54,48,127,59,160,71,17,237,23,120,138,57,237,128,141,204,223,14,216,91,217,71,217,196,196,237,128,25,202,76,229,105,102,182,3,158,97,163,191,48,230,109,7,60,199,222,166,28,170,28,166,60,207,94,96,102,59,224,112,101,129,114,132,242,34,227,181,3,94,98,155,153,211,14,216,194,94,102,238,118,192,177,202,43,204,221,14,216,202,182,177,69,74,31,235,103,254,253,2,199,41,199,43,39,40,39,42,39,41,39,43,167,40,167,42,167,41,167,43,56,63,0,235,3,176,62,0,235,3,172,24,176,180,47,10,186,22,63,69,6,233,74,103,1,191,4,209,18,165,151,57,111,173,101,232,139,242,56,49,160,88,203,183,223,19,218,33,67,24,199,44,164,113,104,68,81,139,24,117,15,236,200,153,22,120,50,61,193,174,157,25,153,236,244,89,52,182,184,62,211,185,177,121,93,184,163,196,69,156,178,51,19,89,96,86,115,118,115,165,164,36,107,140,124,115,4,92,54,74,208,216,44,197,135,118,55,186,89,119,88,142,185,45,25,230,9,36,217,179,59,138,195,220,64,175,125,118,247,156,238,36,214,243,227,23,177,102,197,230,71,214,216,188,128,164,223,237,62,43,150,164,139,51,209,171,110,120,51,198,117,128,132,120,11,124,7,0,128,14,192,91,115,141,101,86,95,224,208,157,208,23,64,95,160,93,125,129,32,178,234,11,196,195,252,4,53,134,190,0,0,200,224,176,18,180,201,151,214,120,165,12,230,6,49,55,136,185,193,122,207,13,134,71,136,195,75,61,106,114,245,132,226,120,253,57,54,175,191,236,40,177,52,67,57,255,42,77,235,111,33,57,255,46,65,229,90,73,78,215,69,228,91,22,154,190,141,198,183,1,239,206,209,114,34,253,157,163,237,199,2,196,0,196,0,196,128,14,143,1,232,11,160,47,128,190,0,250,2,85,6,206,21,6,146,226,29,88,31,128,118,0,218,1,104,7,160,29,160,140,233,139,130,241,203,142,157,18,204,23,204,43,91,90,150,67,250,82,209,84,248,154,196,225,152,165,214,73,45,33,170,11,247,255,134,124,101,244,210,23,113,203,219,86,60,11,20,205,49,173,230,252,156,150,159,218,105,81,191,96,22,9,35,22,197,78,9,230,11,230,149,45,205,82,201,24,167,84,52,21,190,38,113,56,102,169,117,82,75,136,234,194,29,3,242,149,209,75,95,196,45,111,91,241,44,80,52,199,180,154,243,115,90,126,106,167,69,253,130,27,145,208,181,248,41,193,124,193,188,178,165,27,169,100,140,83,42,154,10,95,147,56,28,179,212,58,169,37,68,117,225,142,1,249,202,232,165,47,226,150,183,173,120,22,40,154,99,90,205,249,57,45,63,181,211,162,126,193,99,35,161,107,241,83,130,249,130,121,101,75,143,77,37,99,156,82,209,84,248,154,196,225,152,165,214,73,45,33,170,11,119,12,200,87,70,47,125,17,183,188,109,197,179,64,209,28,211,106,206,207,105,249,169,157,22,245,11,198,168,104,86,120,23,70,153,129,74,226,117,253,81,16,231,145,41,109,231,11,230,149,45,45,203,33,125,169,104,42,124,77,226,112,204,82,235,164,150,16,213,69,60,191,200,206,10,34,110,121,219,138,103,129,162,57,166,213,156,159,211,242,83,59,45,234,23,124,64,36,140,217,185,216,41,193,124,193,188,178,165,15,72,37,99,156,82,209,84,248,154,196,225,152,165,214,73,45,33,170,11,119,12,200,87,70,47,125,17,183,188,109,197,179,64,209,28,211,106,206,207,105,249,169,157,22,245,11,222,57,18,198,124,105,236,148,96,190,96,94,217,210,59,167,146,49,78,169,104,42,124,77,226,112,204,82,235,164,150,16,213,133,59,6,228,43,163,151,190,136,91,222,182,226,89,160,104,142,105,53,231,231,180,252,212,78,139,250,5,31,18,9,93,139,159,18,204,23,204,43,91,250,144,84,50,198,41,21,77,133,175,73,28,142,89,106,157,212,18,162,186,112,199,128,124,101,244,210,23,113,203,219,86,60,11,20,205,49,173,230,252,156,150,159,218,105,81,191,224,131,34,161,107,241,83,14,10,228,11,230,149,45,125,80,42,25,227,148,138,166,194,215,36,14,199,44,181,78,106,9,81,93,184,99,64,190,50,122,233,139,184,229,109,43,158,5,138,230,152,86,115,126,78,203,79,237,180,168,95,240,126,145,208,181,248,41,193,124,193,188,178,165,247,75,37,99,156,82,209,84,248,154,196,225,152,165,214,73,45,33,170,11,119,12,200,87,70,47,125,17,183,188,109,197,179,64,209,28,211,106,206,207,105,249,169,157,22,245,11,198,204,8,144,4,239,198,76,104,199,160,171,47,10,226,60,50,165,237,124,193,188,178,165,101,57,164,47,21,77,133,175,73,28,142,89,106,157,212,18,162,186,136,231,23,217,89,65,196,45,111,91,241,44,80,52,199,180,154,243,114,110,155,160,107,125,19,28,43,71,253,130,119,233,143,130,174,197,79,9,230,11,230,149,45,45,203,33,125,169,104,42,124,77,226,112,204,82,235,164,150,16,213,133,59,6,228,43,163,151,190,136,91,222,182,226,89,160,104,142,105,53,231,231,180,252,212,78,139,250,5,163,37,4,0,229,197,145,232,115,1,64,173,241,222,2,98,192,107,250,163,32,206,35,83,218,206,23,204,43,91,90,150,67,250,82,209,84,248,154,196,225,152,165,214,73,45,33,170,139,120,126,145,157,21,68,220,242,182,21,207,2,69,115,76,171,57,63,167,229,167,118,90,212,47,24,231,8,225,28,33,156,35,84,239,115,132,58,45,6,24,22,71,12,136,136,1,191,238,145,137,1,191,233,9,143,1,186,102,199,0,93,43,58,6,252,182,39,109,12,184,176,167,26,49,192,240,70,196,0,196,0,196,0,196,128,92,99,192,156,254,40,24,58,184,190,77,107,250,83,188,233,34,10,222,92,51,154,50,229,162,176,104,44,95,70,89,248,75,233,218,81,59,197,213,36,46,71,187,244,255,103,239,59,224,237,40,174,187,223,236,206,174,244,174,202,211,19,197,184,0,31,54,197,128,4,8,117,28,151,24,145,124,105,174,137,45,140,139,32,49,77,20,135,196,78,66,236,172,191,47,1,55,154,157,228,75,12,194,14,142,73,226,70,49,2,203,116,84,233,32,16,69,162,9,4,18,29,36,144,222,125,122,122,119,191,157,187,111,181,109,118,119,182,239,222,253,235,255,123,247,238,221,153,57,231,204,153,179,71,179,103,90,54,18,71,229,224,231,247,223,181,90,210,198,220,246,214,241,217,72,53,175,21,172,133,185,237,253,250,131,203,7,221,103,231,13,166,181,157,32,13,164,209,189,31,236,188,193,56,244,150,244,199,229,21,220,194,34,182,102,166,236,31,9,93,139,159,226,207,231,207,43,90,122,255,84,50,198,41,21,77,133,95,147,56,28,179,172,117,82,77,4,181,133,211,7,228,43,163,155,126,16,183,188,117,197,211,64,209,28,211,214,156,159,211,180,83,43,45,234,9,254,64,36,116,205,249,107,70,203,155,226,78,15,162,224,206,53,179,37,82,46,10,139,198,243,101,20,133,183,148,174,125,114,106,220,154,196,229,104,149,206,70,226,168,28,252,252,254,187,86,75,218,248,128,209,15,200,70,170,121,173,96,45,124,192,232,7,4,151,15,186,207,250,1,105,109,39,72,3,105,116,239,7,235,7,196,161,183,164,63,46,175,224,22,22,177,53,51,5,227,2,24,23,192,184,0,206,25,2,128,38,226,211,152,131,215,197,236,118,20,220,121,102,180,188,41,209,52,88,14,119,174,153,45,145,114,81,88,52,158,47,163,40,188,165,116,237,79,167,198,173,73,92,142,86,233,108,36,142,202,193,207,239,191,107,181,164,211,46,182,142,207,70,170,121,173,96,45,204,54,222,5,130,203,7,221,103,239,2,105,109,39,72,3,105,116,239,7,123,23,136,67,111,73,127,92,94,193,45,44,98,107,102,10,222,5,240,46,128,119,1,231,187,192,145,125,217,190,11,204,236,203,227,93,96,9,13,126,23,152,215,103,190,11,204,239,19,123,23,216,175,29,5,93,139,159,226,207,231,207,43,90,90,148,67,250,82,209,84,248,53,137,195,49,203,90,39,213,68,80,91,56,251,1,249,202,232,166,31,196,45,111,93,241,52,80,52,199,180,53,231,231,52,237,212,74,139,122,130,241,54,4,20,131,75,100,232,160,154,216,50,20,133,224,60,34,165,173,124,254,188,162,165,69,57,164,47,21,77,133,95,147,56,28,179,172,117,82,77,4,181,69,60,187,200,78,11,65,220,242,214,21,79,3,69,115,76,91,115,126,78,211,78,173,180,168,39,184,238,62,236,179,136,237,2,64,42,32,38,136,152,96,83,99,130,11,167,98,126,64,47,174,25,130,15,128,15,192,28,161,172,125,128,9,175,15,48,238,25,127,166,15,144,141,22,80,136,74,188,62,128,149,99,62,96,10,25,36,83,137,237,3,222,177,219,218,156,62,64,215,248,62,64,215,152,15,96,223,211,28,86,234,247,1,179,200,108,34,186,110,240,56,34,226,3,62,69,44,31,240,217,110,238,133,221,79,211,7,124,158,184,125,128,41,139,219,7,156,74,78,35,231,13,185,125,128,174,125,67,98,62,64,215,194,124,128,174,217,62,224,124,227,215,183,140,191,111,147,239,140,113,185,192,248,190,136,92,76,46,33,223,39,63,32,60,31,112,105,247,106,73,247,211,244,1,236,202,242,1,236,58,218,7,232,26,243,1,215,25,223,215,19,175,15,184,149,88,235,6,205,252,43,200,74,194,124,128,174,173,38,94,31,112,47,49,125,192,121,67,204,7,232,26,243,1,186,246,8,49,125,128,174,173,55,254,76,31,112,222,144,237,3,158,35,97,62,64,215,222,232,106,118,43,217,70,196,125,128,97,159,187,125,192,68,233,188,161,243,134,108,31,96,88,39,199,7,232,154,237,3,116,141,249,128,3,165,112,31,48,83,218,237,3,52,219,7,24,227,116,46,31,240,97,233,35,146,229,3,142,149,22,72,199,25,191,162,215,13,118,231,53,57,124,192,241,18,243,1,186,22,229,3,116,237,100,233,20,233,84,233,52,233,116,105,177,116,134,116,166,116,150,116,182,100,251,128,239,14,69,193,248,191,39,118,138,63,159,63,175,104,105,81,14,233,75,69,83,225,215,36,14,199,44,107,157,84,19,65,109,225,244,249,249,202,232,166,31,196,45,111,93,241,52,80,52,199,180,53,231,231,52,237,212,74,139,122,130,191,19,9,93,139,159,226,207,231,207,43,90,250,59,169,100,140,83,42,154,10,191,38,113,56,102,89,235,164,154,8,106,11,167,15,200,87,70,55,253,32,110,121,235,138,167,129,162,57,166,173,57,63,167,105,167,86,90,212,19,44,242,46,176,231,148,242,222,5,182,180,183,180,195,222,5,182,180,147,190,11,108,105,243,223,5,182,180,195,222,5,182,180,237,119,129,45,109,243,93,96,75,123,209,152,44,214,187,192,150,182,245,46,112,122,151,207,98,227,51,206,187,192,150,182,243,93,96,75,219,251,46,176,165,29,245,46,192,184,46,233,202,155,246,93,96,75,59,201,187,192,150,54,123,23,96,82,88,239,2,91,218,81,239,2,206,120,64,244,187,128,25,15,16,123,23,216,210,102,239,2,91,218,206,119,129,73,198,239,124,223,5,182,180,211,190,11,48,10,206,119,129,45,237,240,119,1,195,18,37,246,196,196,123,23,16,241,1,239,45,209,7,108,108,111,12,245,1,27,19,251,128,141,1,62,96,99,168,15,216,232,240,1,27,199,124,192,198,49,31,176,113,183,15,216,232,240,1,27,187,62,96,99,44,31,176,209,229,3,54,250,124,192,198,72,31,176,113,204,7,108,76,237,3,54,38,242,1,27,187,62,96,163,195,7,108,44,209,7,108,236,250,128,141,30,31,176,49,103,31,176,49,181,15,216,232,241,1,27,35,124,128,97,137,18,123,98,178,247,1,232,7,160,31,128,126,64,179,251,1,101,250,0,86,175,98,199,5,206,26,14,243,1,103,13,219,62,224,172,97,247,184,128,237,3,236,113,1,239,216,96,18,31,112,214,112,114,31,112,214,112,57,62,224,172,97,239,184,192,89,195,229,249,0,115,92,192,235,3,110,167,85,31,23,56,107,184,136,113,129,234,207,98,122,231,148,186,204,183,122,87,102,146,190,59,130,210,123,34,57,237,155,153,44,251,213,70,255,81,216,191,103,106,210,52,188,93,155,117,77,217,73,26,69,41,154,83,113,178,212,215,146,22,97,158,57,208,80,156,8,219,7,28,192,249,2,56,95,32,44,30,144,254,124,1,43,30,192,159,43,204,226,1,241,231,10,219,241,0,156,47,16,111,174,240,73,83,49,87,184,232,185,194,201,98,130,189,56,87,216,244,1,101,198,4,221,115,133,221,62,160,201,115,133,171,222,79,121,177,253,98,59,60,61,57,229,36,20,157,169,214,181,247,155,151,43,158,156,238,220,254,178,209,212,252,50,101,173,39,145,82,60,109,149,99,69,60,9,242,150,136,111,15,105,116,31,69,135,165,71,61,49,245,195,142,246,142,118,120,122,114,202,73,40,58,83,173,107,239,55,47,87,60,57,221,185,253,101,163,169,249,101,202,90,79,34,165,120,218,42,199,138,120,18,228,45,81,246,186,143,162,200,210,163,158,152,250,225,165,246,75,237,240,244,228,148,147,80,116,166,90,215,222,111,94,174,120,114,186,115,251,203,70,83,243,203,100,227,203,83,179,208,147,72,41,158,182,202,177,34,158,4,121,75,196,183,135,52,186,143,162,195,210,163,158,152,36,49,65,126,60,128,197,4,237,120,0,37,252,120,128,25,19,244,198,3,242,137,9,230,25,15,216,64,163,226,1,252,152,32,47,30,16,55,38,232,142,7,132,199,4,251,38,137,196,4,201,164,56,241,128,165,196,31,15,8,138,9,250,227,1,231,202,209,49,65,94,60,64,52,38,24,39,30,224,140,9,78,148,164,73,209,241,0,127,76,48,42,30,32,22,19,116,198,3,204,152,160,72,60,192,27,19,52,227,1,209,49,65,22,15,240,239,31,32,79,194,25,35,117,198,41,24,221,3,128,70,99,67,109,223,248,78,133,247,2,128,12,240,36,246,132,7,50,3,226,1,136,7,32,30,128,120,0,128,119,1,188,11,0,64,122,20,183,110,240,140,200,39,105,95,172,145,243,1,235,6,1,244,3,208,15,0,128,222,192,217,120,146,128,198,96,87,123,87,59,60,61,57,229,36,20,157,169,214,181,247,155,151,43,158,156,238,220,254,178,209,212,252,50,101,173,39,145,82,60,109,149,99,69,60,9,242,150,200,166,255,149,169,105,41,136,73,204,210,163,158,24,63,176,110,176,121,235,6,207,153,138,117,131,88,55,88,159,117,131,207,183,159,111,135,167,39,167,156,132,162,51,213,186,246,126,243,114,197,147,211,157,219,95,54,154,154,95,166,172,245,36,82,138,167,173,114,172,136,39,65,222,18,101,175,251,40,138,44,61,234,137,169,31,118,182,119,182,195,211,147,83,78,66,209,153,106,93,123,191,121,185,226,201,233,206,237,47,27,77,205,47,83,214,122,18,41,197,211,86,57,86,196,147,32,111,137,178,215,125,20,69,150,30,245,196,212,15,88,55,152,253,186,193,191,198,186,193,66,36,74,79,191,152,117,131,85,71,219,248,23,158,158,156,114,18,138,206,84,235,218,251,205,203,21,79,78,119,110,127,217,104,106,126,153,178,214,147,72,41,158,182,202,177,34,158,4,121,75,148,189,238,163,40,178,244,168,39,6,0,202,195,87,49,162,89,73,220,221,246,194,186,231,204,99,223,115,230,114,255,114,254,182,41,248,233,58,105,243,249,250,101,178,104,185,229,230,201,239,150,203,47,181,87,34,39,87,62,103,55,255,48,109,5,115,21,173,101,88,253,109,189,133,75,201,175,145,179,92,16,13,175,118,131,249,240,36,138,210,15,223,82,252,165,130,105,120,229,15,178,174,36,8,111,173,224,28,97,154,177,181,195,183,0,255,93,254,115,22,174,153,32,185,220,150,16,134,231,119,120,97,68,22,199,190,45,56,239,57,115,185,127,57,127,219,20,252,116,157,180,249,124,253,50,89,180,156,50,121,233,243,228,242,75,237,76,27,150,221,92,249,156,221,252,195,180,21,204,85,180,150,97,245,183,245,22,38,229,78,153,95,35,103,185,167,66,116,236,212,110,48,31,158,68,81,250,225,91,138,191,84,48,13,111,93,130,172,43,9,194,91,43,56,71,152,102,194,173,145,247,116,240,159,179,112,205,4,201,101,211,143,150,55,12,71,181,188,119,102,248,238,28,221,138,223,251,152,41,92,230,142,144,119,155,69,227,227,115,182,233,5,81,230,223,191,120,188,63,213,186,246,151,96,119,174,216,93,226,202,241,254,60,179,90,73,100,158,221,154,211,90,35,88,235,13,70,190,185,45,126,109,54,11,208,216,42,196,135,246,43,253,106,127,144,204,236,115,94,183,166,243,3,36,217,175,63,126,27,206,233,159,219,159,180,213,69,109,203,143,99,90,241,109,237,188,254,243,99,73,186,164,63,141,132,86,153,59,74,142,7,124,13,239,124,0,0,212,2,83,134,211,150,138,67,225,111,166,214,169,150,121,240,45,75,18,216,53,0,0,124,252,29,250,172,93,124,163,157,28,162,165,89,62,127,222,116,188,179,160,229,45,21,77,133,95,147,56,28,179,172,117,118,218,50,239,100,101,23,89,105,161,120,93,21,201,49,140,151,184,28,252,156,166,157,90,105,193,212,252,237,14,0,117,194,185,248,127,60,19,44,110,39,135,104,105,150,207,159,55,29,239,44,104,121,75,69,83,225,215,36,14,199,44,107,157,157,182,204,59,89,217,69,86,90,40,94,87,69,114,12,227,37,46,7,63,167,105,167,86,90,48,53,51,229,204,20,208,53,241,124,254,188,162,165,179,148,36,188,84,52,21,126,77,226,112,204,178,214,217,105,203,188,227,244,1,249,242,23,163,95,188,174,138,228,24,198,75,92,14,126,78,211,78,173,180,96,106,102,202,79,35,161,107,241,83,252,249,252,121,69,75,255,52,149,140,113,74,69,83,225,215,36,14,199,44,107,157,84,19,65,109,225,244,1,249,202,232,166,31,196,45,111,93,241,52,80,52,199,180,53,231,231,52,237,212,74,139,122,130,127,28,9,93,139,159,226,207,231,207,43,90,250,199,169,100,140,83,42,154,10,191,38,113,56,102,89,235,236,180,101,222,113,250,128,124,249,187,233,7,113,43,82,87,150,6,202,108,133,36,53,231,231,52,237,212,74,139,122,130,63,147,2,186,38,158,207,159,87,180,116,150,146,132,151,138,166,194,175,73,28,142,89,214,58,59,109,153,119,156,62,32,95,254,110,250,65,220,138,212,149,165,129,50,91,33,73,205,249,57,77,59,181,210,130,169,249,219,189,142,248,253,33,196,117,1,216,14,144,4,255,103,23,116,0,192,194,122,3,127,143,113,226,2,241,117,104,27,232,17,44,25,133,14,0,88,24,111,111,241,27,198,213,107,111,241,223,140,139,187,183,248,178,113,217,237,45,254,219,113,206,189,197,111,28,87,214,222,226,55,141,187,121,156,232,222,226,236,186,90,123,139,223,50,78,100,111,241,91,199,101,179,183,248,109,227,220,123,139,223,62,206,189,183,248,29,227,178,220,91,124,249,56,182,183,248,138,113,162,123,139,175,28,215,43,123,139,111,24,41,198,135,189,52,88,77,9,23,78,196,255,131,213,64,81,150,88,37,206,128,24,54,161,133,0,88,152,150,252,156,161,78,159,243,93,128,146,184,239,2,251,16,239,187,192,254,132,255,46,112,40,177,223,5,174,146,167,119,175,174,150,171,118,206,208,137,198,231,73,68,228,156,161,107,100,246,46,112,14,9,123,23,248,38,9,122,23,248,46,249,30,185,128,92,72,162,206,25,186,140,176,119,129,203,73,250,119,129,165,36,236,93,96,57,137,247,46,176,150,176,119,129,117,164,140,115,134,84,41,238,57,67,215,202,246,187,192,1,82,242,115,134,230,73,249,157,51,116,130,212,235,231,12,1,110,124,19,81,121,0,104,52,254,15,124,0,0,52,26,255,23,62,0,0,26,141,127,132,15,0,128,18,113,160,154,150,194,206,218,68,96,14,82,171,43,219,193,21,150,13,0,242,197,121,232,7,0,64,163,113,62,124,0,0,52,26,223,130,15,0,128,70,227,219,240,1,0,208,104,124,7,62,0,200,24,127,48,236,133,117,143,151,207,206,207,174,220,191,156,191,109,10,126,186,78,218,124,190,60,26,230,183,91,30,94,13,220,114,249,165,246,94,59,185,242,107,225,206,237,173,145,253,231,166,237,214,163,191,118,124,46,252,26,56,101,115,83,227,73,233,213,87,80,205,131,74,219,20,194,37,245,182,1,223,34,188,252,189,58,230,215,54,168,253,120,180,162,244,25,102,159,124,27,137,147,35,74,51,186,182,167,204,167,195,123,58,252,86,226,125,106,194,108,197,221,230,188,167,86,20,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,77,240,1,85,143,87,252,241,112,209,148,195,57,58,83,173,107,243,155,151,194,79,45,82,7,127,60,92,102,187,5,233,164,26,86,148,183,68,233,233,199,165,192,242,255,241,112,220,82,73,247,15,208,43,179,151,88,53,246,15,48,101,17,217,63,32,159,189,196,188,251,7,176,239,250,236,37,86,204,254,1,214,94,98,226,251,7,100,177,151,24,219,63,64,215,242,219,63,32,253,94,98,240,1,240,1,240,1,240,1,240,1,240,1,240,1,205,245,1,85,143,7,236,59,92,52,229,112,142,206,84,235,218,95,194,121,231,240,41,105,235,81,86,217,244,218,229,105,171,58,86,148,183,68,233,233,39,161,176,239,240,190,149,143,242,193,7,192,7,192,7,192,7,100,135,203,57,43,201,183,202,34,37,143,214,235,90,231,109,114,21,164,120,171,2,82,188,93,9,77,244,158,133,1,64,51,240,207,88,123,33,140,137,122,220,180,176,18,89,113,46,142,118,94,82,100,73,215,73,43,79,173,213,175,141,39,234,230,103,50,203,13,146,46,152,158,157,34,82,179,236,106,239,231,159,37,222,173,199,77,123,183,158,63,231,180,156,196,75,102,85,155,60,233,58,105,229,37,111,89,109,156,142,246,187,117,243,51,153,229,6,73,23,76,207,78,17,169,89,118,181,247,243,7,162,160,236,132,14,0,88,24,208,68,124,169,97,113,99,160,169,248,76,15,88,122,62,117,216,183,175,215,244,148,37,142,236,203,150,222,204,190,60,108,97,110,8,213,121,99,105,243,133,57,127,160,210,54,16,37,93,114,233,147,149,116,150,178,174,253,148,236,59,101,107,183,88,254,222,122,231,201,61,14,109,94,222,15,12,231,173,155,178,218,190,218,79,52,80,5,252,43,198,196,0,23,142,31,170,179,116,201,165,79,86,210,89,202,186,246,83,178,239,148,173,221,226,248,51,78,222,122,231,201,61,14,109,94,222,227,135,242,214,77,89,109,31,159,239,175,43,125,74,122,148,116,201,165,79,86,210,89,202,186,246,83,178,239,148,173,221,226,248,127,126,138,191,222,121,114,143,67,155,151,247,215,35,121,235,166,172,182,175,246,19,221,43,248,183,74,246,166,255,29,125,124,32,17,230,87,58,130,16,37,93,114,233,147,149,116,150,178,174,253,148,236,59,101,107,183,88,254,222,122,231,201,61,14,109,94,222,249,195,121,235,166,172,182,175,246,19,13,0,213,192,251,134,223,135,39,5,0,26,140,3,135,15,132,15,0,128,2,240,67,196,40,10,199,165,61,166,243,35,134,171,75,217,162,224,167,116,68,227,255,143,49,53,80,21,61,240,229,200,91,186,178,106,15,235,3,128,106,227,50,244,141,98,97,220,112,181,40,59,75,89,215,126,74,227,42,227,137,139,145,196,205,133,253,50,239,84,69,15,124,57,226,75,23,175,68,89,181,175,142,245,101,131,25,195,213,165,108,81,240,83,154,209,248,222,152,169,129,170,232,129,47,71,222,210,149,85,251,94,179,190,159,12,87,139,178,179,148,117,237,167,244,147,202,180,66,89,146,152,124,171,162,7,190,28,121,75,87,174,238,155,131,125,166,36,45,249,107,68,78,26,3,126,91,231,109,1,197,91,88,50,142,209,103,140,172,164,236,211,123,198,72,167,79,239,91,69,205,51,70,86,83,74,214,208,59,169,247,140,145,187,232,221,148,157,49,114,15,29,36,247,82,251,140,145,251,140,235,251,187,84,157,103,140,236,79,248,103,140,28,74,216,25,35,15,208,7,233,146,169,107,233,67,244,97,186,142,62,66,253,103,140,60,74,31,163,115,200,227,84,228,140,145,105,178,200,25,35,235,169,117,198,200,6,67,218,39,232,66,242,36,181,206,24,121,138,186,207,24,57,209,248,60,137,184,207,24,121,154,62,67,189,103,140,236,148,206,38,236,140,145,115,72,216,25,35,223,36,246,25,35,27,13,158,207,26,127,207,81,118,198,200,119,201,247,200,5,228,66,114,17,217,68,159,167,47,208,205,148,119,198,200,22,122,25,97,103,140,92,78,172,51,70,94,164,47,81,235,140,145,151,169,200,25,35,175,80,118,198,200,171,116,41,121,141,122,207,24,121,157,222,70,222,160,236,140,145,229,70,169,55,233,10,178,149,178,51,70,182,209,183,168,247,140,145,183,169,243,140,145,181,132,157,49,178,142,108,167,230,25,35,59,232,122,50,68,253,103,140,180,105,216,25,35,195,212,58,99,100,39,21,63,99,68,149,236,51,70,70,168,251,140,145,101,18,239,140,145,93,212,62,99,228,0,137,157,49,50,74,195,207,24,233,208,221,103,140,80,75,155,115,165,121,146,251,140,17,162,72,10,75,97,103,140,200,202,2,137,42,138,194,63,99,68,85,236,51,70,198,41,238,51,70,198,43,236,140,145,19,164,168,51,70,250,149,147,165,150,50,65,153,168,76,82,22,75,147,149,1,101,138,50,168,212,231,140,145,252,176,20,253,128,198,224,71,83,203,176,0,88,88,213,113,7,90,168,49,58,230,203,145,183,116,176,176,98,240,31,24,107,5,18,226,10,216,78,79,224,86,248,90,0,182,211,104,236,57,84,78,217,94,212,7,108,7,0,0,160,46,184,13,189,24,0,104,52,110,135,15,0,128,70,227,63,123,52,162,249,83,68,106,1,0,40,8,152,193,209,28,96,142,80,147,176,26,122,175,137,142,170,218,82,89,203,149,79,61,195,168,90,105,189,243,44,188,115,74,93,36,125,87,102,146,190,59,130,210,123,34,57,237,155,153,44,251,165,160,244,95,149,122,183,219,191,54,150,4,196,193,165,248,127,31,128,237,52,26,255,141,40,34,144,16,255,3,219,233,34,122,237,176,9,239,218,97,227,158,241,103,174,29,150,137,174,41,68,37,222,181,195,172,28,91,59,60,133,12,146,169,196,94,59,252,142,221,171,84,157,107,135,117,141,191,118,88,215,216,218,97,246,61,205,177,186,213,191,118,120,22,153,77,230,24,247,68,214,14,31,71,68,214,14,127,138,88,107,135,63,219,205,189,176,251,105,174,29,254,60,113,175,29,54,101,113,175,29,62,149,156,70,188,107,135,117,237,27,18,91,59,172,107,97,107,135,117,205,94,59,124,190,241,235,91,198,223,183,201,119,198,184,92,96,124,95,68,46,38,151,144,239,147,31,16,222,218,225,75,187,87,75,186,159,230,218,97,118,101,173,29,62,127,146,200,218,97,93,99,107,135,175,51,190,175,39,222,181,195,183,146,219,140,251,108,237,176,153,127,5,89,73,216,218,97,227,29,148,120,215,14,223,75,156,107,135,117,141,173,29,214,181,71,136,185,118,88,215,214,27,127,254,181,195,207,145,176,181,195,186,102,173,29,222,70,196,215,14,27,246,185,123,237,240,68,201,189,118,216,176,78,206,218,97,227,173,107,247,218,97,93,99,107,135,15,148,194,215,14,207,148,118,175,29,222,173,205,185,198,181,123,237,240,135,165,143,116,211,217,218,225,99,165,5,210,113,198,47,254,218,97,195,26,119,175,29,102,191,156,107,135,143,151,216,218,97,93,139,90,59,172,107,39,75,167,72,167,74,167,73,167,75,139,165,51,164,51,165,179,164,179,37,172,29,214,181,91,218,248,31,160,217,109,157,183,5,20,111,97,167,36,138,120,212,105,15,145,105,4,123,136,96,15,17,236,33,130,61,68,220,184,44,69,92,103,88,46,134,79,145,216,41,215,67,206,186,219,14,80,29,252,251,36,232,0,72,134,95,34,38,40,136,139,219,23,183,195,82,197,239,38,225,29,55,135,56,231,139,219,219,250,197,165,184,184,157,135,102,179,167,37,34,235,108,165,12,233,131,242,199,215,194,175,166,198,227,201,215,9,223,174,69,237,137,71,207,155,34,82,179,236,108,192,207,191,41,184,124,36,252,119,94,124,128,250,107,16,109,218,27,88,50,18,254,59,47,62,64,253,53,136,54,237,13,156,135,118,68,75,193,118,82,33,233,28,33,54,54,104,206,17,210,181,131,100,74,14,150,15,145,131,230,8,189,95,30,36,135,202,246,216,32,187,191,79,247,83,124,108,144,229,102,115,132,166,143,141,96,249,199,6,15,147,15,151,69,231,8,137,141,13,26,35,49,99,99,131,38,39,231,28,161,233,114,244,216,32,131,127,142,208,17,178,200,216,224,57,45,107,108,240,72,67,115,71,25,127,51,228,239,144,191,106,217,99,131,86,203,240,198,6,141,152,183,103,108,144,221,183,198,6,217,181,232,28,161,163,229,165,100,166,236,30,27,100,57,172,57,66,203,187,191,86,116,63,217,28,161,89,114,248,28,161,181,228,171,45,54,54,168,107,225,115,132,116,109,147,241,23,61,71,104,182,156,108,108,80,215,68,231,8,125,173,229,28,27,156,43,135,143,13,26,26,224,204,17,242,142,13,206,147,231,119,199,111,216,216,160,174,45,232,230,141,55,71,200,176,70,233,24,249,111,91,34,99,131,65,207,62,230,8,1,64,21,113,53,70,43,98,226,220,113,229,241,126,100,36,126,74,94,28,1,232,14,62,160,120,172,27,137,159,146,23,71,0,186,3,170,129,107,208,147,171,1,174,245,180,210,175,61,191,175,203,180,21,151,198,160,118,61,236,39,54,46,43,177,31,240,232,72,252,148,188,56,2,208,29,80,60,126,3,159,13,0,128,7,120,23,168,3,240,46,32,142,163,90,222,59,51,124,119,142,110,197,167,59,179,149,133,116,139,198,23,167,137,139,99,243,186,98,119,137,43,57,101,103,37,210,192,236,214,156,214,26,65,73,54,24,249,230,6,112,217,44,64,99,171,16,31,218,175,244,171,161,235,46,230,117,101,152,31,32,201,126,253,241,181,48,167,127,110,127,18,237,121,241,219,88,207,219,49,9,90,236,188,254,243,99,73,186,36,147,122,53,13,111,142,22,95,18,104,186,237,192,194,128,122,99,53,162,99,128,3,233,231,10,179,253,4,41,225,239,39,104,238,35,228,221,79,48,159,125,132,242,220,79,112,67,87,218,176,253,4,249,251,8,241,246,19,140,187,143,144,123,63,193,44,246,17,186,113,106,156,253,4,151,18,255,126,130,108,31,33,247,92,97,115,31,161,232,253,4,189,251,8,5,205,21,14,223,71,40,217,126,130,206,185,194,98,251,9,250,247,17,138,218,79,80,108,31,33,231,126,130,230,62,66,34,115,133,189,251,8,153,251,9,138,204,21,14,223,71,8,123,138,54,111,79,209,110,140,2,123,138,98,79,81,248,0,248,0,248,0,248,128,30,88,51,244,228,46,177,123,73,115,85,163,70,85,148,175,234,114,150,175,233,186,104,8,253,0,244,3,208,15,192,187,0,124,0,124,0,124,0,222,5,234,138,87,57,99,176,171,166,38,45,89,137,145,187,138,207,52,92,51,38,223,157,181,159,17,153,183,5,84,213,194,240,46,128,126,0,250,1,232,7,224,172,49,134,119,237,108,110,221,1,88,24,250,1,232,7,160,31,128,126,64,211,251,1,63,70,63,0,128,133,53,26,91,209,66,0,44,172,209,248,2,86,117,1,37,90,88,189,236,239,94,236,139,1,0,0,0,0,37,227,62,252,111,12,0,141,198,253,240,1,64,32,30,128,117,0,64,76,124,108,180,55,121,85,177,46,189,84,255,42,212,186,153,250,204,30,127,51,250,41,165,56,94,249,229,46,94,111,197,148,233,5,11,171,31,229,102,225,79,70,123,147,87,21,235,210,75,245,175,66,173,155,169,207,236,241,71,163,189,201,171,138,117,233,165,250,87,161,214,217,82,206,119,79,209,224,245,2,251,116,83,197,247,20,101,185,167,145,171,228,233,221,171,171,229,170,173,23,224,237,41,202,95,47,112,141,156,205,158,162,225,235,5,188,123,138,178,251,201,214,11,240,246,20,181,215,11,88,123,138,138,174,23,176,246,20,45,99,189,64,252,61,69,175,149,227,238,41,202,95,47,16,182,167,104,218,245,2,98,123,138,98,15,17,172,25,74,238,3,176,102,8,107,134,122,21,127,60,218,155,188,170,88,151,94,170,127,21,106,221,76,125,102,143,63,24,237,77,94,85,172,75,47,213,191,10,181,110,166,62,179,199,239,65,143,0,44,204,192,11,59,189,176,238,241,242,217,249,217,149,251,151,243,183,77,193,79,215,166,253,124,139,207,151,71,195,252,118,203,195,171,129,91,46,191,212,222,107,39,87,126,45,220,185,189,53,178,255,220,180,221,122,244,215,142,207,133,95,3,167,108,110,106,60,41,189,250,10,170,121,80,105,155,66,184,164,222,54,224,91,132,151,191,87,199,252,218,6,181,31,143,86,148,62,195,236,147,111,35,113,114,68,105,198,223,94,214,245,195,83,253,119,253,86,226,125,106,194,108,197,221,230,188,167,54,204,106,244,86,61,60,22,144,30,125,19,70,209,218,46,60,82,192,60,107,50,33,77,105,41,118,105,121,66,254,117,170,10,212,196,117,125,184,3,235,7,242,4,44,172,242,192,46,47,0,44,12,0,128,146,240,40,86,122,150,142,229,240,210,0,44,76,16,223,24,137,155,22,86,34,43,206,197,209,206,75,138,44,233,58,105,229,169,181,250,181,241,55,70,204,207,100,150,27,36,93,48,61,59,69,164,102,217,213,222,207,31,168,59,30,67,95,17,40,4,88,47,128,245,2,88,47,128,245,2,117,198,255,160,231,3,192,118,42,133,245,232,193,2,0,0,0,128,11,27,42,252,127,35,226,1,136,7,32,30,128,120,0,192,199,147,120,175,1,26,0,244,3,208,15,64,63,160,217,253,128,94,243,1,79,79,133,15,128,15,128,15,168,230,187,192,62,29,254,181,247,206,62,157,164,84,173,223,98,20,246,233,228,95,207,50,202,151,209,158,81,178,167,171,147,72,233,36,28,242,214,116,22,244,235,98,13,98,120,119,135,127,109,98,227,212,224,52,81,170,214,111,49,10,239,238,228,95,207,50,202,151,209,158,81,178,167,171,147,72,233,36,28,242,214,116,22,244,235,98,13,101,98,41,71,71,171,166,38,45,89,5,172,174,120,36,114,205,152,124,119,34,98,90,83,11,3,0,32,59,108,130,39,4,124,120,30,86,1,0,37,226,39,25,239,149,247,66,14,79,244,230,158,240,18,91,224,235,0,160,166,192,158,162,64,47,225,239,59,69,150,92,172,167,149,55,61,133,162,80,101,73,197,101,251,251,78,89,246,149,158,119,82,124,84,53,191,143,85,179,163,249,241,88,180,62,145,136,243,198,216,61,203,79,238,230,243,178,163,236,127,151,254,127,220,43,9,250,200,159,82,139,148,208,217,15,248,244,24,231,63,21,150,224,143,198,118,114,126,53,245,187,192,103,10,168,245,194,4,60,142,23,44,115,130,145,239,181,174,22,174,155,82,182,213,53,25,119,118,138,47,9,0,176,176,234,224,230,78,241,37,129,250,224,166,148,255,67,111,155,90,134,109,2,113,240,141,78,241,37,129,38,216,71,250,242,176,176,98,112,67,167,248,146,0,0,11,3,0,32,31,188,141,121,23,49,241,47,157,226,75,2,64,47,89,24,246,16,193,254,1,216,63,0,251,7,212,25,215,118,138,47,9,0,189,100,97,232,7,160,31,128,126,0,250,1,117,198,178,78,241,37,1,0,22,86,29,252,164,83,124,73,0,128,133,85,7,63,239,20,95,18,0,96,97,213,193,21,157,226,75,2,0,44,172,58,248,89,167,248,146,0,0,11,171,14,254,181,83,124,73,0,128,133,85,7,255,220,41,190,36,0,192,194,0,160,55,49,132,217,250,181,195,7,70,161,3,0,182,211,100,28,131,118,4,96,59,141,198,239,160,29,1,216,78,42,216,235,5,6,38,155,235,5,126,166,154,235,5,126,174,254,66,253,165,250,43,245,42,245,106,245,26,213,92,47,112,173,106,173,23,232,244,57,215,11,80,194,214,11,252,90,117,175,23,184,78,93,170,218,235,5,174,87,237,245,2,55,168,251,16,93,251,141,234,92,47,176,63,49,215,11,44,83,157,235,5,126,171,30,74,216,122,129,27,213,155,212,105,228,102,117,58,185,69,189,85,189,77,13,90,47,112,187,58,151,220,161,186,215,11,44,87,173,245,2,43,212,149,170,185,94,96,202,100,86,246,247,201,42,213,92,47,176,90,181,214,11,172,81,249,235,5,238,84,217,122,129,187,84,123,189,192,221,234,23,201,61,170,185,94,224,68,114,175,122,18,177,214,11,220,167,218,235,5,238,87,217,122,129,7,84,107,189,192,131,42,91,47,112,14,9,90,47,176,86,213,200,55,137,115,189,192,67,234,183,200,195,42,91,47,176,78,253,46,249,30,185,128,92,72,248,235,5,30,49,120,61,170,178,245,2,151,17,182,94,224,114,242,152,106,174,23,120,92,93,175,38,91,47,176,148,240,215,11,108,80,217,122,129,229,221,82,214,122,129,39,84,107,189,192,147,42,91,47,240,148,250,180,106,174,23,120,70,221,168,178,245,2,107,9,91,47,176,142,4,175,23,120,86,245,174,23,120,78,141,94,47,176,73,13,91,47,240,188,202,214,11,168,146,200,122,129,23,84,123,189,192,102,117,112,178,181,94,224,0,201,90,47,176,69,13,95,47,240,162,202,214,11,188,52,182,51,233,43,234,92,105,158,100,175,23,120,85,53,215,11,188,166,190,174,218,235,5,222,80,121,235,5,222,84,183,170,246,122,129,109,234,91,170,123,189,192,219,234,231,164,19,36,107,189,192,118,117,135,186,72,26,82,219,106,179,214,11,124,100,180,248,146,0,0,11,171,14,230,67,207,0,108,167,209,152,139,118,4,96,59,169,128,253,3,176,127,0,246,15,104,246,254,1,126,31,208,140,152,160,229,3,16,19,68,76,48,44,38,104,251,128,102,199,4,207,239,156,95,218,172,199,40,206,34,146,241,243,228,89,167,243,27,56,75,148,87,231,106,235,33,111,233,156,244,139,209,132,201,37,46,47,244,3,208,15,64,63,160,217,253,128,244,62,64,215,14,146,41,57,88,62,68,14,242,1,239,151,7,201,161,178,237,3,116,45,27,31,112,171,236,244,1,135,201,135,203,162,62,96,154,44,226,3,140,183,175,49,31,160,107,183,201,204,7,28,168,90,62,96,186,28,229,3,238,232,74,199,124,192,114,217,246,1,59,165,35,100,17,31,160,107,150,15,56,82,126,72,61,74,126,88,157,33,187,125,128,245,188,242,124,128,174,93,70,86,200,193,62,96,165,28,237,3,62,51,200,124,192,209,242,82,50,83,118,251,128,207,14,26,250,216,237,3,86,203,204,7,176,82,204,7,204,146,189,62,96,225,160,219,7,232,26,243,1,134,156,93,31,176,70,230,251,0,93,219,100,252,241,125,192,157,242,241,131,150,15,152,45,39,243,1,186,230,246,1,203,164,32,31,240,181,150,211,7,204,149,195,125,128,174,57,125,192,221,242,61,50,207,7,204,147,231,203,150,15,208,181,5,198,95,92,31,96,68,167,164,99,100,81,31,192,71,175,204,15,184,180,83,124,73,0,232,37,11,195,184,0,198,5,48,46,128,125,133,155,137,95,237,196,255,84,0,44,12,0,202,67,167,14,107,245,27,176,159,192,11,59,189,176,238,241,242,217,249,217,149,251,151,243,183,77,193,79,215,166,253,124,139,207,151,71,195,252,118,203,195,171,129,91,46,191,212,222,107,39,87,126,45,220,185,189,53,178,255,220,180,221,122,244,215,142,207,133,95,3,167,108,110,106,60,41,189,250,10,170,121,80,105,155,66,184,164,222,54,224,91,132,151,191,87,199,252,218,6,181,31,143,86,148,62,195,236,147,111,35,113,114,68,105,198,223,94,214,117,223,30,254,187,126,43,241,62,53,97,182,226,110,115,222,83,27,102,53,122,11,255,43,53,5,125,19,70,209,218,46,72,123,228,207,131,76,72,37,97,236,210,242,132,252,235,84,21,168,137,235,250,24,198,5,128,92,1,11,171,58,228,17,232,0,128,133,1,0,80,146,135,216,163,217,245,175,2,86,98,228,6,128,133,1,2,160,240,215,0,0,0,64,198,80,240,127,11,0,52,26,42,124,0,0,84,4,227,240,52,2,153,97,60,172,201,135,254,6,232,164,133,118,7,198,48,9,182,224,195,100,232,4,0,0,192,135,65,248,70,0,104,52,166,194,7,0,64,69,176,7,158,70,0,104,36,246,196,179,15,0,141,198,94,240,1,0,208,104,236,13,31,208,5,206,23,192,249,2,56,95,0,231,12,53,19,183,97,85,23,0,11,203,164,31,128,51,70,154,118,198,200,62,123,224,140,17,156,49,2,0,85,198,254,120,211,79,213,15,192,25,35,56,99,4,103,140,224,140,145,250,224,220,113,73,75,238,49,138,255,1,128,60,145,189,133,137,81,132,101,3,81,56,0,61,101,0,48,176,55,188,37,208,147,22,246,222,152,62,30,241,0,196,3,16,15,64,60,160,206,120,100,180,248,146,0,80,77,11,219,53,37,9,223,186,245,3,14,222,3,253,0,244,3,208,15,64,63,192,198,247,119,22,95,18,0,170,108,97,176,108,32,10,239,199,184,0,208,67,248,151,157,197,151,4,128,42,91,88,211,44,251,255,237,44,190,36,0,84,217,194,154,102,217,24,23,0,122,207,54,147,34,217,184,0,80,44,118,214,38,10,59,90,97,73,251,100,88,18,0,244,14,14,175,64,140,114,25,86,208,118,241,23,122,147,100,112,114,42,178,230,97,188,162,228,168,66,11,213,185,253,139,210,159,201,39,45,55,111,249,108,168,134,227,203,21,176,176,226,100,112,114,42,178,230,97,188,162,228,168,66,11,213,185,253,139,210,159,201,39,45,55,111,249,108,168,134,227,228,10,88,88,113,50,56,57,21,89,243,48,94,81,114,84,161,133,234,220,254,69,233,207,228,147,150,155,183,124,54,84,1,0,224,1,241,0,19,95,208,235,39,67,242,61,68,156,156,138,172,121,24,175,40,57,170,208,66,117,182,193,162,244,103,242,73,203,205,91,62,27,170,0,0,160,31,224,6,246,15,192,186,65,172,27,108,246,186,65,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,236,33,2,228,15,172,23,200,2,88,47,0,100,129,111,99,237,48,0,11,107,52,190,133,22,2,96,97,141,198,249,104,33,0,22,150,3,102,97,175,58,0,0,0,0,112,97,118,133,255,111,196,216,32,198,6,49,54,136,249,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,152,39,88,53,252,117,167,126,148,243,165,93,39,196,211,67,181,180,150,94,26,39,133,108,234,38,70,133,229,130,5,2,64,111,227,24,140,193,103,128,7,225,41,1,88,88,163,113,63,90,8,128,133,53,26,15,160,133,0,88,152,134,57,66,24,23,192,184,0,198,6,225,3,224,3,224,3,48,54,8,36,193,7,17,155,5,128,70,227,67,240,1,21,198,135,209,58,64,238,248,72,98,43,251,93,216,39,80,25,36,141,7,116,250,156,241,0,74,226,198,3,246,233,166,58,227,1,251,19,126,60,224,80,98,199,3,174,146,167,119,175,174,150,171,22,15,56,209,248,60,137,136,196,3,174,145,89,60,224,28,18,22,15,248,38,9,138,7,124,151,124,143,92,64,46,36,81,241,128,203,8,139,7,92,78,210,199,3,150,146,176,120,192,242,110,41,241,120,192,90,194,226,1,235,72,25,241,0,85,138,27,15,184,86,182,227,1,7,72,201,227,1,243,164,252,226,1,39,72,136,9,34,38,136,152,32,98,130,240,1,240,1,240,1,240,1,69,251,0,188,11,224,93,0,239,2,120,23,64,63,0,253,0,244,3,240,46,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,80,31,31,128,217,210,64,126,248,19,172,139,0,114,199,153,157,226,75,2,0,44,44,26,23,134,214,255,99,123,20,195,39,159,146,64,111,88,98,222,22,0,11,171,63,62,129,158,44,208,56,124,50,166,213,127,170,198,79,201,79,119,161,189,1,88,88,111,224,229,169,208,1,0,0,0,208,11,248,116,225,125,107,204,15,192,252,0,204,15,192,252,128,58,99,113,167,248,146,0,208,75,22,134,126,0,250,1,232,7,160,31,0,0,77,199,50,60,9,13,196,245,59,161,3,0,22,6,0,69,96,31,21,58,168,46,16,15,64,60,0,241,0,172,29,134,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,192,216,96,115,112,21,162,182,0,44,172,209,216,115,4,58,0,96,97,186,246,242,80,20,130,243,136,148,78,66,183,40,120,37,136,150,40,189,204,121,215,58,77,139,198,177,138,44,165,44,223,18,202,144,33,140,99,22,210,216,52,162,168,189,20,9,93,139,159,242,82,42,186,69,193,43,65,180,68,233,101,206,187,214,34,244,131,242,216,62,160,88,205,151,111,9,101,200,16,198,49,11,105,108,26,81,212,94,141,132,174,197,79,121,53,21,221,162,224,149,32,90,162,244,50,231,93,107,17,250,65,121,108,31,80,172,230,203,183,132,50,100,8,227,152,133,52,54,141,40,106,120,107,3,138,193,37,114,213,36,250,208,48,90,133,225,157,67,81,8,206,35,82,186,78,136,174,79,250,26,87,89,103,113,172,162,119,181,80,15,75,140,67,35,138,26,188,32,208,84,124,1,123,198,2,53,196,23,97,183,0,0,84,22,203,38,215,86,114,236,31,208,64,124,0,59,63,3,176,48,160,118,88,132,119,1,0,104,52,78,132,15,0,128,70,227,36,248,0,0,0,42,11,196,4,155,139,69,157,42,82,95,212,9,43,105,167,241,174,226,74,22,93,114,81,101,118,155,207,79,146,226,234,88,29,109,22,41,99,20,69,51,221,202,85,172,142,190,212,169,34,245,47,117,194,74,218,105,188,171,184,146,69,151,252,82,101,172,54,63,73,138,171,99,117,180,89,164,140,81,20,205,116,43,87,177,58,90,172,87,145,122,120,57,59,149,119,21,151,67,116,201,124,117,84,141,214,42,174,142,213,209,102,245,100,252,232,216,46,206,199,22,186,155,243,137,157,42,82,63,177,19,86,210,78,227,93,197,149,44,186,228,137,149,249,159,43,63,73,138,171,99,117,180,89,164,140,81,20,205,116,43,87,177,58,250,195,78,21,169,255,97,231,127,119,68,168,242,174,226,74,22,93,242,15,43,99,181,249,73,82,92,29,171,163,205,34,101,252,242,30,34,28,45,190,162,252,177,167,40,246,20,197,158,162,216,83,180,215,240,228,174,236,114,85,85,250,242,229,171,186,156,104,73,0,0,154,137,211,141,55,134,197,49,230,146,225,93,0,239,2,120,23,192,187,64,51,113,35,122,106,0,44,172,7,112,61,244,12,192,118,26,141,147,11,221,13,109,252,132,180,20,118,98,94,122,67,109,7,200,11,191,130,47,7,96,59,57,99,251,246,94,149,174,218,53,203,175,78,255,58,21,86,221,171,237,223,68,156,82,104,127,174,31,239,2,176,29,160,98,184,26,253,57,0,182,211,104,44,69,59,2,176,157,70,227,215,104,71,0,182,211,104,92,131,118,4,96,59,141,198,85,104,71,0,182,211,104,92,139,118,4,96,59,0,16,11,103,98,127,114,192,1,172,27,196,186,65,172,27,108,246,186,65,248,0,248,0,248,0,248,128,112,31,176,146,242,124,64,167,79,239,91,69,77,31,176,154,82,178,134,222,73,189,62,224,46,122,55,101,62,224,30,58,72,238,165,182,15,184,207,184,190,159,122,125,192,254,132,239,3,14,37,204,7,60,64,31,164,211,200,90,250,16,125,152,174,163,143,80,191,15,120,148,62,70,69,125,192,52,89,196,7,172,167,150,15,216,96,72,251,4,93,72,158,164,150,15,120,138,186,125,192,137,198,231,73,196,237,3,158,166,207,80,175,15,216,41,157,77,152,15,56,135,132,249,128,111,18,219,7,108,52,120,62,107,252,61,71,153,15,248,46,249,30,185,128,92,72,46,34,155,232,243,244,5,186,153,242,124,192,22,122,25,97,62,224,114,98,249,128,23,233,75,212,242,1,63,154,40,226,3,126,60,145,249,128,87,233,82,242,26,245,250,128,215,169,229,3,150,19,211,7,108,165,204,7,108,163,111,81,175,15,120,155,58,125,192,90,194,124,192,58,178,157,154,62,96,7,93,79,134,168,223,7,180,105,152,15,248,143,137,150,15,216,73,197,125,128,42,217,62,224,138,137,110,31,176,76,226,249,128,93,212,246,1,7,72,204,7,140,210,112,31,208,161,187,125,0,181,125,192,60,201,237,3,136,34,41,150,15,144,149,5,18,85,20,37,218,7,140,83,220,62,96,188,194,124,192,9,82,148,15,232,87,78,150,90,202,4,101,162,50,73,89,44,77,86,6,148,41,202,160,82,198,254,1,82,135,127,29,150,47,30,85,235,183,24,5,169,147,127,61,203,40,95,70,123,230,43,187,8,213,36,156,243,214,116,22,244,203,180,134,191,76,24,55,58,7,241,38,0,0,74,199,95,215,192,19,125,21,222,18,0,114,194,215,240,116,149,132,191,129,230,129,16,12,116,248,215,97,249,226,81,181,126,139,81,24,232,228,95,207,50,202,151,209,158,249,202,46,66,53,9,231,188,53,157,5,253,186,88,3,80,38,254,22,255,247,2,169,128,249,1,152,31,128,249,1,216,91,188,24,40,29,254,117,88,190,120,84,173,223,98,20,148,78,254,245,44,163,124,25,237,105,162,61,46,31,217,69,168,38,225,156,183,166,179,160,239,166,81,174,101,167,199,222,29,254,117,88,190,120,84,173,223,98,20,246,238,228,95,207,50,202,151,209,158,249,202,46,66,53,9,231,188,53,157,5,253,186,88,131,24,246,232,240,175,195,242,197,163,106,253,22,163,176,71,39,255,122,150,81,190,140,246,204,87,118,17,170,73,56,231,173,233,44,232,215,197,26,196,48,181,195,191,14,203,23,143,170,245,91,140,194,212,78,254,245,44,163,124,25,237,153,175,236,34,84,147,112,206,91,211,89,208,175,139,53,0,22,254,30,49,250,28,241,117,104,55,23,96,92,0,227,2,24,23,192,184,64,30,248,242,104,213,189,95,214,18,86,191,198,64,177,45,87,148,69,84,213,242,78,170,252,19,145,181,132,213,175,49,80,108,203,21,101,17,85,181,188,191,168,252,19,145,181,132,213,175,49,80,108,203,21,101,17,85,181,188,63,175,252,19,145,181,132,213,175,49,80,108,203,21,101,17,176,60,32,46,254,47,226,235,0,96,224,227,240,158,0,44,12,104,36,254,177,162,253,128,127,66,255,4,72,128,145,209,250,80,173,6,55,0,122,7,170,140,243,241,127,97,69,176,166,49,30,162,184,121,130,63,108,137,205,19,188,180,85,246,60,193,103,90,226,243,4,151,180,170,60,79,112,211,228,94,152,39,120,121,171,185,243,4,127,212,234,165,253,3,138,193,225,157,222,228,149,37,174,24,196,255,242,0,31,199,235,245,147,225,220,113,89,112,42,178,230,97,188,162,228,168,66,11,213,217,6,139,210,159,201,39,45,55,111,249,108,168,102,247,46,192,206,25,178,223,5,40,137,187,102,104,31,226,125,23,8,63,103,200,124,23,184,74,158,222,189,186,90,174,218,154,33,222,57,67,252,119,129,107,228,120,231,12,185,223,5,236,115,134,194,223,5,188,231,12,37,127,23,88,74,194,222,5,172,115,134,68,223,5,172,115,134,202,88,51,228,60,103,72,236,93,224,90,217,123,206,80,178,119,1,239,57,67,89,174,25,138,62,103,40,175,243,6,225,3,224,3,224,3,122,195,7,56,159,243,133,21,232,105,198,149,33,249,187,128,147,83,145,53,15,227,21,37,71,21,90,168,90,237,95,37,234,94,62,105,185,121,203,103,67,53,28,159,171,128,133,21,39,131,147,83,145,53,15,227,21,37,71,21,90,168,206,237,95,148,254,76,62,105,185,121,203,103,67,53,143,120,128,174,29,36,83,114,176,124,136,28,244,46,240,126,121,144,28,42,219,239,2,236,126,178,119,1,93,155,62,214,99,245,191,11,28,38,31,46,103,123,238,176,209,243,26,123,23,24,243,195,142,119,129,233,114,244,187,0,131,255,93,224,8,161,119,1,93,179,222,5,142,52,52,119,148,241,55,67,118,191,11,88,45,195,123,23,208,181,172,222,5,142,150,151,146,153,178,251,93,128,229,240,190,11,176,79,246,46,48,75,142,122,23,208,53,246,46,160,107,225,239,2,186,182,201,248,139,126,23,152,45,39,123,23,208,53,209,177,193,57,178,243,93,96,174,28,254,46,96,104,64,224,93,96,158,60,95,182,222,5,116,109,65,55,111,188,119,1,195,26,165,99,100,209,119,1,62,122,117,108,16,136,198,133,152,135,4,196,196,63,97,95,67,0,168,13,246,27,128,14,196,48,56,90,62,5,160,185,22,150,196,122,196,202,164,183,203,139,123,164,167,120,73,15,212,227,251,232,181,23,142,31,84,84,231,255,12,91,200,28,123,226,127,113,160,68,11,251,215,61,178,166,8,203,142,139,203,118,66,7,0,44,12,115,133,49,79,16,243,4,49,79,176,218,120,96,66,94,148,63,172,231,39,245,131,19,242,163,13,212,5,121,90,88,21,250,1,58,206,25,74,113,206,208,191,239,129,115,134,112,206,80,175,159,51,212,20,28,137,248,11,80,50,78,84,161,3,0,0,248,184,12,35,138,64,169,88,2,11,172,61,142,106,121,239,204,240,221,57,186,21,159,238,204,86,22,210,45,26,95,156,38,46,142,205,235,138,221,37,174,228,148,157,149,72,3,179,91,115,90,107,4,37,217,96,228,155,27,192,101,179,0,141,173,66,124,104,191,210,175,246,135,229,152,215,149,97,126,128,36,251,245,199,215,194,156,254,185,253,73,180,231,197,229,177,60,212,49,9,90,236,188,254,243,99,73,186,36,147,122,197,69,190,99,131,119,83,94,76,240,62,170,107,247,83,70,85,124,108,240,1,250,32,157,70,214,210,135,232,195,116,29,125,132,22,27,19,220,208,149,54,238,216,224,211,148,23,19,60,155,100,51,54,184,137,62,79,95,160,155,41,47,38,184,133,122,199,6,95,164,47,81,43,38,72,6,210,142,13,190,78,189,99,131,91,105,188,177,193,237,52,60,38,216,166,85,24,27,220,69,227,142,13,118,232,238,152,32,181,180,25,62,54,40,43,11,36,170,136,196,4,199,41,201,199,6,91,202,4,101,162,50,73,89,44,77,86,6,148,41,202,160,82,212,62,66,240,1,197,250,128,190,73,66,62,96,82,113,62,224,92,185,170,62,64,154,212,108,31,32,79,234,149,113,129,203,18,239,35,244,185,145,186,215,29,168,54,202,178,176,249,227,170,165,135,234,226,76,140,234,1,176,48,0,104,48,174,192,168,69,79,224,39,104,71,32,33,254,103,23,116,208,11,248,47,180,35,0,219,1,18,97,57,44,0,128,133,105,88,51,84,206,154,161,162,206,28,101,159,88,51,132,53,67,88,51,196,199,177,136,218,22,134,175,54,242,148,211,186,88,24,246,16,193,30,34,216,67,164,30,123,136,124,99,66,51,247,16,137,194,7,39,226,127,89,32,25,254,11,99,74,194,248,120,172,245,201,159,200,116,53,243,255,11,236,79,125,82,205,139,114,158,82,243,241,169,210,86,128,127,122,140,243,159,10,75,240,71,153,237,145,244,153,2,106,189,48,1,143,227,5,203,156,160,150,103,97,69,227,127,224,47,1,160,209,120,30,209,179,158,194,207,114,246,233,63,223,35,153,229,252,162,135,255,175,201,230,25,18,163,194,114,225,153,21,193,125,195,77,173,249,15,41,90,191,151,45,172,185,150,29,23,255,13,79,9,192,194,106,128,53,163,245,163,156,134,246,249,61,213,31,142,167,135,53,61,246,204,56,235,147,77,221,196,168,176,92,113,248,21,55,79,240,135,45,177,121,130,151,182,202,158,39,248,76,75,124,126,192,146,22,230,9,230,61,79,240,242,86,115,231,9,254,168,133,121,130,171,70,235,71,57,95,218,117,66,60,61,92,215,99,49,65,103,237,179,177,8,49,42,44,87,147,45,240,240,78,111,242,202,18,87,52,114,230,46,144,6,183,142,246,34,239,60,107,117,43,250,1,208,131,171,246,69,106,130,241,130,5,2,97,24,109,53,187,254,0,0,20,129,101,152,93,218,67,184,1,253,10,32,17,126,11,63,208,35,207,208,121,157,94,228,157,103,173,206,171,105,180,16,200,203,10,138,177,8,216,29,32,134,125,251,160,131,96,28,153,177,118,102,230,162,237,185,33,84,231,141,165,205,23,228,140,189,196,176,151,24,246,18,195,94,98,205,196,79,16,229,0,122,210,194,230,78,201,158,230,63,225,45,3,0,106,243,12,237,55,0,125,3,64,92,44,107,112,143,24,241,0,196,3,16,15,64,60,0,104,22,86,225,196,229,154,226,218,73,121,80,245,247,3,126,166,154,253,128,159,171,191,80,127,169,254,74,189,74,189,90,189,70,53,251,1,215,170,254,189,197,117,237,32,153,146,131,229,67,228,95,171,238,126,192,117,234,82,149,245,3,222,47,15,146,67,229,235,85,171,31,160,107,55,168,108,111,241,223,168,188,189,197,151,169,206,126,192,111,85,115,111,241,27,213,155,212,105,228,102,117,58,185,69,189,85,189,77,101,253,128,91,101,221,209,15,56,76,62,92,158,67,110,87,231,146,59,84,119,63,96,185,106,245,3,86,168,43,85,214,15,152,38,91,253,128,85,170,217,15,88,173,90,253,128,53,170,213,15,48,188,238,88,63,64,215,110,147,239,84,23,146,3,213,187,84,179,31,48,93,254,2,185,91,253,34,185,71,181,246,22,191,87,181,247,22,191,79,61,133,220,209,149,238,116,114,191,186,92,94,76,30,80,205,126,192,78,233,136,136,189,197,215,170,108,111,113,93,179,250,1,71,202,15,169,71,201,15,171,51,228,239,144,117,170,189,183,184,213,130,206,126,192,35,170,174,61,170,254,208,72,187,140,172,144,217,222,226,143,169,102,63,224,113,117,189,106,247,3,86,202,209,253,128,207,12,178,126,192,209,242,82,50,83,118,247,3,62,59,104,232,131,108,80,205,189,197,87,203,172,31,208,245,45,228,9,117,150,108,246,3,158,84,89,63,224,41,245,105,117,225,32,235,7,60,163,110,84,205,189,197,117,141,237,45,110,200,217,237,7,172,145,189,253,128,103,85,214,15,208,181,77,198,159,217,15,120,78,117,247,3,238,148,143,31,180,250,1,179,101,179,31,176,73,13,235,7,60,175,122,247,22,215,53,119,63,96,153,100,245,3,94,80,237,126,192,102,245,61,210,215,90,206,189,197,231,202,7,73,91,212,224,126,128,174,205,146,94,84,89,63,224,37,163,45,238,150,239,145,95,81,221,123,139,191,170,126,72,154,39,207,151,95,83,95,87,89,63,64,215,22,24,127,111,168,188,126,192,155,234,86,213,238,7,108,83,223,82,173,126,128,209,43,149,142,145,223,86,157,123,139,111,87,119,168,139,164,33,181,173,122,251,1,124,160,31,80,22,86,96,238,28,0,84,2,191,196,121,131,0,44,12,0,114,197,170,221,125,158,251,177,103,65,101,145,254,172,49,59,30,16,52,46,96,198,3,236,113,1,118,63,217,89,99,186,54,125,236,173,213,63,46,96,198,3,196,198,5,236,120,64,216,184,128,51,30,192,224,28,23,96,241,128,168,179,198,24,252,227,2,71,8,157,53,118,78,203,142,7,24,117,52,254,88,60,224,175,90,225,241,0,243,142,25,15,200,230,172,49,94,60,128,229,240,158,53,214,125,226,141,79,43,30,16,124,214,216,87,91,206,120,64,208,184,128,51,30,16,54,46,96,197,3,226,158,53,230,141,7,4,143,11,248,227,1,97,227,2,44,30,16,125,214,24,139,7,176,20,59,30,16,119,92,192,140,7,252,109,75,236,172,49,62,226,196,3,174,24,137,155,118,69,70,145,231,43,114,140,96,139,211,206,75,138,44,233,58,105,93,81,72,220,191,62,109,204,62,253,92,196,44,55,72,186,96,122,118,138,72,205,178,171,189,159,127,118,253,128,149,52,168,31,176,138,154,243,3,86,83,74,214,208,59,169,183,31,112,23,189,155,178,126,192,61,116,144,220,75,237,126,192,125,198,245,253,52,94,63,224,1,250,32,157,70,214,210,135,232,195,116,29,125,132,250,251,1,143,210,199,232,28,242,56,205,174,31,176,158,90,253,128,13,134,180,79,208,133,228,73,106,245,3,158,162,209,253,128,167,233,51,212,219,15,216,41,157,77,226,157,57,186,209,224,249,172,241,247,28,117,159,57,186,137,62,79,95,160,155,41,175,31,176,133,122,251,1,47,210,151,168,213,15,120,153,138,244,3,94,161,172,31,240,42,93,74,94,163,222,249,1,175,211,219,200,27,212,234,7,188,73,87,144,173,148,245,3,182,209,183,168,183,31,240,54,229,157,57,186,157,154,253,128,29,116,61,25,162,254,126,64,155,134,205,15,24,166,86,63,96,39,77,214,15,24,161,65,227,2,206,126,192,46,234,61,115,116,148,134,247,3,58,116,119,63,128,6,247,3,136,34,41,86,63,64,86,22,72,84,81,20,126,63,64,85,236,126,192,56,197,61,63,96,188,34,118,230,104,191,114,178,212,82,38,40,19,149,73,202,98,105,178,50,160,76,81,6,21,123,126,0,124,0,124,0,124,64,179,125,128,72,95,225,140,145,184,105,103,100,212,195,57,35,199,126,162,56,237,188,164,200,146,174,147,214,25,133,188,11,212,167,141,217,167,159,139,152,229,6,73,23,76,207,78,17,169,89,118,181,247,243,207,18,167,140,196,77,59,101,36,127,206,38,238,218,35,63,218,89,215,38,79,186,78,90,167,20,226,3,138,107,227,180,180,217,167,159,139,152,229,6,73,23,76,207,78,17,169,89,118,181,247,243,207,18,139,71,226,166,45,30,201,159,115,113,180,243,146,34,75,186,78,90,139,11,241,1,245,105,99,246,233,231,34,102,185,65,210,5,211,179,83,68,106,150,93,237,253,252,1,32,8,119,99,166,34,16,19,71,134,172,71,254,38,215,235,188,174,100,195,249,13,37,191,90,125,83,216,95,190,153,147,20,91,51,164,123,148,163,141,182,229,168,53,27,111,103,196,101,71,142,210,30,214,103,181,116,219,199,101,152,203,119,167,231,238,195,1,251,176,239,242,149,30,29,187,211,81,226,88,216,209,217,173,245,31,227,59,51,151,221,3,126,48,18,55,237,7,35,249,115,46,142,118,94,82,100,73,215,73,235,7,133,244,6,235,211,198,236,211,207,69,204,114,131,164,11,166,103,167,136,212,44,187,218,251,249,3,0,80,71,220,91,201,55,181,211,71,226,166,157,62,146,63,103,19,247,237,145,31,237,172,107,147,39,93,39,173,211,71,202,182,138,178,180,192,167,205,62,253,92,196,44,55,72,186,96,122,118,138,72,205,178,171,189,159,127,126,184,31,17,37,0,232,33,96,158,32,230,9,98,158,32,230,9,54,19,127,129,216,9,0,11,107,52,174,70,11,1,176,48,65,252,195,72,220,180,127,24,201,159,115,113,180,243,146,34,75,186,78,90,255,48,82,182,85,84,171,141,217,167,159,139,152,229,6,73,23,76,207,78,17,169,89,118,181,247,243,7,162,112,21,116,5,192,194,0,0,40,9,127,185,19,58,0,128,38,227,43,240,1,0,208,104,252,21,124,0,0,52,26,231,192,7,0,64,163,241,32,230,219,2,165,97,45,172,15,112,0,231,14,227,220,97,156,59,220,236,115,135,225,3,224,3,224,3,112,246,120,111,226,119,6,234,95,135,15,246,64,29,0,49,124,40,162,173,63,156,155,45,160,31,128,126,0,250,1,232,7,52,19,231,15,227,255,30,0,22,6,0,205,197,163,24,31,1,82,227,15,240,190,14,0,240,1,0,0,212,18,135,96,174,38,0,11,107,52,190,186,11,58,0,96,97,24,27,196,216,32,198,6,49,54,216,84,156,143,126,0,0,11,67,63,0,253,0,244,3,208,15,104,172,151,254,39,244,3,0,88,88,142,56,125,92,213,37,252,138,14,43,109,2,206,24,7,11,3,248,216,111,20,58,0,96,97,0,0,240,241,36,102,18,167,4,222,5,128,106,0,239,2,81,192,184,0,198,5,48,46,128,125,132,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,48,87,184,46,184,172,50,99,144,163,56,105,26,128,189,244,60,14,84,211,82,216,89,27,175,123,144,90,93,217,14,174,176,108,64,209,144,83,172,203,56,99,160,42,146,0,176,92,32,41,200,174,114,202,230,77,13,128,229,214,29,47,142,20,67,39,57,159,23,71,242,172,253,139,120,219,235,49,75,172,15,231,184,124,147,142,11,116,250,156,227,2,148,196,29,23,216,167,155,234,28,23,216,159,240,199,5,14,37,246,184,192,85,242,244,238,213,213,114,213,198,5,78,52,62,79,34,188,113,129,51,7,220,227,2,215,200,108,92,224,28,18,54,46,240,77,18,52,46,240,93,242,61,114,1,185,144,68,141,11,92,70,216,184,192,229,36,253,184,192,82,18,54,46,176,188,91,74,124,92,96,45,97,227,2,235,72,25,227,2,170,20,119,92,224,90,217,30,23,56,64,74,62,46,48,79,202,111,92,224,4,9,123,136,84,17,47,96,205,25,0,100,132,13,35,245,163,204,104,47,156,136,182,131,237,54,187,254,79,140,84,139,78,145,148,243,165,13,212,165,45,234,98,5,254,120,192,207,84,51,30,240,115,245,23,234,47,213,95,169,87,169,87,171,215,168,102,60,224,90,53,44,30,240,107,213,29,15,184,78,93,170,218,241,128,235,85,59,30,112,131,202,226,1,191,81,121,241,128,101,170,51,30,240,91,213,140,7,220,168,222,164,78,35,55,171,211,201,45,234,173,234,109,106,80,60,224,118,117,46,185,67,117,199,3,150,171,86,60,96,133,186,82,117,199,3,86,169,102,60,96,181,106,197,3,214,168,252,120,192,157,42,139,7,220,165,218,241,128,187,213,47,146,123,84,43,30,112,175,106,199,3,238,83,237,120,192,253,42,139,7,60,160,90,241,128,7,213,240,120,192,90,213,27,15,120,72,253,22,121,88,101,241,128,117,106,120,60,224,17,131,215,163,170,51,30,240,152,106,198,3,30,87,215,171,217,198,3,54,168,254,120,192,19,170,21,15,120,82,101,241,128,167,212,167,85,51,30,240,140,186,81,21,139,7,60,171,122,227,1,207,169,209,241,128,77,106,88,60,224,121,85,60,30,240,130,106,199,3,54,171,188,120,192,22,53,60,30,240,162,202,226,1,47,141,205,97,120,69,117,199,3,94,85,205,120,192,107,234,235,170,29,15,120,67,229,197,3,222,84,183,170,118,60,96,155,250,150,234,142,7,188,173,58,227,1,219,213,29,234,34,105,72,109,171,136,7,136,225,121,252,95,13,192,194,122,0,79,142,20,95,178,124,234,64,29,0,27,40,6,79,143,20,95,178,124,234,64,111,219,38,16,7,79,141,20,95,178,124,234,64,111,219,38,16,7,207,140,20,95,178,124,234,64,111,219,38,16,7,119,87,126,255,98,160,170,120,17,51,185,186,192,30,34,216,67,4,123,136,96,15,17,0,208,181,255,25,134,14,0,160,201,248,57,124,0,80,75,124,116,8,58,64,219,3,105,16,29,15,88,73,217,39,111,237,240,42,106,198,3,86,83,74,214,208,59,169,55,30,112,23,189,155,178,120,192,61,116,144,220,75,237,120,192,125,198,245,253,93,170,226,107,135,31,160,15,210,105,100,45,125,136,62,76,215,209,71,168,63,30,240,40,125,140,206,33,143,83,145,120,192,52,89,36,30,176,158,90,241,128,13,134,180,79,208,133,228,73,106,197,3,158,162,209,107,135,159,166,207,80,111,60,96,167,116,54,137,183,118,120,163,193,243,89,227,239,57,234,94,59,188,137,62,79,95,160,155,41,47,30,176,133,122,215,14,191,72,95,162,86,60,224,101,42,18,15,120,133,178,120,192,171,116,41,121,141,122,227,1,175,211,219,200,27,212,154,43,252,38,93,65,182,82,22,15,216,70,223,162,222,120,192,219,148,183,118,120,59,53,227,1,59,232,122,50,68,253,241,128,54,13,139,7,12,83,43,30,176,147,38,91,59,60,66,221,241,128,101,18,47,30,176,139,122,231,10,143,210,240,120,64,135,238,142,7,80,75,155,254,181,195,68,145,20,150,194,226,1,178,178,64,162,138,162,240,227,1,170,98,199,3,198,41,238,120,192,120,69,108,237,112,191,114,178,212,82,38,40,19,149,73,202,98,105,178,50,160,76,81,6,21,209,120,192,81,45,239,157,25,190,59,71,183,226,123,158,153,173,44,252,215,162,241,217,249,194,247,70,252,159,114,113,108,94,87,236,46,113,37,167,236,172,68,26,152,221,154,211,90,35,40,201,6,35,223,220,0,46,155,5,104,108,21,226,67,251,149,126,181,63,44,199,188,174,12,243,3,36,217,175,63,190,22,230,244,207,237,79,162,189,116,56,38,65,139,157,215,127,126,44,73,151,148,80,47,195,163,13,69,33,56,143,72,105,43,159,63,175,104,105,81,14,233,75,69,83,225,215,36,14,199,44,107,157,84,19,65,109,17,207,46,178,211,66,16,183,188,117,197,211,64,209,28,211,214,156,159,211,180,83,43,45,234,9,238,149,119,26,0,136,253,30,140,249,1,93,60,59,20,133,224,60,34,165,147,208,45,10,94,9,162,37,74,47,115,222,181,78,211,162,113,172,34,75,41,203,183,132,50,100,8,227,152,133,52,54,141,40,106,136,7,136,1,241,128,222,139,7,124,36,86,47,184,119,227,1,240,1,240,1,77,245,1,191,11,31,0,0,141,198,4,68,195,198,48,177,214,154,200,66,250,87,17,27,42,160,53,202,180,51,62,239,122,91,126,120,109,123,181,110,0,144,37,94,135,239,7,128,140,241,6,158,170,90,226,237,29,144,30,232,237,214,224,203,5,219,1,128,172,241,38,250,1,0,0,212,6,91,225,177,186,192,186,65,172,27,196,186,65,172,27,4,128,222,198,255,229,158,254,216,194,248,217,24,118,213,58,50,82,111,233,97,75,101,202,213,171,182,195,234,21,175,110,163,181,214,68,189,165,239,53,84,181,53,248,114,245,170,237,176,122,225,185,0,202,193,219,136,178,213,18,157,90,123,140,122,75,15,91,42,83,174,94,181,29,86,47,60,23,64,57,216,142,126,0,0,0,21,4,198,5,0,0,62,0,62,32,8,103,14,69,33,56,143,72,105,43,159,63,175,104,105,81,14,233,75,69,83,225,215,36,14,199,44,107,157,84,19,65,109,17,207,46,210,200,248,21,33,153,243,214,21,79,3,69,115,76,91,115,126,78,211,78,173,180,168,39,24,94,16,104,42,218,136,94,8,0,123,137,89,192,94,98,124,212,121,47,177,225,88,62,0,251,9,194,7,68,229,216,185,7,124,64,189,124,64,60,244,174,15,192,154,33,172,25,194,154,33,172,25,10,198,89,67,246,167,24,130,243,58,83,172,107,94,110,113,110,44,167,55,55,239,94,92,73,211,229,246,215,205,93,54,138,82,88,250,89,67,241,229,72,90,27,81,57,121,237,42,78,71,68,55,254,54,246,231,59,43,102,100,139,209,56,43,231,104,88,124,30,233,235,213,68,124,160,213,236,250,3,201,177,11,49,65,1,244,183,237,207,108,104,249,175,195,242,69,83,244,230,230,221,75,203,39,190,84,238,18,238,178,81,148,194,117,19,95,142,164,181,17,149,51,170,93,195,233,36,145,132,167,133,36,54,154,141,93,135,183,86,60,30,43,7,138,150,49,26,106,219,254,204,134,150,255,58,44,95,56,174,31,240,231,102,191,197,40,168,237,60,117,150,79,186,218,86,11,179,137,91,6,226,203,201,187,119,91,40,157,29,52,190,70,111,31,184,99,32,139,214,204,91,151,106,123,249,192,138,129,116,62,64,45,221,7,208,182,253,153,13,45,255,117,88,190,104,31,224,205,205,126,139,81,160,237,60,117,150,79,58,109,211,202,248,0,158,36,52,23,31,64,5,124,64,18,189,228,173,75,154,129,15,160,165,251,128,113,109,251,51,27,90,254,235,176,124,209,62,192,155,155,253,22,163,48,174,157,167,206,242,73,31,215,30,87,25,31,192,147,100,92,46,62,96,156,128,15,72,162,151,188,117,57,46,3,31,48,174,116,31,80,109,92,63,80,28,175,27,98,243,250,205,238,18,203,50,148,243,70,97,90,55,133,228,188,89,128,202,45,130,156,110,141,200,151,222,7,120,193,243,1,73,48,35,247,152,123,122,31,0,212,9,163,136,50,3,61,136,206,144,253,153,13,45,255,117,88,190,104,138,222,220,188,123,105,249,196,151,202,93,194,93,54,138,82,184,110,226,203,145,180,54,162,114,70,181,107,56,157,36,146,240,180,144,196,70,59,57,247,3,152,156,105,173,172,131,249,1,89,183,10,251,191,26,255,95,3,128,48,148,182,253,153,13,45,255,117,88,190,112,176,120,128,55,55,251,45,70,65,105,231,169,179,124,210,149,182,82,153,152,32,79,18,37,151,152,160,34,16,19,76,162,151,188,117,169,100,16,19,84,74,143,9,142,111,219,159,217,208,242,95,135,229,139,246,1,222,220,236,183,24,133,241,237,60,117,150,79,250,248,246,248,202,248,0,158,36,227,115,241,1,227,5,124,64,18,189,228,173,203,241,25,248,128,241,165,251,128,73,109,251,51,27,90,254,235,176,124,209,62,192,155,155,253,22,163,16,175,86,226,185,173,156,118,9,119,217,40,74,225,186,137,47,71,210,218,136,202,25,213,174,225,116,146,72,114,251,128,191,84,18,27,157,148,243,243,53,41,3,31,48,169,116,31,32,183,237,207,108,104,249,175,195,242,69,251,0,111,110,246,91,140,130,220,206,83,103,249,164,203,109,185,50,253,0,158,36,114,46,253,0,89,160,31,144,68,47,121,235,82,206,192,7,200,165,251,128,86,219,254,204,134,150,255,58,44,95,180,15,240,230,102,191,197,40,196,171,149,120,110,43,167,93,194,93,54,138,82,184,110,226,203,145,180,54,162,114,70,181,107,56,157,36,146,240,180,144,196,70,91,57,63,95,76,206,86,202,245,2,173,210,125,192,228,182,253,153,13,45,255,117,88,190,104,31,224,205,205,126,139,81,136,87,43,241,220,86,78,187,132,187,108,20,165,112,221,196,151,35,105,109,68,229,140,106,215,112,58,73,36,185,125,192,95,42,137,141,78,206,249,249,154,156,65,63,96,114,233,62,96,66,219,254,204,134,150,255,58,44,95,180,15,240,230,102,191,197,40,196,171,149,120,110,43,167,93,194,93,54,138,82,184,110,226,203,145,180,54,162,114,70,181,107,56,157,36,146,240,180,144,196,70,39,228,252,124,49,57,39,164,236,7,76,40,221,7,76,108,219,159,217,208,242,95,135,229,139,246,1,222,220,236,183,24,133,120,181,18,207,109,229,180,75,184,203,70,81,10,215,77,124,57,146,214,70,84,206,168,118,13,167,147,68,18,158,22,146,216,232,196,156,159,47,38,231,196,148,62,96,98,233,62,96,176,109,127,102,67,203,127,29,150,47,154,162,55,55,239,94,90,62,241,165,114,151,112,151,141,162,20,174,155,248,114,36,173,141,168,156,81,237,26,78,39,137,36,60,45,36,177,209,193,156,159,47,38,103,90,43,27,44,221,7,72,109,251,51,27,90,254,235,176,124,209,253,0,111,110,246,91,140,66,188,90,137,231,182,114,218,37,220,101,163,40,133,235,38,190,28,73,107,19,53,46,224,175,39,159,110,56,47,17,73,36,129,113,129,36,54,42,229,252,124,73,25,196,3,164,210,125,0,246,21,182,16,189,175,112,223,158,238,223,216,87,216,68,117,247,21,158,30,107,46,62,246,22,135,15,240,223,35,123,134,149,128,15,168,186,15,56,2,62,0,62,192,223,123,219,51,142,15,8,7,124,64,213,125,64,60,52,213,7,0,64,239,66,222,19,58,96,88,61,20,133,224,60,34,165,147,208,45,10,94,9,162,37,74,47,115,222,181,78,211,162,113,172,34,75,41,203,183,132,50,100,8,227,152,133,52,54,141,40,106,171,34,161,107,241,83,86,165,162,91,20,188,18,68,75,148,94,230,188,107,45,66,63,40,143,237,3,138,213,124,249,150,80,134,12,97,28,179,144,198,166,17,69,109,101,36,140,17,139,216,41,43,83,209,45,10,94,9,162,37,74,47,115,222,181,22,161,31,148,199,246,1,197,106,190,124,75,40,67,134,48,142,89,72,99,211,136,162,86,247,119,25,156,51,4,36,197,225,216,167,171,11,156,57,138,51,71,113,230,104,175,159,57,74,247,12,59,115,244,150,161,40,232,90,252,20,17,164,43,157,5,188,18,68,75,148,94,230,188,107,45,66,63,40,143,237,3,138,213,124,249,150,80,134,12,97,28,179,144,198,166,17,69,45,235,126,197,37,59,242,203,93,174,172,245,128,72,157,170,86,239,236,228,25,183,103,82,190,245,179,133,241,149,29,217,236,143,37,217,15,241,70,6,148,6,88,95,111,198,3,140,183,47,196,3,34,226,1,63,154,40,18,15,208,181,240,120,128,174,89,241,0,93,11,139,7,220,75,194,226,1,186,150,36,30,160,107,105,227,1,87,76,172,71,60,192,176,198,12,226,1,39,75,97,241,128,223,14,69,65,215,226,167,136,32,93,233,44,224,149,32,90,162,244,50,231,93,107,17,250,65,121,108,31,80,172,230,203,183,132,50,100,8,227,152,133,52,54,141,40,106,117,239,199,252,39,250,115,0,108,167,209,248,41,218,17,128,237,0,0,0,116,49,17,235,160,0,160,209,152,4,31,0,0,194,152,140,231,165,11,204,21,198,92,97,204,21,238,245,185,194,225,99,131,55,12,69,65,215,226,167,136,32,93,233,44,224,149,32,90,162,244,50,231,93,107,17,250,65,121,108,31,80,172,230,203,183,132,50,100,8,227,152,133,52,54,141,40,106,232,7,160,31,16,175,31,48,101,79,244,3,122,171,31,80,247,119,153,169,120,167,3,18,226,191,49,54,40,24,15,48,193,235,7,232,26,235,7,232,218,65,50,37,7,203,135,200,222,126,64,55,238,98,244,3,222,47,15,146,67,101,187,31,192,238,239,67,226,245,3,88,238,105,198,231,244,177,255,173,252,253,128,195,228,195,229,108,231,10,27,94,119,172,31,96,114,90,216,253,54,251,1,211,229,232,126,0,131,183,31,96,72,46,139,244,3,116,205,234,7,28,105,104,238,40,227,111,134,236,238,7,88,45,195,235,7,232,154,183,31,192,238,91,253,0,118,45,58,87,248,104,121,41,153,41,187,227,1,44,135,119,174,48,251,92,101,124,206,146,163,230,10,235,26,235,7,232,154,61,87,88,215,252,253,0,93,219,100,252,69,207,21,158,45,39,235,7,24,17,116,87,63,192,176,78,78,63,64,215,222,99,252,57,251,1,115,229,240,126,128,161,1,171,31,160,5,247,3,230,201,243,101,171,31,160,107,11,186,121,163,231,10,179,95,86,63,192,176,70,233,24,89,172,31,16,244,236,91,253,128,251,119,68,193,232,183,199,78,241,231,243,231,21,45,45,202,33,125,169,104,42,252,154,196,225,152,101,173,147,106,34,168,45,156,246,145,175,140,110,250,65,220,242,214,21,79,3,69,115,76,91,115,126,78,211,78,173,180,168,39,120,109,36,116,45,126,138,63,159,63,175,104,233,181,169,100,140,83,42,154,10,191,38,113,56,102,89,235,164,154,8,106,11,167,15,200,87,70,55,253,32,110,121,235,138,167,129,162,57,166,173,57,63,167,105,167,86,90,212,19,252,169,118,20,116,45,126,138,63,159,59,239,204,150,120,105,81,14,233,75,69,83,241,215,36,46,199,44,107,157,84,19,254,60,230,29,167,15,200,87,70,55,253,32,110,121,235,138,167,129,162,57,186,177,164,63,110,205,249,57,77,59,181,210,162,158,96,140,11,96,92,0,243,3,154,61,46,0,31,0,31,0,31,208,108,31,48,175,29,5,227,137,114,252,154,209,242,166,184,211,131,40,184,115,205,108,137,148,139,194,162,241,124,25,69,225,45,149,164,38,113,57,90,165,179,145,56,42,7,63,191,255,174,213,146,54,230,181,183,142,207,72,170,86,176,22,230,181,247,235,15,46,31,116,159,157,53,150,214,118,130,52,144,70,247,126,176,179,198,226,208,91,210,31,151,87,112,11,139,216,154,153,114,200,80,20,116,45,126,138,63,159,63,175,104,105,81,14,233,75,69,83,225,215,36,14,199,44,107,157,84,19,65,109,225,244,1,249,202,232,166,31,196,45,111,93,241,52,80,52,199,180,53,231,231,52,237,212,74,139,122,130,15,110,71,193,232,249,56,126,205,104,121,83,142,110,137,80,112,83,153,217,242,222,73,130,69,227,249,50,138,194,91,42,140,202,197,227,249,53,9,198,21,187,165,187,210,33,167,85,122,86,43,137,196,179,91,54,133,168,58,109,48,184,206,109,241,243,108,30,207,43,229,244,1,7,27,253,0,49,29,178,51,71,195,114,204,107,249,203,216,82,238,215,31,172,209,160,251,172,31,144,214,118,248,188,194,116,123,76,130,22,99,253,0,81,235,99,88,210,31,215,158,249,57,77,59,181,210,130,169,153,41,136,7,32,30,128,120,64,179,227,1,123,183,163,160,107,241,83,252,249,252,121,69,75,139,114,72,95,42,154,10,191,38,113,56,102,89,235,164,154,8,106,11,103,63,32,95,25,221,244,131,184,229,173,43,158,6,138,230,152,182,230,252,156,166,157,90,105,81,79,240,158,145,208,181,248,41,254,124,254,188,162,165,247,76,37,99,156,82,209,84,248,53,137,195,49,203,90,39,213,68,80,91,56,125,64,190,50,186,233,7,113,203,91,87,60,13,20,205,49,109,205,249,57,77,59,181,210,162,158,96,121,40,10,186,22,63,197,159,207,159,87,180,180,40,135,244,165,162,169,240,107,18,135,99,150,181,182,176,207,158,241,52,17,212,22,78,31,144,189,148,193,90,8,226,150,175,20,124,13,20,205,49,109,205,249,57,77,59,181,210,162,158,96,18,9,93,139,159,226,207,231,207,43,90,154,164,146,49,78,169,104,42,252,154,196,225,152,101,173,45,188,115,207,120,154,8,106,11,167,15,200,94,202,96,45,4,113,203,87,10,190,6,138,230,152,182,230,252,156,166,157,90,105,81,79,240,239,180,163,160,107,206,95,51,90,222,20,119,122,16,5,119,174,153,45,145,114,81,88,52,158,47,163,40,188,165,146,212,36,46,71,171,116,54,18,71,229,224,231,247,223,181,90,210,198,239,24,227,2,217,72,53,175,21,172,133,223,49,198,5,130,203,7,221,103,227,2,105,109,39,72,3,105,116,239,7,27,23,136,67,111,73,127,92,94,193,45,44,98,107,254,118,247,227,93,149,94,157,127,253,64,113,188,110,136,205,235,55,187,75,44,203,80,206,27,133,105,221,20,146,243,102,1,42,183,8,114,186,53,34,223,109,161,233,59,104,124,29,220,62,112,71,129,45,159,6,203,7,86,196,146,116,101,5,235,245,110,248,0,248,0,248,128,30,247,1,152,31,128,249,1,152,31,128,53,67,240,1,240,1,240,1,205,245,1,51,219,81,208,53,231,175,25,45,111,138,59,61,136,130,39,87,75,164,92,20,22,141,231,203,40,10,111,41,93,219,111,207,216,53,137,201,209,42,157,141,196,81,57,248,249,253,119,173,150,180,49,211,136,9,102,35,213,188,86,176,22,102,26,49,193,224,242,65,247,89,76,48,173,237,4,105,32,141,238,253,96,49,193,56,244,150,244,199,229,21,220,194,34,182,102,166,124,110,200,139,207,140,125,155,182,240,153,177,43,235,158,63,191,13,241,84,118,109,83,13,163,18,70,211,148,48,90,14,251,183,51,191,121,237,172,153,121,29,46,149,191,22,188,114,110,202,206,95,209,240,231,140,146,141,175,17,145,218,240,74,7,181,75,148,188,188,118,115,74,35,74,149,95,127,145,182,136,107,153,113,238,242,158,144,104,141,240,180,25,166,17,111,205,130,45,153,175,115,231,115,37,174,113,188,11,224,93,0,239,2,216,91,60,24,71,181,188,119,102,248,238,28,221,138,31,137,156,217,202,34,158,185,104,124,113,177,211,139,99,243,186,98,119,137,43,57,101,103,37,210,192,236,214,156,214,26,65,73,54,24,249,230,6,112,217,44,64,99,171,16,31,218,207,214,13,134,229,152,215,149,97,126,128,36,251,245,199,215,2,123,23,200,162,77,255,87,172,81,175,99,18,180,24,123,23,136,147,127,73,38,245,2,0,64,12,7,224,108,10,140,13,226,93,0,239,2,120,23,144,254,114,40,10,186,22,63,197,159,207,159,87,180,180,40,135,244,165,162,169,240,107,18,135,99,150,181,78,170,137,160,182,112,254,223,144,175,140,110,250,65,220,242,214,21,79,3,69,115,76,91,115,126,78,211,78,173,180,168,39,184,238,253,152,15,180,234,94,3,160,44,188,15,239,2,2,64,76,208,2,98,130,124,212,57,38,120,32,98,130,64,1,248,71,156,107,41,172,137,131,246,204,150,94,84,121,180,13,80,4,206,135,157,9,107,34,158,174,210,106,246,252,33,180,77,61,176,189,189,189,29,158,158,156,114,18,138,206,84,235,218,251,205,203,21,79,78,119,110,127,217,104,106,126,153,178,214,147,72,41,158,182,202,177,34,158,4,121,75,148,189,238,163,40,178,244,168,39,166,126,24,110,15,183,195,211,147,83,78,66,209,153,106,93,123,191,121,185,226,201,233,206,237,47,27,77,205,47,83,214,122,18,41,197,211,86,57,86,196,147,32,111,137,178,215,125,20,69,150,30,245,196,212,15,67,237,161,118,120,122,114,202,73,40,58,83,173,107,239,55,47,87,60,57,221,185,253,101,163,169,249,101,202,90,79,34,165,120,218,42,199,138,120,18,228,45,81,246,186,143,162,200,210,163,158,24,63,162,231,8,233,218,158,83,252,115,132,140,251,198,159,57,71,72,38,186,166,16,149,120,231,8,177,178,108,142,208,20,50,72,166,18,123,142,208,59,118,207,70,113,206,17,210,53,222,28,161,109,237,109,109,54,71,136,229,158,230,152,197,98,205,17,218,214,182,230,8,205,34,179,201,28,227,158,200,28,161,227,200,239,25,148,249,115,132,182,181,173,57,66,159,34,214,28,161,207,118,75,46,36,140,159,57,71,232,243,228,11,70,78,115,142,208,182,246,162,49,89,172,57,66,219,218,108,142,208,169,228,52,114,122,151,207,98,227,211,156,35,164,107,223,144,216,28,33,93,11,155,35,180,173,109,207,17,58,223,248,245,45,227,238,183,201,119,198,234,127,129,113,231,34,114,49,185,132,124,159,252,128,240,230,8,93,218,229,186,164,43,175,57,71,136,221,183,230,8,177,235,232,57,66,186,198,230,8,93,103,80,186,158,120,231,8,221,74,110,51,210,217,28,33,51,255,10,178,146,176,57,66,186,182,154,152,115,132,182,181,217,28,33,38,197,189,196,156,35,180,173,205,230,8,233,26,155,35,164,107,143,16,115,142,144,174,173,55,254,252,115,132,158,35,97,115,132,116,205,154,35,180,141,136,204,17,218,214,102,115,132,182,181,237,57,66,19,165,73,198,111,123,142,144,97,157,156,57,66,186,102,207,17,210,53,54,71,232,64,41,124,142,208,76,105,247,28,33,109,219,216,179,56,215,184,118,207,17,250,176,244,145,238,28,30,54,71,232,88,105,129,116,156,241,139,55,71,136,81,176,231,8,49,138,206,57,66,199,75,108,142,144,174,217,115,132,12,75,148,216,19,227,158,35,164,107,39,75,167,72,167,74,167,73,167,75,139,165,51,164,51,165,179,164,179,165,56,251,7,140,121,24,206,60,65,219,7,80,194,247,1,230,60,65,175,15,200,103,158,96,92,31,192,174,195,231,9,218,62,96,3,181,124,128,53,79,144,249,128,232,121,130,204,7,176,50,246,60,65,93,139,59,79,240,124,227,142,237,3,178,152,39,24,207,7,44,37,126,31,192,230,9,154,62,96,57,49,125,128,57,79,208,246,1,246,60,65,203,7,240,231,9,6,249,128,240,121,130,113,125,128,127,158,32,243,1,206,121,130,124,31,224,159,39,24,229,3,196,230,9,58,125,128,57,79,144,239,3,88,158,224,121,130,166,15,136,158,39,200,124,64,242,53,67,189,141,15,108,111,102,157,14,175,236,220,152,94,108,17,0,0,196,241,120,77,246,9,4,138,196,43,237,87,218,225,233,201,41,39,161,232,76,181,174,189,223,188,92,241,228,116,231,246,151,141,166,230,151,201,198,244,61,179,208,147,72,41,158,182,202,177,34,158,4,121,75,196,183,135,52,186,143,162,195,210,163,158,24,78,169,132,241,0,189,160,152,32,203,21,22,19,44,38,30,96,199,4,131,226,1,166,44,238,120,128,25,19,100,247,157,241,0,145,152,160,174,5,197,3,24,46,48,190,163,98,130,236,123,73,247,51,109,76,80,215,146,196,4,131,226,1,229,196,4,205,120,128,97,159,49,227,1,233,98,130,22,146,199,4,89,30,103,76,144,23,15,112,198,4,131,227,1,97,49,193,170,247,3,70,219,239,156,18,158,158,156,114,18,138,206,84,235,218,250,126,215,148,224,92,241,228,124,247,148,112,137,222,51,37,138,194,190,83,210,234,199,194,126,83,146,107,151,167,173,114,172,136,125,238,63,37,43,219,73,103,97,249,81,96,249,71,219,163,5,245,3,48,46,80,197,113,129,190,73,102,63,32,124,92,128,76,42,110,92,224,92,185,170,227,2,210,164,102,143,11,200,147,48,46,80,103,60,209,99,51,193,0,0,136,135,103,224,3,128,6,225,157,83,234,34,233,187,50,147,244,221,17,148,196,227,1,233,177,95,10,74,71,85,106,38,194,254,181,177,164,32,204,192,174,39,192,24,158,70,63,0,200,12,136,9,34,38,136,152,32,98,130,64,221,48,11,125,66,0,104,52,158,194,187,0,128,119,1,188,11,224,93,0,239,2,153,188,11,228,235,3,130,231,10,239,67,226,249,0,150,155,205,21,158,62,102,169,85,155,43,204,243,1,252,185,194,89,249,128,240,185,194,94,31,192,238,103,183,118,216,158,43,108,249,0,209,185,194,150,15,40,99,174,112,252,181,195,206,185,194,98,62,128,63,87,56,204,7,164,157,43,44,230,3,234,60,87,120,164,61,210,14,79,79,78,57,9,69,103,170,117,237,253,230,229,138,39,167,59,183,191,108,52,53,191,76,89,235,73,164,20,79,91,229,88,17,79,130,188,37,202,94,247,81,20,89,122,212,19,147,221,187,128,142,53,67,88,51,132,53,67,88,51,84,68,188,2,107,135,51,95,59,60,15,107,135,11,145,40,61,125,172,29,70,63,0,253,0,244,3,242,239,7,172,104,123,97,180,232,216,183,5,231,61,103,46,247,47,231,111,155,130,159,174,147,54,159,175,95,38,139,150,83,38,47,125,158,92,126,169,189,18,57,185,242,57,187,249,135,105,43,152,171,104,45,195,234,111,235,45,92,74,126,141,156,229,130,104,120,181,27,204,135,39,81,148,126,248,150,226,47,21,76,195,43,127,144,117,37,65,120,107,5,231,8,211,140,173,29,190,5,248,239,242,159,179,112,205,4,201,229,182,132,48,252,222,176,23,63,85,204,111,203,30,204,43,235,158,63,191,13,241,84,55,213,48,42,97,52,45,249,162,228,176,127,95,169,216,215,86,221,156,18,5,115,228,105,192,42,227,47,231,166,236,252,21,13,127,206,40,217,248,26,17,169,13,175,116,80,187,68,201,203,107,55,167,52,162,84,249,245,23,105,139,184,150,25,231,110,156,28,206,58,251,235,29,166,17,111,205,130,45,153,175,115,231,115,37,174,241,232,119,129,149,52,104,108,112,21,53,223,5,86,83,74,214,208,59,169,247,93,224,46,106,206,15,184,135,14,146,123,105,222,243,3,30,165,143,209,57,228,113,42,242,46,48,77,22,121,23,88,79,157,243,3,158,160,11,201,147,212,122,23,120,138,138,204,15,120,134,122,223,5,118,74,113,199,6,55,26,60,159,53,254,158,163,89,237,43,252,50,21,121,23,120,133,178,119,129,87,233,82,242,26,229,205,15,120,131,90,99,131,111,82,107,126,192,54,250,22,245,190,11,188,77,195,230,7,236,160,235,201,16,141,59,63,96,152,90,239,2,59,105,178,177,193,17,234,126,23,88,38,137,205,15,24,165,89,204,15,32,138,164,184,231,7,40,10,255,93,64,85,130,231,7,140,87,196,198,6,251,21,236,43,204,199,69,67,105,75,93,84,131,243,234,202,146,209,207,183,14,218,234,5,124,48,246,60,242,215,134,162,16,156,71,164,180,149,207,159,87,180,180,40,135,244,165,162,169,164,149,89,76,227,121,107,34,168,45,226,217,69,118,82,126,120,207,124,180,29,7,203,164,162,57,134,241,18,151,35,236,233,180,210,162,158,224,255,108,71,65,215,226,167,248,243,249,243,138,150,22,229,144,190,84,52,21,126,77,226,112,204,178,214,73,53,17,212,22,78,31,144,175,140,110,250,65,220,242,214,21,79,3,69,115,76,91,115,126,78,211,78,173,180,168,39,184,185,125,166,159,142,162,223,8,192,194,122,3,191,139,149,180,0,0,148,142,143,194,19,1,128,3,167,143,171,186,132,95,209,209,74,77,192,25,227,96,97,229,96,195,72,49,124,206,29,87,77,9,23,78,196,211,215,44,75,172,18,103,0,40,11,199,213,246,125,104,25,118,213,3,0,248,0,0,0,224,3,0,0,128,15,0,128,10,227,143,48,2,9,0,0,250,1,232,7,0,0,124,0,124,0,0,192,7,192,7,0,0,124,0,124,0,0,192,7,192,7,164,0,246,21,198,190,194,216,87,184,217,251,10,195,7,192,7,192,7,192,7,192,7,192,7,192,7,192,7,192,7,192,7,192,7,224,172,177,42,226,83,195,69,83,14,231,232,76,181,174,205,111,94,10,63,181,72,29,228,167,63,17,190,65,58,169,134,21,229,45,81,122,250,113,41,176,252,159,26,46,83,211,121,224,211,195,69,83,14,231,232,76,181,174,205,111,94,10,63,181,72,29,124,122,184,204,118,11,210,73,53,172,40,111,137,210,211,143,75,129,229,255,244,240,167,123,204,7,252,201,112,209,148,195,57,58,83,173,107,243,155,151,194,79,45,82,7,127,50,92,102,187,5,233,164,26,86,148,183,68,233,233,199,165,192,242,255,201,240,159,244,152,15,152,50,92,52,229,112,142,206,84,235,218,95,194,127,231,111,166,150,163,131,41,195,101,182,27,79,91,213,177,162,188,37,74,79,63,9,133,41,195,83,224,3,224,3,224,3,224,3,0,0,136,5,204,21,6,128,230,97,33,246,98,232,162,206,243,3,110,149,217,85,49,243,3,110,147,227,206,15,184,67,182,230,7,44,151,203,152,31,176,66,14,158,31,176,82,142,158,31,176,74,22,155,31,176,90,78,51,63,96,141,28,127,126,192,157,242,93,114,61,230,7,220,45,223,35,215,97,126,192,49,149,126,123,136,146,46,185,244,201,74,58,75,89,215,126,74,246,157,178,181,91,44,127,111,189,243,228,30,135,54,47,239,49,195,121,235,166,172,182,143,207,119,105,165,119,65,143,146,46,185,244,201,74,58,75,89,215,126,74,246,157,178,181,91,44,127,111,189,243,228,30,135,54,47,239,210,145,188,117,83,86,219,199,231,123,93,165,125,64,148,116,201,165,79,86,210,89,202,186,246,83,178,239,148,173,221,98,249,123,235,157,39,247,56,180,121,121,175,27,201,91,55,101,181,125,181,159,232,248,56,106,184,186,148,45,10,126,74,71,53,126,116,198,212,64,85,244,192,151,35,111,233,202,170,61,172,15,0,170,141,207,97,60,34,22,166,15,87,151,178,69,193,79,105,122,227,61,177,169,129,170,232,129,47,71,222,210,149,85,251,108,249,158,179,35,201,157,36,116,179,145,46,94,233,56,229,227,243,178,75,240,202,38,147,157,201,28,94,210,205,149,159,87,172,230,98,18,242,36,58,97,79,63,157,32,106,193,82,102,213,114,193,220,157,119,163,41,38,177,128,184,146,102,243,92,100,252,102,209,242,222,153,225,187,115,116,43,62,221,153,173,44,164,91,52,62,77,233,219,218,113,114,95,28,155,215,21,187,75,92,201,41,59,43,145,6,102,183,230,180,214,8,74,178,193,200,55,55,128,203,102,1,26,91,133,248,208,126,165,95,237,15,203,49,175,43,195,252,0,73,246,235,143,175,133,57,253,115,251,179,104,235,120,22,112,76,43,190,133,157,215,127,126,44,73,151,36,208,70,122,68,207,17,90,73,217,167,119,142,80,167,79,239,91,69,205,57,66,171,41,37,107,232,157,212,59,71,232,46,122,55,101,115,132,238,161,131,228,94,106,207,17,186,207,184,190,191,75,213,57,71,104,127,194,159,35,116,40,97,115,132,30,160,15,210,105,100,45,125,136,62,76,215,209,71,168,127,15,145,71,233,99,116,14,121,156,138,204,17,154,38,139,204,17,90,79,173,57,66,27,12,105,159,160,11,201,147,212,154,35,244,20,117,207,17,58,209,248,60,137,184,247,16,121,154,62,67,189,123,136,236,148,206,38,108,142,208,57,36,108,142,208,55,137,61,71,104,163,193,243,89,227,239,57,202,230,8,125,151,124,143,92,64,46,36,23,145,77,244,121,250,2,221,76,121,115,132,182,208,203,8,219,67,228,114,98,205,17,122,145,190,68,173,57,66,47,83,145,61,68,94,161,108,142,208,171,116,41,121,141,122,231,8,189,78,111,35,111,80,54,71,104,185,81,234,77,186,130,108,165,108,142,208,54,250,22,245,206,17,122,155,58,231,8,173,37,108,142,208,58,178,157,154,115,132,118,208,245,100,136,250,231,8,181,105,216,30,34,195,212,154,35,180,147,138,207,17,82,37,123,142,208,8,117,207,17,90,38,241,230,8,237,162,246,28,161,3,36,54,71,104,148,134,207,17,234,208,221,115,132,186,22,222,167,176,57,66,243,36,247,28,33,162,72,10,75,101,115,132,100,101,129,68,21,69,225,207,17,82,21,123,142,208,56,197,61,71,104,188,194,230,8,157,32,69,205,17,234,87,78,150,90,202,4,101,162,50,73,89,44,77,86,6,148,41,202,160,82,159,61,68,242,195,117,136,158,54,28,121,91,64,93,44,12,123,137,97,47,49,236,37,134,189,196,128,102,97,223,190,42,72,241,197,138,142,144,29,153,177,118,102,230,162,237,185,33,84,231,141,165,205,175,68,59,231,143,155,83,244,183,134,229,222,211,199,206,30,172,83,21,109,7,0,208,15,232,85,160,31,208,235,184,1,190,95,59,177,176,94,248,73,152,17,7,84,24,119,194,27,192,2,96,97,26,230,7,96,126,0,230,7,228,57,63,160,219,111,175,248,252,0,140,13,98,108,16,99,131,24,27,4,162,113,50,222,108,1,160,146,248,209,112,241,37,139,161,7,228,221,54,121,183,88,209,22,241,163,97,216,96,60,44,133,190,154,227,3,166,150,97,1,189,97,97,213,95,55,120,121,98,61,199,43,25,189,110,208,75,15,235,6,77,84,97,221,32,191,173,227,89,64,252,117,131,151,15,23,187,110,240,242,225,203,43,229,117,190,61,82,117,62,223,174,229,174,107,89,72,93,157,154,231,37,137,147,110,58,30,105,74,215,211,194,0,0,40,23,167,34,250,28,19,255,62,9,58,0,146,225,52,60,109,194,184,100,36,110,218,37,35,249,115,230,231,16,231,28,47,231,37,35,197,234,53,13,173,75,70,202,182,138,56,249,243,148,214,164,205,111,191,75,70,120,156,69,237,137,71,207,155,34,82,179,236,106,239,231,15,20,141,7,160,123,0,246,210,104,220,143,54,5,96,47,141,198,61,104,83,0,246,210,104,220,135,54,5,96,47,141,198,131,104,83,0,246,210,104,220,139,54,5,96,47,0,0,8,226,244,202,204,78,240,239,31,48,78,126,187,111,188,92,149,253,3,250,101,236,31,128,253,3,162,247,15,104,201,89,237,31,48,65,198,254,1,64,50,156,129,89,103,0,80,2,158,220,37,118,47,105,174,106,212,168,138,242,85,93,206,242,53,93,23,13,97,63,65,236,39,136,253,4,155,189,159,96,221,125,249,217,232,129,3,9,241,21,216,78,79,96,195,40,116,0,192,118,0,0,0,44,252,101,204,254,205,178,17,47,172,123,188,92,238,43,239,125,47,53,55,125,231,245,57,123,250,185,219,124,121,52,204,111,183,68,60,249,221,114,249,83,157,50,59,243,218,215,252,210,54,127,63,47,91,50,158,20,126,62,193,92,248,53,112,202,230,166,198,147,210,171,175,160,154,7,149,182,41,132,75,234,150,136,103,31,60,254,94,29,243,107,203,183,72,191,77,132,149,226,201,26,149,35,140,42,63,71,148,102,252,237,197,107,17,175,132,65,121,252,154,112,203,229,183,59,17,121,155,236,3,134,229,222,243,1,236,204,81,248,0,248,128,56,62,160,238,253,158,15,78,68,223,15,72,134,175,33,38,216,19,128,15,0,146,226,111,224,3,122,2,47,115,98,187,171,166,38,45,89,5,172,158,90,77,185,44,172,25,147,239,206,138,203,89,190,5,84,213,194,122,13,215,142,138,221,75,154,171,26,53,170,162,124,85,151,179,124,77,215,95,67,245,0,222,5,128,164,248,91,188,11,244,4,214,239,18,187,151,52,87,190,20,138,163,154,189,124,85,151,179,124,77,215,95,67,117,198,223,213,192,195,159,139,255,133,0,0,240,224,239,225,23,0,32,3,124,29,79,18,208,179,248,6,172,219,131,39,118,137,221,75,154,43,95,10,197,81,205,94,190,170,203,89,190,166,235,175,161,116,56,125,92,213,37,252,138,222,236,22,106,10,206,24,7,11,3,248,216,7,251,186,2,176,48,77,100,31,33,19,188,125,132,204,61,69,117,237,32,153,146,131,229,67,228,160,61,69,223,47,15,146,67,101,123,31,161,174,126,186,159,226,251,8,177,220,108,79,209,233,99,187,221,248,247,17,58,76,62,92,22,221,83,84,108,31,33,93,179,246,17,50,57,57,247,20,157,46,71,239,35,212,237,15,249,246,20,61,66,22,217,71,72,215,172,125,132,142,52,52,119,148,241,55,67,118,239,35,100,181,12,111,31,33,93,243,238,35,196,238,39,217,83,244,104,121,41,153,41,187,247,17,98,57,172,61,69,151,119,127,173,232,126,178,61,69,103,201,225,123,138,174,53,174,216,62,66,186,22,190,167,168,174,109,50,254,162,247,20,157,45,39,219,71,72,215,130,246,20,117,238,35,196,246,20,157,35,59,247,17,154,43,135,239,35,100,104,128,179,167,168,119,31,161,121,242,124,153,165,176,125,132,116,109,65,55,111,188,61,69,13,107,148,142,145,197,246,17,10,122,246,173,125,132,146,250,0,189,160,125,133,89,46,236,43,140,125,133,163,246,21,22,241,1,98,251,10,123,125,64,239,239,43,12,31,0,31,0,31,0,31,0,31,0,31,0,31,208,92,31,208,220,136,205,215,70,183,245,23,199,43,191,220,197,235,173,152,50,189,96,97,245,163,220,44,92,177,19,58,0,96,97,77,198,59,48,54,8,192,194,180,228,99,131,58,226,1,136,7,32,30,128,152,32,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,64,79,143,13,126,125,36,110,218,215,51,138,134,124,61,199,168,138,56,237,188,164,200,146,174,147,214,215,11,137,69,213,165,141,191,62,98,126,38,179,220,32,233,130,233,217,41,34,53,203,174,246,126,254,64,20,158,195,200,13,0,11,211,178,88,51,196,222,5,40,137,251,46,144,108,205,208,85,178,185,102,232,106,185,106,239,2,188,53,67,252,119,129,107,228,120,103,143,187,223,5,236,53,67,225,239,2,89,173,25,186,142,44,37,97,239,2,214,154,33,209,119,1,235,236,241,50,222,5,156,107,134,196,222,5,174,149,189,103,143,39,123,23,240,174,25,202,242,93,64,100,205,16,226,1,136,7,32,30,128,120,0,230,10,251,209,135,247,38,0,22,166,97,142,16,250,1,232,7,160,31,80,111,220,211,41,190,36,0,192,194,146,224,157,29,254,181,247,206,59,59,73,169,90,191,197,40,188,179,147,127,61,203,40,95,70,123,70,201,158,174,78,34,165,147,112,200,91,211,89,208,175,139,53,136,225,93,29,254,181,247,206,187,58,73,169,90,191,197,40,188,171,147,127,61,203,40,95,70,123,70,201,158,174,78,34,165,147,112,200,91,211,89,208,47,194,26,122,45,30,240,221,61,17,15,64,60,0,241,128,106,198,3,222,211,225,95,135,229,139,71,213,250,45,70,225,61,157,252,235,89,70,249,50,218,51,74,246,116,117,18,41,157,132,67,222,154,206,130,126,93,172,65,12,199,142,242,175,195,242,197,163,106,253,22,163,112,236,104,254,245,44,163,124,25,237,25,37,251,87,7,243,214,72,18,173,229,173,233,44,232,215,197,26,0,113,236,172,205,72,204,104,133,37,237,147,97,73,249,227,47,247,72,86,238,156,61,122,73,11,0,0,84,29,171,58,197,151,76,143,139,113,110,36,108,19,200,8,55,117,138,47,153,30,151,192,7,192,54,1,160,7,241,125,248,54,160,112,220,222,41,190,36,0,192,194,154,138,3,213,180,20,234,51,46,112,144,90,93,217,14,174,176,108,0,0,0,105,240,124,101,118,31,194,216,32,0,0,0,16,15,255,130,152,32,0,68,0,243,4,179,0,230,9,2,54,238,232,20,95,18,0,96,97,213,193,173,157,226,75,2,0,44,172,58,184,173,83,124,73,0,128,133,85,7,127,215,41,190,36,208,4,251,72,95,190,151,44,236,227,177,102,100,124,162,160,249,27,159,172,232,60,145,87,166,198,47,243,169,210,234,242,233,49,206,127,42,44,193,31,77,200,138,247,103,10,168,245,194,4,60,142,23,44,115,2,102,42,85,2,95,239,20,95,18,104,130,125,164,47,95,23,11,75,127,214,152,174,29,36,83,114,176,124,136,28,180,159,224,251,229,65,114,168,108,239,39,200,238,39,59,107,76,215,166,143,237,96,231,223,79,240,48,249,112,89,244,124,129,105,178,200,126,130,198,255,146,99,251,9,142,253,159,226,216,79,112,186,28,125,214,24,131,127,63,193,35,132,206,26,211,53,107,63,193,35,13,205,29,101,252,205,144,221,103,141,89,45,195,219,79,80,215,178,58,107,236,104,121,41,153,41,187,247,19,100,57,188,103,141,177,79,182,159,224,44,57,234,172,49,93,99,103,141,233,90,248,126,130,186,182,201,248,139,222,79,112,182,156,236,172,49,93,19,221,79,112,142,236,60,107,108,174,28,190,159,160,161,1,129,179,198,230,201,243,187,163,155,108,63,65,93,91,208,205,27,111,63,65,195,26,165,99,100,209,179,198,248,200,123,63,193,211,199,21,227,195,190,162,23,95,18,168,19,206,24,87,22,231,166,91,24,124,0,0,31,0,237,23,129,31,116,138,47,9,0,176,176,234,224,67,216,119,21,128,237,52,26,223,234,20,95,18,0,96,97,213,193,255,133,158,1,216,78,163,241,15,5,181,227,15,177,42,22,182,3,84,18,255,7,237,8,192,118,128,68,120,170,50,123,54,1,176,176,94,194,165,232,51,3,0,0,0,128,11,151,85,248,255,198,164,235,5,140,123,99,235,5,36,34,19,93,83,136,74,130,214,11,76,33,131,100,42,177,215,11,188,99,247,204,116,231,122,1,93,227,175,23,208,53,231,122,1,11,254,245,2,179,200,108,34,186,94,224,56,34,178,94,224,83,196,90,47,240,217,110,110,231,122,129,207,19,247,122,1,83,22,247,122,129,83,201,105,196,191,94,224,27,18,91,47,160,107,97,235,5,140,119,85,98,173,23,56,223,248,245,45,227,239,219,228,59,99,92,46,48,190,47,34,23,147,75,200,247,201,15,8,111,189,192,165,221,171,37,221,207,116,235,5,174,51,190,175,39,238,245,2,183,144,91,137,181,94,192,204,191,130,172,36,230,122,129,213,36,124,189,128,174,61,68,30,54,62,31,33,225,235,5,158,35,155,200,243,36,122,189,192,54,34,190,94,192,176,207,221,235,5,38,74,162,235,5,246,149,204,245,2,186,198,214,11,28,40,133,175,23,152,41,241,214,11,232,154,123,189,192,135,165,143,116,211,217,122,129,99,165,5,210,113,82,220,245,2,159,149,22,74,199,75,108,189,128,174,69,175,23,56,89,58,69,58,85,58,77,58,93,90,44,157,33,157,41,157,37,157,45,125,69,178,214,11,192,7,192,7,192,7,192,7,192,7,192,7,192,7,192,7,192,7,192,7,192,7,192,7,192,7,192,7,192,7,192,7,196,223,67,132,249,0,74,226,250,128,100,123,136,92,37,155,123,136,92,45,87,205,7,240,246,16,225,251,128,107,132,246,16,9,242,1,246,30,34,225,62,32,171,61,68,174,35,75,73,152,15,176,246,16,17,245,1,107,9,243,1,235,72,25,62,192,185,135,136,152,15,184,86,182,125,128,185,135,72,50,31,224,221,67,36,75,31,32,178,135,8,250,1,232,7,160,31,128,126,0,124,0,124,0,124,0,124,0,223,7,96,246,70,177,168,207,89,99,0,0,192,7,0,77,0,246,21,198,190,194,216,87,24,251,10,215,25,255,157,120,30,246,5,187,240,63,0,144,39,96,97,197,224,242,93,197,151,4,0,88,24,144,20,136,7,0,0,124,0,0,0,217,225,231,137,227,1,223,67,79,13,200,21,176,176,98,240,221,93,197,151,4,128,94,178,48,172,23,192,122,1,172,23,192,122,1,204,21,198,92,97,204,21,198,122,1,248,0,248,0,248,0,172,23,200,18,199,142,20,243,46,147,156,79,122,9,139,170,99,217,60,171,94,155,112,42,233,120,164,41,221,91,109,21,31,31,29,169,58,159,244,18,126,116,164,119,245,90,167,218,132,83,73,199,35,77,233,222,106,171,248,88,48,82,117,62,233,37,92,48,210,187,122,173,83,109,194,169,164,227,145,166,116,111,181,85,117,113,11,78,11,2,96,59,141,198,205,104,71,0,182,211,104,252,6,237,8,192,118,26,141,27,209,142,0,108,167,209,184,9,237,8,192,118,26,141,101,104,71,0,182,211,104,220,128,118,4,96,59,141,198,111,209,142,0,108,7,0,128,218,225,170,61,155,93,255,42,96,16,179,184,0,88,152,38,178,127,192,74,202,62,121,251,7,172,162,230,186,193,213,148,146,53,244,78,234,93,55,120,23,189,155,178,117,131,247,208,65,114,47,181,215,13,222,103,92,223,223,165,42,190,127,192,3,244,65,58,141,172,165,15,209,135,233,58,250,8,245,175,27,124,148,62,70,231,144,199,105,118,123,139,175,167,214,186,193,13,134,180,79,208,133,228,73,106,173,27,124,138,70,239,31,240,52,125,134,122,215,13,238,148,206,38,241,246,15,216,104,240,124,214,248,123,142,186,247,15,216,68,159,167,47,208,205,148,183,110,112,11,245,238,31,240,34,125,137,90,235,6,95,166,34,235,6,95,161,108,221,224,171,116,41,121,141,122,215,13,190,78,111,35,111,80,107,255,128,55,233,10,178,149,178,117,131,219,232,91,212,187,110,240,109,202,219,63,96,59,53,215,13,238,160,235,201,16,245,175,27,108,211,176,117,131,195,212,90,55,184,147,38,219,63,96,132,186,215,13,46,147,120,235,6,119,81,239,254,1,163,52,124,221,96,135,238,94,55,72,45,109,250,247,15,32,138,164,176,20,182,110,80,86,22,72,84,81,20,254,186,65,85,177,215,13,142,83,220,235,6,199,43,98,251,7,244,43,39,75,45,101,130,50,81,153,164,44,150,38,43,3,202,20,101,80,41,227,156,161,107,208,247,1,0,160,66,120,215,40,116,0,192,194,154,140,103,17,21,6,96,97,61,128,31,238,44,190,36,0,84,217,194,154,102,217,255,182,179,248,146,0,80,101,11,107,154,101,255,251,206,226,75,2,64,149,45,44,46,95,140,13,98,108,16,99,131,24,27,172,51,254,117,103,241,37,1,160,202,22,150,134,239,151,244,242,245,86,156,12,78,78,69,214,60,140,87,148,28,85,104,161,58,183,127,81,250,51,249,164,229,230,45,159,13,213,112,156,84,1,11,43,78,6,39,167,34,107,30,198,43,74,142,42,180,80,157,219,191,40,253,153,124,210,114,243,150,207,134,106,56,254,188,2,22,86,156,12,78,78,69,214,60,140,87,148,28,85,104,161,58,183,127,81,250,51,249,164,229,230,45,159,13,213,112,156,88,1,11,43,78,6,39,167,34,107,30,198,43,74,142,42,180,80,157,219,191,40,253,153,124,210,114,243,150,207,134,106,56,190,88,1,11,43,78,6,39,167,34,107,30,198,43,74,142,42,180,80,157,219,191,40,253,153,124,210,114,243,150,207,134,42,96,99,35,198,5,0,88,88,163,241,22,90,8,128,133,53,26,42,246,16,1,96,97,141,198,26,120,105,0,22,214,104,252,15,86,119,3,176,48,77,100,189,128,9,222,122,1,93,51,215,11,200,132,18,133,168,196,187,94,128,149,99,235,5,166,144,65,50,149,216,235,5,222,97,92,239,211,77,21,95,47,192,114,79,35,87,201,211,187,87,87,203,254,245,2,179,200,108,50,199,184,39,178,94,224,56,34,178,94,224,83,196,90,47,240,217,110,238,133,221,79,115,189,192,231,73,244,122,129,83,201,105,196,187,94,64,215,174,145,227,173,23,56,223,184,243,45,227,239,219,196,189,94,224,98,114,9,249,62,249,1,225,173,23,184,148,120,215,11,176,251,214,122,1,118,29,189,94,64,215,216,122,129,235,200,82,114,61,241,174,23,184,149,220,102,164,91,235,5,116,109,5,89,73,216,122,1,93,91,77,188,235,5,238,37,188,245,2,143,16,115,189,128,174,173,55,254,252,235,5,158,35,97,235,5,116,205,90,47,176,141,36,91,47,48,81,114,175,23,48,172,147,179,94,224,90,217,187,94,224,64,41,124,189,192,76,105,247,122,129,221,218,244,175,23,248,176,244,145,110,58,91,47,112,172,180,64,58,206,248,197,95,47,96,88,227,238,245,2,236,151,115,189,192,241,146,216,122,1,93,59,89,58,69,58,85,58,77,58,93,90,44,157,33,157,41,157,37,157,45,217,235,5,146,250,0,227,158,195,7,232,90,92,31,96,194,233,3,116,141,239,3,116,205,246,1,182,60,85,243,1,166,44,34,62,224,27,18,243,1,186,22,230,3,116,45,200,7,48,92,96,124,71,249,0,246,189,164,251,153,214,7,232,90,152,15,48,243,139,251,0,93,99,62,64,215,202,240,1,134,125,198,244,1,186,102,251,0,93,75,238,3,116,45,63,31,160,107,105,125,0,122,108,0,80,6,150,98,127,205,210,49,30,81,91,0,22,6,0,64,73,184,30,253,128,210,113,63,70,110,0,88,24,144,33,110,40,192,175,255,6,255,119,0,145,88,6,43,17,196,16,188,52,0,11,107,52,70,209,66,0,44,76,75,62,71,72,199,252,0,204,15,192,252,128,158,152,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,128,185,194,128,27,183,96,140,5,0,122,24,63,193,184,0,0,11,107,52,94,66,11,1,176,176,70,227,46,180,16,0,11,107,52,254,19,45,4,192,194,26,141,87,208,66,0,44,172,209,184,7,45,4,192,194,26,141,87,209,66,0,44,172,209,184,23,45,4,192,194,26,141,151,209,66,0,44,172,209,184,27,45,4,192,194,26,141,109,104,33,0,22,6,8,224,86,172,26,0,122,26,88,55,136,117,131,88,55,136,117,131,121,96,89,187,24,31,150,156,79,81,18,2,229,34,184,157,243,182,0,88,24,0,212,7,255,177,11,58,0,128,70,247,22,176,147,6,0,192,7,52,20,233,207,30,215,181,131,100,74,14,150,15,145,131,98,130,239,151,7,201,161,178,29,19,100,247,147,157,61,174,107,211,199,162,80,254,152,224,97,242,225,178,104,76,112,154,44,18,19,52,34,48,99,49,65,147,147,51,38,56,93,142,62,123,156,193,31,19,60,66,232,236,113,93,179,98,130,71,26,154,59,202,248,155,33,187,207,30,183,90,134,23,19,212,181,172,206,30,63,90,94,74,102,202,238,152,32,203,225,61,123,156,125,178,152,224,44,57,234,236,113,93,99,103,143,235,90,120,76,80,215,54,25,127,209,49,193,217,114,178,179,199,117,77,52,38,56,71,118,158,61,62,87,14,143,9,26,26,16,56,123,124,158,60,95,102,41,44,38,168,107,11,186,121,227,197,4,13,107,148,142,145,69,207,30,231,35,239,152,224,233,227,138,241,97,95,209,139,47,9,212,9,103,140,43,139,115,211,45,236,244,113,85,151,16,62,0,62,0,22,214,108,92,129,72,48,0,11,107,52,222,51,10,29,0,176,176,38,131,142,64,7,0,44,12,0,128,114,176,10,235,80,202,111,3,172,234,2,96,97,141,198,8,90,8,128,133,1,64,131,177,26,189,113,160,134,88,3,187,5,0,160,178,88,54,185,182,146,99,205,80,3,113,44,102,112,0,176,48,0,64,63,0,253,0,0,128,15,128,15,0,0,248,0,180,95,227,240,187,120,91,3,96,97,153,225,132,78,21,169,135,151,179,83,121,87,113,57,68,151,204,87,71,113,112,239,158,245,180,131,106,106,179,222,50,246,62,254,0,173,0,0,133,96,177,94,69,234,225,229,236,84,222,85,92,14,209,37,243,213,81,53,90,171,184,58,86,71,155,85,146,209,228,248,81,213,252,117,172,218,43,254,37,13,30,196,172,58,0,0,2,48,30,59,60,0,176,176,30,197,170,169,34,185,238,172,104,212,118,245,212,106,202,101,97,205,152,124,119,86,92,206,242,81,85,11,3,242,196,218,204,222,61,30,194,91,12,0,212,16,15,227,201,5,128,218,96,25,122,106,0,44,76,19,57,103,104,37,101,159,188,115,134,86,81,243,236,241,213,148,146,53,244,78,234,61,103,232,46,122,55,101,231,12,221,67,7,201,189,212,62,103,232,62,227,250,254,46,85,241,115,134,30,160,15,210,105,100,45,125,136,62,76,215,209,71,168,255,156,161,71,233,99,116,14,121,156,102,119,206,208,122,106,157,51,180,193,144,246,9,186,144,60,73,173,115,134,158,162,209,231,12,61,77,159,161,222,115,134,118,74,103,19,145,115,134,236,179,199,55,26,60,159,53,254,158,163,238,115,134,54,209,231,233,11,116,51,229,157,51,180,133,122,207,25,122,145,190,68,173,115,134,94,166,34,231,12,189,66,217,57,67,175,210,165,228,53,234,61,123,252,117,122,27,121,131,90,231,12,189,73,87,144,173,148,157,51,180,141,190,69,189,231,12,189,77,221,231,12,177,179,199,215,145,237,212,60,103,104,7,93,79,134,168,255,156,161,54,13,59,123,124,152,90,231,12,237,164,201,206,25,26,161,238,115,134,150,73,188,115,134,118,81,251,236,113,243,156,161,81,26,126,206,80,135,238,62,103,136,90,218,244,159,51,68,20,73,97,41,236,156,33,89,89,32,81,69,81,248,231,12,169,138,125,206,208,56,197,125,246,248,120,69,236,156,161,126,229,100,169,165,76,80,38,42,147,148,197,210,100,101,64,153,162,12,42,249,159,61,238,199,96,135,127,29,150,47,30,85,235,183,24,133,193,78,254,245,44,163,124,25,237,153,175,236,34,84,147,112,206,91,211,89,208,175,139,53,136,97,209,96,17,92,254,124,176,236,122,126,185,116,9,138,193,35,156,216,199,169,185,212,253,52,1,170,167,247,168,214,23,247,84,189,38,116,248,215,97,249,194,113,253,128,63,55,251,45,70,97,66,44,15,123,195,64,220,122,254,102,119,137,101,3,73,245,228,199,141,194,180,110,10,201,121,179,0,149,91,6,196,228,188,117,32,92,246,219,66,233,236,160,241,53,114,251,192,29,3,233,90,51,121,153,120,244,151,15,172,136,213,246,43,7,138,150,81,20,180,194,253,145,228,178,85,185,86,64,85,108,55,77,121,88,88,57,120,12,163,115,0,144,57,30,199,115,5,0,64,106,244,117,248,215,97,249,226,81,181,126,139,81,232,235,228,95,207,50,202,151,209,158,249,202,46,66,53,9,231,188,53,157,5,253,186,88,131,32,70,3,174,195,242,197,163,106,253,30,77,84,50,143,122,150,81,190,140,246,204,87,246,209,140,242,20,173,233,209,138,208,168,12,72,135,127,29,150,47,30,85,235,183,24,5,210,201,191,158,101,148,47,163,61,243,149,93,132,106,18,206,121,107,58,11,250,117,177,6,49,76,233,240,175,195,242,197,163,106,253,22,163,48,165,147,127,61,203,40,95,70,123,230,43,187,8,213,36,156,243,214,116,22,244,235,98,13,98,248,220,8,255,58,44,95,60,170,214,111,49,10,159,27,201,191,158,101,148,47,163,61,243,149,93,132,106,18,206,121,107,58,11,250,110,26,98,20,231,143,171,170,205,60,63,202,191,14,203,23,143,170,245,91,140,194,243,163,249,215,179,140,242,209,184,158,230,37,39,175,53,138,209,104,18,78,121,107,58,11,250,207,247,84,60,0,253,128,98,202,151,209,158,232,7,212,185,31,176,101,151,23,214,61,94,62,119,126,111,105,255,111,231,29,239,53,159,123,16,15,51,183,85,206,188,203,171,129,149,139,79,209,153,223,166,232,46,23,36,149,95,102,91,34,126,253,130,248,132,195,159,35,74,54,183,148,110,78,110,41,120,237,226,45,109,107,87,76,78,103,126,39,15,55,167,176,214,14,183,170,96,187,10,178,46,17,157,6,151,143,166,42,166,153,160,103,140,175,17,111,107,241,243,132,63,113,110,27,13,122,106,253,216,236,131,174,89,223,78,184,211,120,191,120,191,157,119,188,215,238,212,32,42,78,105,236,114,230,93,167,100,110,202,65,20,157,249,109,138,238,114,65,82,249,101,182,37,226,215,47,136,79,56,252,57,162,100,115,75,233,230,228,150,130,215,46,222,210,182,118,197,228,116,230,119,242,112,115,10,107,237,112,171,10,182,171,32,235,18,209,105,112,249,104,170,98,154,241,62,59,65,122,227,183,22,63,79,248,19,231,182,209,160,167,214,143,232,253,3,76,240,246,15,208,53,115,255,0,153,80,162,16,149,120,247,15,96,229,216,254,1,83,200,32,153,74,236,253,3,222,97,92,239,211,77,21,223,63,128,229,158,102,124,78,31,91,229,238,223,63,96,22,153,77,230,24,247,68,246,15,56,142,136,236,31,240,41,98,237,31,240,217,110,238,133,221,79,115,255,128,207,147,232,253,3,78,37,167,17,239,254,1,186,22,119,255,128,243,141,59,223,50,254,190,77,220,251,7,92,76,46,33,223,39,63,32,188,253,3,46,37,222,253,3,216,125,107,255,0,118,29,189,127,128,174,177,253,3,174,35,75,201,245,196,187,127,192,173,228,54,35,221,218,63,64,215,86,144,149,132,237,31,160,107,171,137,119,255,128,123,9,111,255,128,71,136,185,127,128,174,173,55,254,252,251,7,60,71,194,246,15,208,53,107,255,128,109,36,217,254,1,19,37,247,254,1,134,117,114,246,15,208,53,239,254,1,7,74,225,251,7,204,148,118,239,31,176,91,155,254,253,3,62,44,125,164,155,206,246,15,56,86,90,32,29,103,252,226,239,31,96,88,227,238,253,3,216,47,231,254,1,199,75,98,251,7,232,218,201,210,41,210,169,210,105,210,233,210,98,233,12,233,76,233,44,233,108,73,116,255,128,167,26,60,75,248,105,204,144,6,0,237,161,6,239,183,213,228,186,3,0,80,77,60,131,190,9,80,27,60,81,249,83,168,79,201,120,228,245,201,218,158,187,221,116,60,53,185,30,22,22,132,167,83,202,239,143,9,254,76,53,99,130,63,87,127,161,254,82,253,149,122,149,122,181,122,141,106,198,4,175,85,195,98,130,191,86,221,49,193,235,212,165,170,29,19,188,94,181,99,130,55,168,44,38,248,27,149,23,19,92,166,58,99,130,191,85,205,152,224,141,234,77,234,52,114,179,58,157,220,162,222,170,222,166,6,197,4,111,87,231,146,59,84,119,76,112,185,106,197,4,87,168,43,85,119,76,112,149,106,198,4,87,171,86,76,112,141,202,143,9,222,169,178,152,224,93,170,29,19,188,91,253,34,185,71,181,98,130,247,170,118,76,240,62,213,142,9,222,175,178,152,224,3,170,21,19,124,80,13,143,9,174,85,189,49,193,135,212,111,145,135,85,22,19,92,167,134,199,4,31,49,120,61,170,58,99,130,143,169,102,76,240,113,117,189,154,109,76,112,131,234,143,9,62,161,90,49,193,39,85,22,19,124,74,125,90,53,99,130,207,168,27,85,177,152,224,179,170,55,38,248,156,26,29,19,220,164,134,197,4,159,87,197,99,130,47,168,118,76,112,179,202,139,9,110,81,195,99,130,47,170,44,38,248,210,216,105,127,175,168,238,152,224,171,170,25,19,124,77,125,93,181,99,130,111,168,188,152,224,155,234,86,213,142,9,110,83,223,82,221,49,193,183,85,103,76,112,187,186,67,93,36,13,169,109,53,94,76,48,233,184,128,113,207,225,3,116,45,122,92,224,135,45,231,184,128,9,167,15,208,53,211,7,92,218,114,143,11,232,154,115,92,192,66,158,227,2,207,180,196,199,5,150,180,76,31,96,202,34,50,46,240,13,137,249,0,93,11,27,23,208,181,160,113,1,134,11,140,239,168,113,1,246,189,132,108,154,156,126,92,64,215,194,198,5,204,252,226,227,2,70,156,197,240,1,186,22,103,92,224,242,86,54,227,2,134,125,186,124,192,244,78,156,113,1,93,75,62,46,160,107,73,199,5,126,212,138,26,23,208,181,124,199,5,0,32,62,54,33,106,1,20,136,78,46,239,92,207,23,106,197,47,224,153,233,33,219,1,128,234,99,51,124,14,0,0,64,4,182,192,83,214,4,135,98,255,102,0,182,3,56,176,119,129,231,178,188,163,33,39,10,1,205,193,103,244,250,201,112,238,184,44,56,21,89,243,48,94,81,114,84,161,133,234,108,131,69,233,207,228,147,150,155,183,124,54,84,195,241,217,10,88,88,92,25,146,251,0,39,167,34,107,30,198,43,74,142,42,180,80,181,218,191,154,22,110,242,73,203,205,91,62,27,170,0,0,212,23,47,229,18,167,44,110,158,160,123,255,0,19,188,121,130,222,253,3,138,159,39,152,100,255,0,83,150,170,205,19,100,159,245,159,39,152,213,254,1,222,121,130,241,246,15,40,103,158,96,244,254,1,197,204,19,124,5,163,36,0,0,244,28,38,97,150,24,80,162,133,37,177,63,177,50,176,108,81,244,67,83,64,137,22,150,196,254,196,202,192,178,69,49,1,154,2,74,180,176,36,246,39,86,6,150,45,138,137,208,20,80,162,133,37,177,63,177,50,176,108,81,180,160,41,160,68,11,75,98,127,98,101,96,217,162,24,128,166,128,18,45,44,137,253,137,149,137,75,185,94,231,11,92,37,155,231,11,92,45,215,247,124,129,107,100,156,47,80,151,243,5,174,149,113,190,64,47,99,31,244,3,128,154,89,216,142,41,77,180,236,15,234,245,163,156,47,109,0,182,11,100,133,121,59,154,89,167,108,234,253,198,158,89,211,239,197,246,0,128,42,226,205,156,231,126,111,155,144,172,220,91,19,202,208,6,0,164,195,86,172,165,0,106,14,172,27,196,186,65,172,27,108,246,186,193,124,199,6,239,166,60,31,112,31,213,181,251,169,215,7,132,143,13,62,64,31,164,211,200,90,250,16,125,152,174,163,143,208,98,125,192,6,26,229,3,120,99,131,79,211,60,207,30,223,68,159,167,47,208,205,148,231,3,182,80,239,216,224,139,244,37,106,249,0,50,144,118,108,240,117,234,29,27,220,74,227,141,13,110,167,225,62,160,77,171,48,54,184,139,198,29,27,236,208,221,62,128,218,62,32,108,108,80,86,22,72,84,17,241,1,227,148,228,99,131,45,101,130,50,81,153,164,44,150,38,43,3,202,20,101,80,233,157,177,193,159,87,102,28,164,58,146,0,64,147,240,171,202,60,121,213,145,4,0,154,132,125,166,36,45,121,13,158,89,32,87,192,194,170,142,11,118,66,7,0,44,172,201,184,99,23,116,0,192,194,0,0,96,88,134,19,184,107,139,223,182,161,3,0,182,3,36,193,123,17,177,1,96,97,0,0,4,96,59,102,129,59,240,79,56,159,21,0,106,131,253,6,122,171,62,151,142,214,143,114,190,180,1,216,46,80,12,134,122,182,47,184,111,31,90,55,24,71,102,172,157,153,185,104,123,110,8,213,121,99,105,243,5,57,23,183,110,240,135,45,177,117,131,151,182,202,94,55,248,76,75,124,221,224,146,86,149,215,13,110,154,220,11,235,6,47,111,229,179,110,112,122,167,250,235,6,127,212,170,238,186,65,29,107,135,177,118,24,107,135,27,115,230,40,0,196,193,8,34,234,64,45,240,19,68,108,128,158,180,176,185,83,170,165,135,180,88,53,90,63,202,249,210,174,19,226,233,225,186,61,122,183,246,217,88,132,24,21,150,171,73,22,216,65,191,19,72,10,216,78,79,224,253,152,191,4,192,118,26,141,247,161,29,1,216,78,163,241,94,180,35,0,219,169,9,246,234,240,175,195,242,197,163,106,253,222,171,83,149,122,150,81,190,204,122,230,35,187,8,213,36,156,235,160,233,36,50,246,237,85,174,204,82,201,252,1,0,232,45,220,50,90,63,202,249,210,70,235,213,177,246,217,104,226,61,3,162,124,123,73,243,171,71,235,71,57,95,218,104,189,58,214,62,27,77,136,81,97,185,154,172,249,189,7,139,227,245,142,193,170,106,1,0,178,197,205,163,189,200,59,207,90,221,140,126,0,244,224,170,125,221,53,113,211,104,47,242,206,179,86,55,193,7,64,15,174,218,195,34,194,161,96,44,1,0,42,141,165,240,97,0,144,10,42,254,159,75,140,223,221,89,63,202,249,210,6,96,187,225,24,159,131,191,105,193,135,1,0,208,115,184,2,111,56,0,44,76,16,136,7,0,64,58,32,30,208,4,76,68,43,3,0,0,184,48,9,126,17,0,42,136,201,120,50,129,30,194,207,118,65,7,0,108,7,200,31,215,96,125,16,0,84,18,63,135,47,7,96,59,169,128,179,198,112,214,24,206,26,195,89,99,117,198,143,70,224,199,1,216,78,126,56,170,229,189,51,195,119,231,232,86,124,186,51,91,89,72,183,104,188,174,93,88,80,59,94,60,62,110,137,43,118,151,184,146,83,118,86,34,13,204,110,205,105,173,17,148,100,131,145,111,110,0,151,205,2,52,182,10,241,161,253,74,191,218,31,150,99,94,87,134,249,1,146,236,215,31,95,11,115,250,231,246,39,209,158,23,241,108,231,152,4,45,118,94,255,249,177,36,93,146,73,189,154,230,3,46,128,15,128,15,72,136,11,224,3,0,0,24,195,178,6,159,192,157,52,38,216,233,179,98,130,221,255,13,198,98,67,252,152,160,174,13,118,175,173,152,32,187,222,167,251,233,140,9,238,79,248,49,193,67,137,51,38,56,125,140,147,63,38,216,253,31,34,211,152,160,17,129,25,139,9,154,156,156,49,65,93,115,199,4,79,52,62,79,34,238,152,32,131,63,38,120,132,204,98,130,231,144,176,152,224,55,141,79,43,38,104,183,1,139,9,126,151,124,143,92,64,46,36,23,237,190,207,139,9,234,218,101,132,197,4,47,39,105,99,130,186,182,212,248,115,199,4,89,14,43,38,184,188,251,107,69,247,115,85,247,51,60,38,184,214,184,122,152,172,51,62,195,99,130,186,182,201,248,139,142,9,234,154,120,76,80,149,236,152,160,174,137,198,4,141,190,74,55,38,120,128,196,98,130,186,22,30,19,52,122,120,156,152,224,60,201,29,19,180,82,88,76,80,215,22,116,127,199,139,9,26,214,216,253,253,57,233,4,41,58,38,200,71,86,49,193,219,107,59,110,126,18,34,66,13,193,29,131,176,176,188,251,1,7,201,148,28,44,31,34,7,245,3,222,47,15,146,67,229,188,251,1,135,201,135,203,162,253,128,105,114,218,126,192,116,185,168,126,192,145,134,230,142,50,254,102,200,101,244,3,142,150,151,146,153,178,120,63,96,150,92,108,63,96,182,156,119,63,96,142,236,236,7,204,149,179,232,7,204,147,231,203,233,251,1,199,200,213,232,7,52,25,239,192,188,123,160,7,176,104,36,232,238,162,145,69,35,89,210,228,83,53,239,133,229,143,195,211,153,219,95,210,73,207,155,26,158,59,186,110,73,114,69,231,92,52,146,69,11,123,181,226,111,129,164,156,23,141,148,97,157,65,121,172,186,185,239,240,62,131,57,240,236,51,72,146,40,233,248,28,227,215,149,39,127,24,85,145,60,226,168,254,216,96,114,124,57,150,134,48,54,200,71,157,199,6,227,33,254,216,224,151,71,234,49,54,136,185,194,152,43,140,185,194,152,43,12,100,129,119,33,58,0,196,192,187,97,47,25,225,131,19,161,131,234,98,100,151,255,10,0,234,130,246,174,244,57,128,226,176,111,227,255,95,133,61,2,21,196,46,206,21,0,84,4,127,93,217,29,211,247,175,244,255,104,213,213,91,115,52,85,143,54,56,125,92,213,37,252,138,14,43,109,2,206,24,7,11,235,109,60,140,125,254,128,132,120,47,34,243,61,129,3,113,186,39,0,219,169,36,240,46,0,84,3,120,23,128,15,64,11,193,7,192,194,0,30,14,197,254,1,0,44,76,195,122,1,172,23,192,122,1,172,23,104,42,254,30,179,86,0,88,88,15,224,178,202,196,29,94,199,187,5,0,123,105,180,15,120,13,109,10,192,94,26,237,3,94,69,155,2,176,151,70,251,128,55,208,166,0,236,165,209,62,224,77,180,41,0,123,41,1,95,175,204,10,170,234,72,2,192,114,171,128,151,71,138,161,147,156,207,203,35,121,214,254,101,120,249,30,179,196,250,112,134,237,1,85,195,193,88,159,7,164,192,30,187,234,71,57,95,218,0,108,23,112,226,217,145,226,75,150,79,29,232,109,219,4,234,137,3,17,19,4,0,32,55,28,130,119,106,160,20,244,242,89,99,38,222,55,228,254,14,2,206,26,227,3,103,141,133,161,216,179,198,162,108,56,8,15,14,69,33,56,143,72,233,36,116,139,130,87,130,104,137,210,203,156,119,173,211,180,104,28,171,200,82,202,242,45,161,12,25,194,56,102,33,141,77,35,138,26,246,15,192,254,1,216,63,160,233,251,7,12,12,165,233,127,148,141,122,75,223,107,8,107,141,50,91,138,207,187,87,109,135,213,43,78,221,174,26,138,66,112,30,145,210,73,232,22,5,175,4,209,18,165,151,57,239,90,167,105,209,56,86,145,165,148,229,91,66,25,50,132,113,204,66,26,155,70,20,53,252,223,5,244,62,134,118,136,223,5,0,160,247,208,222,33,126,183,121,184,122,40,10,193,121,68,74,39,161,91,20,188,18,68,75,148,94,230,188,107,157,166,69,227,88,69,150,82,150,111,9,101,200,16,198,49,11,105,108,26,81,212,140,216,106,173,189,225,151,38,193,143,87,7,85,181,37,190,92,245,182,124,0,0,210,226,80,204,189,4,128,134,96,231,14,241,187,189,81,219,94,173,27,0,36,195,200,14,241,187,189,81,219,94,173,27,0,100,137,195,240,46,0,0,141,198,225,240,1,93,220,55,20,133,224,60,34,165,147,208,45,10,94,9,162,37,74,47,115,222,181,78,211,162,113,172,34,75,41,203,183,132,50,100,8,227,152,133,52,54,141,40,106,203,35,161,107,241,83,150,167,162,91,20,188,18,68,75,148,94,230,188,107,45,66,63,40,143,237,3,138,213,124,249,150,80,134,12,97,28,179,144,198,166,17,69,45,122,221,224,74,202,62,189,235,6,59,125,122,223,42,106,174,27,92,77,41,89,67,239,164,222,117,131,119,209,187,41,91,55,120,15,29,36,247,82,123,221,224,125,198,245,253,93,170,206,117,131,251,19,254,186,193,67,9,91,55,248,0,125,144,78,35,107,233,67,244,97,186,142,62,66,253,235,6,31,165,143,209,57,228,113,42,178,110,112,154,44,178,110,112,61,181,214,13,110,48,164,125,130,46,36,79,82,107,221,224,83,212,189,110,240,68,227,243,36,226,94,55,248,52,125,134,122,215,13,238,148,206,38,108,221,224,57,36,108,221,224,55,137,189,110,112,163,193,243,89,227,239,57,202,214,13,126,151,124,143,92,64,46,36,23,145,77,244,121,250,2,221,76,121,235,6,183,208,203,8,91,55,120,57,177,214,13,190,72,95,162,214,186,193,151,169,200,186,193,87,40,91,55,248,42,93,74,94,163,222,117,131,175,211,219,200,27,148,173,27,92,110,148,122,147,174,32,91,41,91,55,184,141,190,69,189,235,6,223,166,206,117,131,107,9,91,55,184,142,108,167,230,186,193,29,116,61,25,162,254,117,131,109,26,182,110,112,152,90,235,6,119,82,241,117,131,170,100,175,27,28,161,238,117,131,203,36,222,186,193,93,212,94,55,120,128,196,214,13,142,210,240,117,131,29,186,123,221,32,181,180,57,87,154,39,185,215,13,18,69,82,88,10,91,55,40,43,11,36,170,40,10,127,221,160,170,216,235,6,199,41,238,117,131,227,21,182,110,240,4,41,106,221,96,191,114,178,212,82,38,40,19,149,73,202,98,105,178,50,160,76,81,6,21,209,115,135,171,191,135,200,39,10,90,241,128,61,68,248,168,243,30,34,211,99,197,3,170,191,135,72,62,56,123,200,254,140,83,34,42,197,186,230,229,22,231,198,114,122,115,243,238,197,149,52,93,110,127,221,220,101,163,40,133,165,159,61,20,95,142,164,181,17,149,147,215,174,226,116,68,116,227,111,99,127,190,179,135,226,90,118,28,93,38,125,122,226,242,72,95,175,36,232,181,119,1,177,61,68,154,253,46,240,163,137,34,239,2,63,158,24,254,46,96,238,33,178,188,91,170,232,119,129,255,152,152,246,93,224,138,137,245,120,23,112,238,33,82,206,187,0,32,142,35,49,210,4,244,32,70,135,236,207,108,104,249,175,195,242,69,83,244,230,230,221,75,203,39,190,84,238,18,238,178,81,148,194,117,19,95,142,164,181,17,149,51,170,93,195,233,36,145,132,167,133,36,54,58,154,115,63,155,201,153,214,202,70,241,46,128,113,1,140,11,96,92,32,231,119,1,248,0,248,0,248,0,248,0,248,0,248,0,248,128,230,250,128,53,67,81,208,181,248,41,34,72,87,58,11,120,37,136,150,40,189,204,121,215,90,132,126,80,30,219,7,20,171,249,242,45,161,12,25,194,56,102,33,141,77,35,138,90,120,180,224,35,219,147,220,137,70,146,50,124,42,105,40,197,41,27,159,143,93,130,87,54,153,220,31,217,206,32,206,149,159,119,230,94,34,220,197,36,20,149,40,40,79,50,235,201,206,126,242,181,217,184,146,102,83,175,166,97,22,70,228,128,132,152,13,219,233,9,124,160,213,236,250,3,201,49,7,62,160,139,127,29,242,194,186,103,231,176,243,241,242,251,75,70,167,186,169,134,81,9,163,201,171,129,73,57,136,162,51,191,85,55,111,185,112,169,252,181,224,149,115,83,230,201,20,71,139,81,178,241,53,34,82,27,94,105,139,66,52,47,183,78,121,237,230,148,70,84,146,232,59,60,142,105,44,51,110,222,56,154,225,91,104,144,70,188,86,230,205,19,108,217,78,75,243,234,62,10,255,226,131,174,89,223,38,204,43,119,26,31,226,169,110,170,97,84,194,104,90,242,121,243,243,238,217,37,220,215,206,154,153,215,225,82,249,107,193,43,231,166,204,147,41,142,22,163,100,227,107,68,164,54,188,210,22,133,104,94,110,157,242,218,205,41,141,168,36,209,119,120,28,211,88,102,220,188,113,52,195,183,208,32,141,120,173,204,155,39,216,178,157,150,230,213,125,116,125,0,160,87,48,110,207,230,212,117,124,143,212,245,223,225,131,0,88,95,143,161,63,150,119,250,55,180,2,80,26,96,125,0,208,108,44,129,15,0,128,70,227,50,248,128,46,126,51,20,133,224,60,34,165,147,208,45,10,94,9,162,37,74,47,115,222,181,78,211,162,113,172,34,75,41,203,183,132,50,100,8,227,152,133,52,54,141,40,106,225,30,162,250,251,9,22,5,236,39,200,71,157,247,19,156,135,253,4,5,208,183,35,201,157,36,116,147,74,151,134,82,156,178,241,249,216,37,120,101,147,201,221,183,131,65,156,43,63,111,20,141,56,18,138,74,20,148,39,73,27,138,201,31,175,134,209,20,147,217,121,188,82,113,114,207,47,104,150,99,245,251,1,191,196,190,194,232,7,36,68,60,219,105,106,63,0,0,128,0,159,128,213,6,0,80,115,124,0,79,49,80,33,252,78,109,236,241,131,61,243,228,92,142,177,193,46,222,219,142,130,59,207,140,150,55,37,154,6,203,225,206,53,179,37,82,46,10,139,198,243,101,20,133,183,84,146,154,196,229,104,149,206,70,226,168,28,252,252,254,187,86,75,58,237,98,235,248,108,164,154,215,10,214,194,123,219,251,245,7,151,15,186,207,226,1,105,109,39,72,3,105,116,239,7,139,7,196,161,183,164,63,46,175,224,22,22,177,53,51,229,192,72,232,154,243,215,140,150,55,197,157,30,68,193,157,107,102,75,164,92,20,22,141,231,203,40,10,111,169,36,53,137,203,209,42,157,141,196,81,57,248,249,253,119,173,150,180,113,160,225,3,178,145,106,94,43,88,11,7,26,62,32,184,124,208,125,230,3,210,218,78,144,6,210,232,222,15,230,3,226,208,91,210,31,151,87,112,11,139,216,154,153,114,80,36,116,205,249,107,70,203,155,114,116,75,132,130,155,202,204,150,247,78,18,44,26,207,151,81,20,222,82,97,84,46,30,207,175,73,48,174,216,45,221,149,14,57,173,210,179,90,73,36,158,221,178,41,68,213,105,131,193,117,110,139,159,103,243,120,94,41,167,15,56,200,240,1,98,58,100,227,2,97,57,230,181,252,101,108,41,247,235,15,214,104,208,125,230,3,210,218,14,159,87,152,110,143,73,208,98,204,7,136,90,31,195,146,254,184,246,204,207,105,218,169,149,22,76,205,76,161,67,81,48,198,127,98,167,248,243,249,243,138,150,22,229,144,190,84,52,21,126,77,226,112,204,178,214,73,53,17,212,22,78,31,144,175,140,110,250,65,220,242,214,21,79,3,69,115,76,91,115,126,78,211,78,173,180,168,39,88,138,132,174,197,79,241,231,243,231,21,45,45,165,146,49,78,169,104,42,252,154,196,225,152,101,173,147,106,34,168,45,156,62,32,95,25,221,244,131,184,229,173,43,158,6,138,230,152,182,230,252,156,166,157,90,105,81,79,48,206,23,192,249,2,56,95,0,103,140,192,7,192,7,192,7,52,215,7,204,105,71,65,215,156,191,102,180,188,41,238,244,32,10,238,92,51,91,34,229,162,176,104,60,95,70,81,120,75,37,169,73,92,142,86,233,108,36,142,202,193,207,239,191,107,181,164,141,57,70,76,48,27,169,230,181,130,181,48,199,136,9,6,151,15,164,107,196,4,211,218,78,144,6,210,232,222,15,22,19,140,67,111,73,127,92,94,193,45,44,98,107,102,202,49,145,208,53,231,175,25,45,111,138,59,61,136,130,59,215,204,150,72,185,40,44,26,207,151,81,20,222,82,73,106,18,151,163,85,58,27,137,163,114,240,243,251,239,90,45,233,152,9,107,248,128,108,164,154,215,10,214,194,49,134,15,8,46,31,116,159,249,128,180,182,19,164,129,52,186,247,131,249,128,56,244,150,244,199,229,21,220,194,34,182,102,166,224,93,0,239,2,120,23,104,246,187,192,172,118,20,116,205,249,107,70,203,155,226,78,15,162,224,206,53,179,37,82,46,10,139,198,243,101,20,133,183,84,146,154,196,229,104,149,206,70,226,168,28,252,252,254,187,86,75,218,152,101,244,3,178,145,106,94,43,88,11,179,140,126,64,112,249,160,251,172,31,144,214,118,130,52,144,70,247,126,176,126,64,28,122,75,250,227,242,10,110,97,17,91,51,83,246,141,132,174,197,79,241,231,243,231,21,45,189,111,42,25,227,148,138,166,194,175,73,28,142,89,214,58,169,38,130,218,194,233,3,242,149,209,77,63,136,91,222,186,226,105,160,104,142,105,107,206,207,105,218,169,149,22,245,4,255,243,80,20,116,45,126,138,63,159,63,175,104,105,81,14,233,75,69,83,73,43,51,107,151,236,106,157,84,194,160,182,112,250,128,34,165,12,226,150,183,20,60,13,20,205,49,109,205,249,57,205,39,206,74,139,122,130,195,87,20,85,127,15,145,79,96,15,145,0,96,15,145,40,124,20,123,137,117,113,206,80,20,130,243,136,148,182,242,249,243,138,150,22,229,144,190,84,52,21,126,77,226,112,204,178,214,73,53,17,212,22,241,236,34,59,45,4,113,203,91,87,60,13,20,205,49,109,205,249,57,77,59,181,210,162,158,224,239,71,66,215,226,167,248,243,249,243,138,150,254,126,42,25,227,148,138,166,194,175,73,28,142,89,214,58,169,38,130,218,194,233,3,138,148,50,136,91,222,82,240,52,80,52,199,180,53,231,231,52,237,212,74,139,122,130,179,238,87,28,139,189,89,0,0,0,118,227,67,195,208,129,137,75,228,106,105,246,67,195,104,155,122,224,173,246,91,237,240,244,228,148,147,80,116,166,90,215,222,111,94,174,120,114,186,115,251,203,70,83,243,203,148,181,158,68,74,241,180,85,142,21,241,36,200,91,162,236,117,31,69,145,165,71,61,49,189,135,53,13,171,47,0,219,1,220,56,14,241,7,32,33,126,15,182,35,140,223,175,176,174,86,194,151,3,176,157,84,232,181,53,67,127,176,23,214,12,69,173,25,250,209,68,145,53,67,63,158,24,190,102,72,215,172,53,67,186,86,244,154,161,255,152,152,118,205,208,21,19,235,177,102,200,176,198,220,215,12,149,235,129,254,4,189,49,0,168,124,63,192,132,183,31,96,220,51,254,204,126,128,108,120,97,133,168,196,219,15,96,229,88,63,96,10,25,36,83,137,221,15,120,199,238,255,113,156,253,0,93,227,247,3,116,141,245,3,216,247,52,199,255,84,254,126,192,44,50,155,204,49,238,137,244,3,142,35,34,253,128,79,17,171,31,240,217,110,238,133,221,79,179,31,240,121,226,238,7,152,178,184,251,1,167,146,211,136,183,31,160,107,223,144,88,63,64,215,194,250,1,186,102,247,3,206,55,126,125,203,248,251,54,249,206,24,151,11,140,239,139,200,197,228,18,242,125,242,3,194,235,7,92,218,189,90,210,253,52,251,1,236,202,234,7,176,235,232,126,128,174,177,126,192,117,198,247,245,196,219,15,184,149,88,253,0,51,255,10,178,146,176,126,128,174,173,38,222,126,192,189,196,217,15,208,53,214,15,208,181,71,136,217,15,208,181,245,198,159,191,31,240,28,9,235,7,232,154,213,15,216,70,196,251,1,134,125,238,238,7,76,148,220,253,0,195,58,57,253,0,93,179,251,1,186,198,250,1,7,74,225,253,128,153,210,238,126,192,110,109,206,53,174,221,253,128,15,75,31,233,166,179,126,192,177,210,2,233,56,227,87,116,63,128,253,114,246,3,142,151,88,63,64,215,162,250,1,186,118,178,116,138,116,170,116,154,116,186,180,88,58,67,58,83,58,75,58,91,170,74,63,32,61,46,27,87,247,26,0,101,225,227,232,133,214,2,91,219,91,219,225,233,201,41,39,161,232,76,181,174,189,223,188,92,241,228,116,231,246,151,141,166,230,151,41,107,61,137,148,226,105,171,28,43,226,73,144,183,68,217,235,62,138,34,75,143,122,98,146,188,11,96,31,33,236,35,132,125,132,122,121,31,33,244,52,154,135,79,162,15,12,212,8,111,180,223,104,135,167,39,167,156,132,162,51,213,186,246,126,243,114,197,147,211,157,219,95,54,154,154,95,166,172,245,36,82,138,167,173,114,172,136,39,65,222,18,101,175,251,40,138,44,61,234,137,169,31,94,107,191,214,14,79,79,78,57,9,69,103,170,117,237,253,230,229,138,39,167,59,183,191,108,52,53,191,76,89,235,73,164,20,79,91,229,88,17,79,130,188,37,202,94,247,81,20,89,122,212,19,147,36,30,96,130,23,15,176,199,6,41,225,143,13,154,241,0,239,216,96,62,241,128,60,199,6,55,116,165,13,27,27,228,199,3,120,99,131,113,227,1,238,177,193,240,120,64,223,36,145,120,0,153,20,103,108,112,41,241,143,13,6,205,17,242,143,13,158,43,187,199,6,189,241,128,160,177,193,240,120,64,178,177,65,103,60,96,162,36,77,138,30,27,244,199,3,162,198,6,197,226,1,206,177,65,51,30,32,50,54,232,141,7,152,99,131,209,241,0,54,54,232,143,7,200,147,234,19,15,120,231,148,186,244,89,222,149,153,164,239,142,160,244,158,72,78,251,102,38,203,126,41,40,29,181,103,149,218,103,255,218,88,82,16,102,84,74,159,64,125,241,167,136,9,2,61,132,127,27,132,14,128,100,248,51,248,194,46,48,87,24,115,133,49,87,24,115,133,209,15,0,154,136,207,162,31,144,170,31,96,143,11,232,218,65,50,37,7,203,135,200,65,253,128,247,203,131,228,80,217,238,7,176,251,251,16,111,63,32,124,92,192,234,7,76,39,238,126,192,179,59,172,126,192,97,242,225,178,104,63,64,108,158,160,225,117,199,250,1,38,79,103,63,96,186,28,61,46,192,224,239,7,28,33,139,140,11,232,154,213,15,56,210,208,220,81,198,223,12,217,61,46,96,181,12,175,31,160,107,222,113,129,164,253,128,163,229,165,100,166,236,238,7,176,28,222,113,1,246,201,250,1,179,228,240,126,192,90,227,138,141,11,232,90,120,63,64,215,54,25,127,209,253,128,217,114,178,113,1,93,155,36,61,187,67,164,31,48,71,118,142,11,204,149,195,251,1,134,6,56,253,0,239,184,192,60,121,190,108,245,3,116,109,65,55,111,188,126,128,97,141,210,49,178,232,184,0,31,86,63,160,30,115,133,23,238,85,207,185,194,199,239,85,197,185,194,159,219,171,201,115,133,79,216,11,115,133,227,204,21,46,255,156,161,193,144,189,95,23,141,79,211,3,10,162,204,191,111,157,51,228,76,181,174,253,37,216,157,236,206,25,178,233,199,63,103,136,95,155,252,207,25,50,249,178,79,235,156,33,190,36,197,156,51,196,231,61,24,107,95,225,248,231,12,13,14,167,61,103,104,112,56,137,93,199,45,133,152,32,98,130,136,9,34,38,216,76,36,219,93,222,89,170,14,251,211,151,37,163,159,111,214,231,11,0,89,97,221,142,40,4,231,17,41,109,229,243,231,21,45,45,202,33,125,169,104,42,252,154,196,225,152,101,173,147,106,34,168,45,226,217,69,118,90,8,226,150,183,174,120,26,40,154,99,218,154,243,115,154,118,106,165,69,61,193,143,70,194,136,224,198,78,241,231,243,231,21,45,253,104,42,25,227,148,138,166,194,175,73,28,142,89,214,58,169,38,130,218,194,233,3,242,149,209,77,63,136,91,222,186,226,105,160,104,142,105,107,206,207,105,218,169,149,22,245,4,55,183,7,244,159,163,232,5,2,176,176,188,215,13,6,199,4,147,205,15,184,74,54,231,7,92,45,87,45,38,200,27,27,52,99,130,103,14,184,99,130,215,200,217,172,27,12,143,9,102,53,63,128,191,110,208,142,9,90,243,3,68,99,130,214,216,96,25,49,65,247,186,65,145,152,224,181,114,220,117,131,252,152,96,216,186,193,180,49,65,177,117,131,136,9,242,48,117,23,254,167,2,96,97,249,225,244,202,239,247,251,21,29,86,218,4,156,49,14,22,6,240,113,24,250,1,0,44,172,209,56,26,45,4,192,194,26,141,195,209,66,0,44,172,209,152,131,22,2,96,97,141,198,76,180,16,0,11,107,52,102,160,133,0,88,24,0,100,138,227,106,187,239,237,50,156,184,213,64,28,9,47,13,192,194,26,141,35,208,66,0,44,172,209,152,133,22,2,96,97,141,198,92,180,16,0,11,107,52,102,163,133,0,88,88,13,240,177,225,162,41,135,115,116,166,90,215,230,55,47,133,159,90,164,14,62,54,92,102,187,5,233,164,26,86,148,183,68,233,233,199,165,192,242,127,108,248,99,53,216,227,46,14,62,62,92,52,229,112,142,206,84,235,218,252,230,165,240,83,139,212,193,199,135,203,108,183,32,157,84,195,138,242,150,40,61,253,184,20,88,254,143,15,127,188,199,124,192,39,134,139,166,28,206,209,153,106,93,155,223,188,20,126,106,145,58,248,196,112,153,237,22,164,147,106,88,81,222,18,165,167,31,151,2,203,255,137,225,79,244,152,15,248,228,112,209,148,195,57,58,83,173,107,243,155,151,194,79,45,82,7,159,28,46,179,221,130,116,82,13,43,202,91,162,244,244,227,82,96,249,63,57,252,201,30,243,1,23,13,21,77,57,156,163,51,213,186,246,151,200,86,234,52,212,242,211,159,8,95,158,182,170,99,69,121,75,148,158,126,18,10,31,220,179,76,77,195,7,192,7,192,7,244,166,15,152,160,199,77,11,43,145,21,231,226,104,231,37,69,150,116,157,180,242,212,90,253,218,120,130,110,126,38,179,220,32,233,130,233,217,41,34,53,203,174,246,126,254,189,143,19,134,237,207,224,244,94,168,99,190,84,123,65,79,217,224,140,189,242,208,71,86,244,208,106,0,144,53,206,218,11,58,168,3,142,28,174,46,101,139,130,159,210,145,141,247,210,166,6,170,162,7,190,28,121,75,87,86,237,143,196,185,195,56,119,24,231,14,227,220,225,6,157,49,242,120,127,210,146,215,227,141,170,225,200,219,2,96,97,197,224,22,232,25,128,237,0,0,80,49,156,57,37,123,154,103,77,169,155,22,170,142,21,248,95,160,49,58,230,203,145,183,116,176,176,170,99,37,90,168,49,58,230,203,145,183,116,117,177,176,124,207,30,191,155,242,198,5,238,163,186,118,63,101,84,197,207,30,127,128,62,72,167,145,181,244,33,250,48,93,71,31,161,197,142,11,108,232,74,27,247,236,241,167,41,111,92,224,108,146,205,217,227,155,232,243,244,5,186,153,242,198,5,182,80,239,217,227,47,210,151,168,53,46,112,227,212,180,103,143,191,78,189,103,143,111,165,241,206,30,223,78,195,199,5,218,180,10,103,143,239,162,113,207,30,239,208,221,227,2,212,210,102,248,217,227,178,178,64,162,138,200,184,192,56,37,249,217,227,45,101,130,50,81,153,164,44,150,38,43,3,202,20,101,80,169,242,184,192,95,97,230,6,0,0,185,225,175,225,97,0,32,6,142,106,121,239,204,240,221,57,186,21,159,238,204,86,22,210,45,26,95,156,38,46,142,205,235,138,221,37,174,228,148,157,149,72,3,179,91,115,90,107,4,37,217,96,228,155,27,192,101,179,0,141,173,66,124,104,191,210,175,134,206,209,152,215,149,97,126,128,36,251,37,152,223,49,167,127,110,226,89,33,201,113,76,130,22,59,175,255,252,88,146,46,73,85,175,175,54,244,255,183,31,34,178,7,192,118,82,33,58,38,184,178,27,219,224,197,4,87,81,51,38,184,154,82,178,134,222,73,189,49,193,187,168,25,19,188,135,14,146,123,105,222,49,193,71,233,99,116,14,121,156,138,196,4,167,201,34,49,193,245,212,25,19,124,130,46,36,79,82,43,38,248,20,21,137,9,62,67,189,49,193,157,82,220,152,224,70,131,231,179,198,223,115,52,171,152,224,203,84,36,38,248,10,101,49,193,87,233,82,242,26,229,197,4,223,160,86,76,240,77,106,197,4,183,209,183,168,55,38,248,54,13,139,9,238,160,235,201,16,141,27,19,28,166,86,76,112,39,77,22,19,28,161,238,152,224,50,73,44,38,56,74,179,136,9,18,69,82,88,138,29,19,84,20,126,76,80,85,130,99,130,227,21,177,152,96,191,82,183,152,96,81,248,15,252,47,208,112,228,109,1,189,100,97,23,143,196,77,11,43,145,21,103,126,14,113,206,241,114,102,85,163,60,180,228,165,149,135,172,233,165,15,202,159,167,180,38,109,126,251,93,60,194,227,44,106,79,60,122,222,20,145,154,101,87,123,63,255,178,241,173,145,170,243,249,86,101,116,85,180,212,213,169,121,94,146,56,233,166,227,145,166,116,93,44,44,223,57,66,193,107,135,247,33,241,226,1,44,247,52,114,149,60,189,123,117,181,92,181,181,195,188,120,128,185,118,248,204,1,247,28,161,107,228,108,230,8,133,175,29,246,198,3,216,253,100,107,135,121,115,132,236,181,195,214,28,33,209,181,195,86,60,160,140,181,195,241,231,8,93,43,199,157,35,196,95,59,28,54,71,40,237,218,97,177,57,66,189,188,118,24,168,50,206,197,108,12,244,3,208,15,64,63,0,253,0,244,3,114,197,235,163,254,123,171,166,38,45,89,5,172,158,90,77,185,44,172,25,147,239,206,138,203,89,190,5,84,213,194,226,1,243,4,45,96,158,32,31,117,158,39,248,245,88,111,42,213,159,39,88,205,119,1,172,27,196,186,65,172,27,196,186,193,124,241,204,168,216,189,164,185,242,199,63,236,85,77,185,162,244,86,117,57,203,183,128,236,233,71,81,52,211,227,242,173,243,190,194,183,202,69,245,3,62,75,110,147,227,238,43,124,135,108,237,43,188,92,46,99,95,225,21,114,240,190,194,43,229,232,126,192,42,89,108,95,225,213,114,120,76,240,155,123,133,237,43,188,70,142,31,19,188,83,190,75,174,199,190,194,119,203,247,200,213,223,87,24,123,139,99,111,113,236,45,142,189,197,235,140,219,106,57,219,15,128,237,84,167,94,98,253,128,175,234,85,237,7,124,85,143,238,7,124,85,71,63,32,255,126,192,87,245,186,245,3,190,170,247,102,63,224,171,122,179,250,1,183,163,31,0,192,118,240,76,0,141,199,121,152,149,220,88,96,108,176,44,141,99,108,176,120,250,245,178,108,248,0,248,0,248,0,248,128,34,240,216,46,177,123,73,115,229,75,161,56,170,217,203,87,117,57,203,215,116,253,53,84,15,60,190,75,236,94,210,92,249,82,40,142,106,246,242,85,93,206,242,53,93,127,13,213,3,143,236,18,187,151,52,87,190,20,138,163,154,189,124,85,151,179,124,77,215,95,67,245,192,134,93,98,247,146,230,202,151,66,113,84,179,151,175,234,114,150,175,233,250,107,168,30,120,116,151,216,189,164,185,242,165,80,28,213,236,229,171,186,156,229,107,186,254,26,234,117,188,115,39,116,0,192,194,0,160,185,248,54,230,21,53,28,127,214,176,81,84,0,22,6,184,241,167,104,33,0,22,214,104,124,18,45,4,192,194,26,141,14,34,54,0,44,12,0,128,146,240,29,68,36,75,199,29,240,210,0,44,172,209,216,142,22,2,96,97,61,128,115,199,65,7,64,126,248,46,122,236,61,140,159,14,67,7,89,225,203,19,161,3,88,88,89,184,171,83,124,73,0,128,133,37,193,190,29,254,117,88,190,120,84,173,223,98,20,246,237,228,95,207,50,202,151,209,158,81,178,167,171,147,72,233,36,28,242,214,116,22,244,235,98,13,98,216,175,195,191,14,203,23,143,170,245,91,140,194,126,157,252,235,89,70,249,50,218,51,74,246,116,117,18,41,157,132,67,222,154,206,130,126,93,172,65,12,123,117,248,215,97,249,226,81,181,126,139,81,216,171,147,127,61,203,40,95,70,123,230,43,187,8,213,36,156,243,214,116,22,244,235,98,13,101,98,121,167,248,146,0,208,52,11,187,16,227,35,0,0,52,16,23,193,247,1,64,163,113,49,124,0,0,84,30,107,58,197,151,4,0,88,88,117,112,110,167,248,146,64,19,236,35,125,121,88,88,49,248,219,78,241,37,129,38,216,71,250,242,176,176,98,176,186,83,124,73,0,128,133,85,7,43,58,197,151,4,0,88,88,90,124,108,143,172,40,93,216,41,190,36,0,148,99,97,176,89,30,126,221,41,190,36,0,192,194,170,131,223,118,138,47,9,0,189,100,97,175,244,189,218,247,90,223,235,125,111,244,189,217,183,181,111,91,223,91,125,63,83,223,238,219,222,183,163,239,231,234,47,212,95,170,191,82,175,82,175,86,175,81,135,250,218,125,195,125,215,170,59,251,70,250,118,245,141,246,117,250,244,62,93,235,35,132,232,218,65,50,37,7,203,135,200,191,86,199,145,241,164,159,180,200,4,50,145,76,34,215,169,75,213,201,100,128,188,95,30,36,135,202,215,171,123,144,61,201,94,100,111,163,196,13,234,62,198,231,111,212,119,146,119,145,119,147,247,144,125,201,126,100,127,242,191,200,1,228,189,100,153,250,62,114,32,57,136,28,76,14,33,239,39,191,85,15,37,135,145,195,201,141,234,77,234,52,114,179,58,157,220,162,222,170,222,166,30,65,142,36,183,202,172,6,71,145,25,228,104,50,147,28,38,31,46,207,33,183,171,115,201,29,234,60,50,159,28,67,62,64,126,135,124,144,124,136,44,87,63,76,62,66,126,151,124,148,172,80,87,170,199,146,5,100,154,252,123,132,149,253,125,178,74,253,223,228,15,200,31,146,213,234,31,25,119,254,152,252,9,89,163,126,140,124,156,124,130,124,210,248,253,105,242,167,228,207,200,103,140,171,219,228,59,213,133,228,64,245,46,245,120,242,57,114,2,153,46,127,129,220,173,126,145,220,163,126,201,72,93,68,78,36,247,170,39,145,63,39,127,65,190,76,78,38,247,169,167,144,59,186,210,157,78,238,87,151,203,139,201,3,234,25,228,76,114,22,217,41,29,33,127,133,252,37,57,135,252,21,249,107,242,85,242,53,242,55,228,111,201,223,145,115,201,223,147,175,147,111,144,127,32,107,85,141,124,211,160,249,127,201,63,146,127,34,231,145,35,229,135,212,163,228,135,213,25,242,119,200,58,245,187,228,123,228,2,114,33,185,136,88,45,248,207,228,95,200,191,146,255,71,254,141,252,59,121,68,213,181,71,213,31,26,105,151,145,21,242,18,114,57,121,76,253,17,249,49,249,15,242,184,186,94,189,130,252,132,252,39,249,169,145,186,82,190,146,252,23,249,111,242,63,228,103,228,231,228,23,228,151,228,87,228,42,98,91,197,213,228,26,242,153,193,107,201,175,201,209,242,82,50,83,190,129,252,134,44,35,191,37,55,146,155,200,205,228,179,131,134,62,200,6,245,118,114,7,89,78,86,27,245,92,209,45,187,138,60,161,206,146,215,144,59,201,93,228,73,245,110,114,15,121,74,125,90,93,56,120,31,185,159,60,163,110,84,31,32,15,146,181,70,206,135,201,58,227,243,81,242,24,121,156,172,145,215,27,215,27,200,19,228,73,242,20,121,154,60,67,158,85,55,146,103,141,123,155,140,191,23,200,102,178,133,60,167,190,72,94,34,47,147,87,200,171,228,53,242,58,185,83,62,126,240,13,242,166,145,190,149,204,150,223,34,111,147,237,100,147,186,131,12,145,54,25,38,59,201,8,217,69,70,73,135,232,164,79,34,146,36,201,210,243,42,149,20,73,149,198,73,227,165,126,169,37,77,144,116,109,146,241,55,89,26,144,166,72,131,210,84,105,153,180,135,180,167,180,151,180,183,244,130,250,14,105,31,233,157,210,187,164,119,75,155,213,247,72,95,107,237,39,237,47,253,47,233,0,233,189,210,251,164,185,242,65,210,22,245,96,233,16,233,253,210,161,210,97,210,225,210,52,105,186,116,132,116,164,116,148,52,67,58,218,160,57,75,122,81,157,45,205,145,94,50,218,226,110,249,30,249,21,117,174,52,79,154,47,29,35,125,64,250,29,233,131,210,171,234,135,164,121,242,124,249,53,245,117,245,119,165,143,26,37,22,24,127,111,168,191,39,253,190,241,253,191,165,63,144,254,208,248,254,35,233,143,165,63,145,222,84,183,170,31,147,62,46,125,66,250,164,244,41,105,155,250,150,250,105,233,79,165,63,147,62,99,228,88,40,29,35,191,173,126,78,58,65,250,188,244,5,233,139,210,151,164,237,234,14,117,145,52,164,182,213,19,165,147,36,214,34,127,46,253,133,244,101,41,232,217,255,75,233,28,233,175,164,191,150,252,62,64,215,76,31,224,206,111,250,0,93,243,251,0,137,200,132,18,133,168,70,155,184,125,0,43,199,124,192,20,50,72,166,26,191,44,31,240,14,227,122,159,110,42,207,7,232,154,211,7,232,154,233,3,88,238,105,228,42,121,122,247,234,106,153,249,0,83,50,203,7,204,34,179,201,28,227,222,92,227,207,237,3,116,205,242,1,44,63,243,1,199,17,203,7,24,90,239,250,0,67,235,99,62,192,136,86,140,249,128,79,17,203,7,124,182,155,123,97,247,211,244,1,159,39,95,48,126,125,209,248,179,124,128,174,217,62,64,215,78,49,254,78,37,167,145,211,187,101,22,27,159,166,15,208,181,107,34,124,128,174,49,31,240,127,136,229,3,206,55,238,124,203,248,251,54,249,142,241,105,251,128,139,201,37,228,251,228,7,196,233,3,76,141,252,144,92,74,46,51,174,153,15,208,53,211,7,176,251,182,15,208,181,104,31,160,107,204,7,92,71,150,146,235,137,219,7,220,66,110,37,183,25,233,166,15,96,249,87,144,149,132,249,0,35,22,78,76,31,96,216,191,225,3,88,218,189,132,249,0,118,101,250,128,135,8,243,1,143,16,211,7,232,154,215,7,232,26,243,1,207,145,77,228,121,98,250,0,93,115,251,0,70,203,242,1,219,136,233,3,116,45,204,7,232,154,215,7,76,148,220,62,192,176,206,49,31,160,107,182,15,184,86,126,143,180,175,228,244,1,7,74,7,25,57,130,125,192,76,105,150,145,206,124,128,173,77,183,15,208,181,15,73,31,150,62,210,77,103,62,224,88,105,129,116,156,241,139,231,3,88,30,219,7,176,95,150,15,248,172,180,80,58,222,184,227,244,1,44,125,81,247,211,235,3,78,150,78,145,78,149,78,147,78,151,22,75,103,72,103,74,103,73,103,75,95,145,210,250,0,227,158,195,7,232,90,92,31,96,194,233,3,116,141,239,3,116,205,246,1,182,60,85,243,1,166,44,34,62,224,27,18,243,1,186,22,230,3,116,45,200,7,48,92,96,124,71,249,0,246,189,164,251,153,214,7,232,90,152,15,48,243,139,251,0,93,99,62,64,215,202,240,1,134,125,198,244,1,186,102,251,0,93,75,238,3,116,45,63,31,160,107,105,125,64,115,223,214,164,17,188,177,2,176,48,0,0,202,193,191,96,69,90,233,88,129,221,223,1,88,88,163,49,140,22,2,96,97,141,198,211,104,33,0,22,214,104,252,2,45,4,192,194,26,141,61,16,181,5,96,97,141,198,195,240,210,0,44,76,227,205,21,174,242,60,65,93,155,62,54,43,165,190,243,4,207,38,101,207,19,252,215,189,48,79,48,254,28,33,204,19,172,226,60,65,247,122,129,124,125,192,109,114,220,121,130,119,200,150,15,96,235,5,138,159,39,200,214,11,176,95,188,121,130,34,235,5,86,201,98,243,4,205,245,2,73,231,9,250,215,11,68,251,128,59,229,187,228,122,204,19,100,235,5,48,79,48,111,252,219,174,226,75,2,0,44,12,224,99,252,30,205,174,63,15,253,13,208,73,11,237,14,212,10,151,98,150,42,0,52,26,151,193,7,0,64,78,152,132,62,161,15,147,161,19,160,162,248,57,230,7,0,176,176,70,99,42,102,113,1,176,176,70,227,33,120,105,0,22,166,37,159,39,168,99,47,49,236,37,134,189,196,26,176,151,216,81,45,239,157,25,190,59,71,183,226,123,158,153,173,44,252,215,162,241,197,249,202,139,99,243,186,98,119,137,43,57,101,103,37,210,192,236,214,156,214,26,65,73,54,24,249,230,6,112,217,44,64,99,171,16,31,218,175,244,171,253,97,57,230,117,101,152,31,32,201,126,253,241,181,48,167,127,110,127,18,237,121,241,163,88,227,35,199,36,104,177,243,250,207,143,37,233,146,76,234,5,0,81,248,49,198,6,1,97,160,31,128,126,64,239,246,3,254,3,253,128,158,192,185,227,160,3,32,63,92,129,62,83,15,227,167,195,208,65,86,248,242,68,232,160,190,22,134,113,1,140,11,96,92,160,217,227,2,240,1,240,1,240,1,24,27,4,154,133,43,241,142,11,0,141,198,127,193,7,0,64,163,241,223,240,1,64,15,225,50,140,13,2,128,11,255,51,230,227,127,214,16,95,15,31,0,240,241,139,198,246,118,154,230,3,0,0,64,63,32,25,166,96,237,48,144,43,96,97,189,143,171,208,215,2,122,0,152,35,132,57,66,152,35,132,57,66,121,224,162,78,49,62,44,57,159,162,36,4,202,69,112,59,231,109,1,217,211,135,205,102,139,159,224,20,24,0,22,214,104,252,39,90,8,128,133,229,136,11,67,123,45,31,219,163,24,62,249,148,4,122,199,18,123,147,115,179,112,70,167,248,146,0,0,11,235,5,108,193,232,45,0,11,211,48,54,136,177,65,140,13,54,126,15,145,161,40,24,126,34,118,138,8,210,149,206,2,94,9,162,37,74,47,115,222,181,22,161,31,148,199,241,63,67,161,154,47,223,18,202,144,33,140,99,22,210,216,52,162,168,161,199,6,100,135,101,147,107,43,57,118,211,105,32,62,138,177,65,0,22,214,104,124,16,45,4,192,194,26,141,223,65,11,1,176,176,70,227,67,104,33,0,22,166,241,198,6,127,166,154,99,131,63,87,127,161,254,82,253,149,122,149,122,181,122,141,106,142,13,94,171,90,99,131,157,62,231,216,32,37,108,108,240,215,170,123,108,240,58,117,169,106,143,13,94,175,218,99,131,55,168,251,24,163,57,191,81,157,99,131,251,19,115,108,112,153,234,28,27,252,173,122,40,97,99,131,55,170,55,169,211,200,205,234,116,114,139,122,171,122,155,26,52,54,120,187,58,151,220,161,186,199,6,151,171,214,216,224,10,117,165,234,30,27,92,165,154,99,131,171,85,107,108,112,141,202,31,27,188,83,101,99,131,119,169,246,216,224,221,234,23,201,61,170,57,54,120,34,185,87,61,137,88,99,131,247,169,246,216,224,253,42,27,27,124,64,181,198,6,31,84,217,216,224,57,36,104,108,112,173,170,145,111,18,231,216,224,67,234,183,200,195,42,27,27,92,167,126,151,124,143,92,64,46,36,252,177,193,71,12,94,143,170,108,108,240,50,194,198,6,47,39,143,169,230,216,224,227,234,122,53,217,216,224,82,194,31,27,220,160,178,177,193,229,221,82,214,216,224,19,170,53,54,248,164,202,198,6,159,82,159,86,205,177,193,103,212,141,42,27,27,92,75,216,216,224,58,18,60,54,248,172,234,29,27,124,78,141,30,27,220,164,134,141,13,62,175,178,177,65,85,18,25,27,124,65,181,199,6,55,171,246,216,224,1,146,53,54,184,69,13,31,27,124,81,101,99,131,47,169,99,79,152,58,87,154,39,217,99,131,175,170,230,216,224,107,234,235,170,61,54,248,134,202,27,27,124,83,221,170,218,99,131,219,212,183,84,247,216,224,219,234,231,164,19,36,107,108,112,187,186,67,93,36,13,169,109,21,123,139,139,225,100,204,226,2,96,97,153,225,134,92,119,211,248,77,66,234,203,66,203,125,113,119,11,253,118,119,190,27,99,114,186,105,119,254,155,35,75,222,210,128,29,71,110,45,172,142,183,213,64,155,95,236,244,62,71,27,39,116,170,72,61,188,156,157,202,187,138,203,33,186,228,9,149,249,95,225,222,61,235,105,7,213,212,102,149,100,172,131,86,0,160,154,104,242,28,161,164,235,5,120,49,193,56,235,5,246,233,166,242,98,130,222,245,2,102,76,144,229,102,235,5,166,143,69,174,170,182,94,224,68,227,211,142,9,134,173,23,56,155,132,199,4,217,122,1,119,76,208,185,94,32,60,38,104,106,196,25,19,76,191,94,32,40,38,104,174,23,112,199,4,163,215,11,68,199,4,243,91,47,32,22,19,12,90,47,96,199,4,227,175,23,112,198,4,179,94,47,96,199,4,89,122,94,123,137,173,236,201,55,217,163,71,240,191,31,0,11,19,3,124,0,0,52,213,194,142,106,121,239,204,240,221,57,186,21,159,238,204,86,22,210,45,26,95,156,38,46,142,205,235,138,221,37,174,228,148,157,149,72,3,179,91,115,90,107,4,37,217,96,228,155,27,192,101,179,0,141,173,66,124,104,191,210,175,246,135,229,152,215,149,97,126,128,36,251,245,199,215,194,156,254,185,253,73,180,231,197,154,88,255,183,29,147,160,197,206,235,63,63,150,164,75,50,169,23,0,148,135,191,217,163,217,245,7,194,177,103,135,127,29,150,47,30,85,235,183,24,133,61,59,249,215,179,140,242,101,180,103,190,178,139,80,77,194,57,111,77,103,65,191,42,214,32,87,216,42,147,203,86,229,90,1,85,177,221,52,229,97,97,64,16,238,44,57,198,122,23,206,72,3,74,193,175,71,249,215,97,249,226,81,181,126,139,81,136,199,39,185,68,69,151,47,163,61,243,149,93,132,106,18,206,121,107,58,11,250,110,26,119,215,220,123,63,49,202,191,14,203,23,143,170,245,91,140,194,19,163,249,215,179,140,242,162,184,119,175,236,229,228,181,70,49,26,77,194,41,111,77,103,65,255,137,154,252,143,128,126,0,250,1,232,7,160,31,0,212,7,15,192,146,0,7,112,190,0,206,23,192,249,2,56,123,28,200,10,127,143,57,50,57,226,235,208,46,0,100,130,135,240,46,0,244,16,30,134,61,3,9,177,14,182,211,19,248,104,79,141,157,0,176,29,0,0,138,194,35,232,7,116,129,113,1,140,11,96,92,0,227,2,110,60,86,176,119,124,188,203,111,189,131,235,134,84,18,60,81,178,119,127,50,146,255,83,1,57,158,198,255,75,181,195,51,221,54,219,216,99,45,7,31,0,31,0,52,201,7,224,93,0,239,2,120,23,104,246,187,0,124,0,124,0,124,0,226,1,0,0,120,241,66,99,222,204,208,15,64,63,0,253,0,244,3,234,140,15,78,196,255,88,64,50,108,65,12,22,104,40,246,237,131,14,130,113,100,198,218,153,153,139,182,231,134,80,157,55,150,54,191,33,237,124,238,184,164,37,247,194,76,81,32,87,100,111,97,98,20,97,217,162,216,27,154,2,122,210,194,222,219,99,107,172,31,152,144,23,229,143,232,249,73,253,224,132,252,104,3,117,65,158,22,6,20,131,151,17,51,2,26,128,226,198,6,127,216,18,27,27,188,180,85,246,216,224,51,45,241,177,193,37,173,42,143,13,110,154,220,11,99,131,151,183,242,25,27,156,222,169,254,216,224,143,90,24,27,20,242,99,248,255,26,0,128,216,56,22,49,193,194,240,213,65,88,24,144,23,46,174,140,117,189,134,222,8,0,148,128,43,119,65,7,0,108,39,13,176,94,0,235,5,176,94,0,235,5,162,240,6,122,185,0,128,126,0,250,1,232,7,160,31,128,117,131,61,133,159,32,106,11,244,164,133,205,157,2,221,3,128,8,182,225,29,183,22,56,188,83,63,202,249,210,78,143,43,6,171,217,122,213,214,90,186,218,103,83,55,49,42,44,87,28,126,136,7,32,30,128,120,0,226,1,205,196,131,195,205,173,59,0,11,171,15,110,25,173,31,229,124,105,163,245,234,88,251,108,52,241,158,1,81,190,113,248,97,221,96,47,175,27,236,141,119,129,188,214,13,214,225,93,0,235,6,141,231,190,147,87,254,105,157,252,100,155,214,99,209,173,98,90,175,215,180,230,172,79,54,117,19,163,194,114,193,2,129,106,97,8,163,112,0,235,165,56,70,164,78,12,25,157,58,41,214,200,213,255,242,248,187,63,55,74,255,69,169,107,9,191,156,146,251,201,53,89,103,123,10,71,206,83,115,145,253,52,1,170,167,39,224,252,191,106,240,127,229,226,2,172,1,99,131,24,27,196,216,32,198,6,171,140,27,71,235,71,57,95,218,117,66,179,245,224,172,125,145,154,184,210,232,59,252,87,15,237,218,178,106,180,126,148,243,165,221,187,173,119,93,143,237,137,237,172,125,54,22,33,70,133,229,130,5,50,140,132,198,161,118,33,74,85,19,140,162,165,114,6,226,1,136,7,32,30,128,120,64,228,251,5,250,21,0,0,196,135,167,15,215,183,55,116,82,22,8,116,15,212,22,255,123,103,253,40,231,75,27,128,237,2,64,58,224,236,241,48,224,236,113,30,126,140,120,0,0,244,44,48,46,128,113,1,140,11,52,123,92,0,62,0,62,32,79,31,112,174,12,31,208,171,62,160,211,231,244,1,148,240,125,192,221,148,231,3,238,163,186,118,63,245,250,128,253,9,223,7,28,74,152,15,120,128,62,72,167,145,181,244,33,250,48,93,71,31,161,197,250,128,13,52,202,7,156,104,124,158,68,220,62,224,105,202,243,1,103,19,230,3,206,33,97,62,224,155,36,200,7,124,151,124,143,92,64,46,36,23,145,77,244,121,250,2,221,76,121,62,96,11,189,140,48,31,112,57,177,124,192,139,244,37,106,249,128,27,167,198,241,1,75,137,223,7,188,78,45,31,176,156,152,62,96,43,21,235,7,172,37,204,7,172,35,219,105,184,15,104,211,236,125,128,42,197,245,1,187,168,237,3,14,144,68,124,64,135,238,246,1,212,246,1,243,164,96,31,32,43,11,36,170,136,248,128,113,10,207,7,156,32,137,248,128,150,50,65,153,168,76,82,22,75,147,149,1,101,138,50,168,244,246,94,98,79,237,42,131,143,186,119,189,164,79,43,95,213,229,4,178,196,201,35,113,211,194,74,100,197,185,56,218,121,73,145,37,93,39,173,60,181,86,199,54,102,159,126,46,98,150,27,36,93,48,61,59,69,164,102,217,213,222,207,63,239,152,160,253,46,160,107,7,201,148,28,44,31,34,7,197,3,222,47,15,146,67,101,251,93,128,221,223,135,196,123,23,176,226,1,211,73,80,60,224,48,249,112,89,244,93,96,154,44,242,46,96,244,188,198,222,5,76,78,206,119,129,233,114,244,187,0,131,255,93,224,8,89,228,93,64,215,172,119,129,35,13,205,29,101,252,205,144,221,239,2,86,203,240,222,5,116,205,251,46,144,52,30,112,180,188,148,204,148,221,239,2,44,135,247,93,128,125,178,119,129,89,114,212,187,128,174,177,119,1,93,11,127,23,208,181,77,198,95,244,187,192,108,57,217,187,128,174,137,198,3,190,214,114,190,11,204,149,195,223,5,12,13,112,226,1,222,119,129,121,242,124,217,122,23,208,181,5,221,188,241,226,1,134,53,74,199,200,162,239,2,124,244,202,187,192,194,145,186,215,0,128,237,0,105,208,143,89,176,64,66,180,96,59,102,79,114,196,11,235,30,47,159,59,191,249,203,190,231,165,230,166,239,204,199,174,249,220,249,60,236,50,150,92,182,132,254,210,188,123,126,137,108,138,238,114,188,250,88,156,252,53,226,149,115,203,233,231,19,142,32,106,254,187,254,250,219,60,189,37,252,53,231,113,118,210,12,150,212,91,35,127,45,109,238,126,254,94,185,130,173,42,72,103,60,9,195,245,234,79,245,242,229,91,177,136,133,6,209,13,122,198,188,26,113,218,149,183,198,94,123,243,235,151,215,46,60,221,135,61,251,205,245,126,215,162,39,8,192,194,4,241,133,145,184,105,95,24,201,159,115,90,78,226,37,191,48,82,188,94,211,208,250,194,72,217,86,81,150,22,248,180,217,167,159,139,152,229,6,73,23,76,207,78,17,169,89,118,181,247,243,7,0,160,142,152,80,120,148,66,226,174,45,146,141,187,180,79,73,184,238,104,92,64,185,241,198,253,254,190,150,43,117,130,241,107,98,64,254,73,198,253,201,130,50,12,116,243,77,113,228,254,140,239,180,183,65,35,117,234,88,142,61,60,116,39,250,52,191,151,145,99,111,31,247,119,8,201,179,143,176,230,222,25,154,243,51,25,156,88,247,174,190,119,59,120,188,167,207,187,110,144,207,227,125,66,53,56,48,231,21,136,7,9,208,63,120,119,158,67,140,171,247,27,127,135,238,190,115,88,247,234,142,238,254,154,135,119,175,167,121,40,78,247,252,62,162,207,189,110,240,168,177,95,51,56,146,28,29,33,221,223,233,236,83,116,221,224,172,192,124,179,251,236,118,154,51,150,171,232,117,131,189,132,219,219,208,1,208,171,152,50,9,58,0,128,34,48,136,81,69,0,104,52,166,194,7,0,64,15,96,15,60,201,0,32,136,61,19,61,45,123,225,25,3,106,141,215,35,215,198,190,19,54,14,212,202,98,249,192,62,66,216,71,8,123,137,225,140,145,102,226,43,216,41,53,17,222,131,222,79,233,22,182,47,218,32,19,204,192,156,74,0,22,214,104,28,140,19,32,0,88,88,163,113,30,246,195,3,96,97,141,198,63,162,133,0,88,88,163,177,47,98,130,0,44,172,6,216,50,82,63,202,140,246,22,196,131,96,187,53,177,1,204,15,192,252,0,204,15,104,250,252,128,73,67,117,246,181,245,150,190,215,16,214,26,101,182,20,159,119,175,218,14,171,87,156,186,109,219,17,133,224,60,34,165,147,208,45,10,94,9,162,37,74,47,115,222,181,78,211,162,113,172,34,75,41,203,183,132,50,100,8,227,152,133,52,54,141,40,106,215,14,69,193,232,19,198,78,17,65,186,210,89,192,43,65,180,68,233,101,206,187,214,34,244,131,242,216,62,160,88,205,151,111,9,101,200,16,198,49,11,105,108,26,81,212,222,218,17,5,93,139,159,34,130,116,165,179,128,87,130,104,137,210,203,156,119,173,69,232,7,229,177,125,64,177,154,47,223,18,202,144,33,140,99,22,210,216,52,162,168,133,191,41,28,213,242,222,153,225,187,115,116,43,254,27,203,204,86,22,239,61,139,198,23,247,142,117,49,135,215,1,161,179,182,175,216,93,226,74,78,217,89,137,52,48,187,53,167,181,70,176,214,27,140,124,115,3,184,108,22,160,177,85,136,15,237,87,250,213,254,176,28,243,186,50,204,15,144,100,191,254,248,90,152,211,63,183,63,137,246,124,150,27,43,30,112,76,130,22,59,175,255,252,88,146,46,201,164,94,217,226,204,33,251,51,78,137,168,20,235,154,151,91,156,27,203,233,205,205,187,23,87,210,116,185,253,117,115,151,141,162,20,150,126,230,80,124,57,146,214,70,84,78,94,187,138,211,17,209,141,191,141,253,249,206,28,138,107,217,113,116,153,244,233,137,203,35,125,189,178,71,95,219,254,204,134,150,255,58,44,95,56,174,31,240,231,102,191,197,40,196,171,213,13,3,113,235,249,155,221,37,150,13,196,225,155,141,110,116,237,166,16,137,111,22,168,205,45,3,98,114,222,58,16,46,223,109,161,116,118,208,248,45,117,251,192,29,3,233,90,51,121,153,120,244,151,15,172,24,136,83,98,229,64,209,50,50,68,207,15,88,217,109,37,222,185,195,171,168,57,63,96,53,165,100,13,189,147,122,231,7,220,69,239,166,108,126,192,61,116,144,220,75,237,249,1,247,25,215,247,119,169,138,159,59,252,0,125,144,78,35,107,233,67,244,97,186,142,62,66,253,243,3,30,165,143,209,108,207,29,94,79,173,249,1,27,12,105,159,160,11,201,147,212,154,31,240,20,141,62,119,248,105,250,12,245,206,15,216,41,157,77,68,206,29,182,231,7,108,52,120,62,107,252,61,71,221,231,14,111,162,207,211,23,232,102,202,155,31,176,133,122,207,29,126,145,190,68,173,249,1,63,154,40,50,63,224,199,19,217,252,128,87,233,82,242,26,245,206,15,120,157,122,207,29,222,74,217,252,128,109,244,45,234,157,31,240,54,117,159,59,204,230,7,172,35,219,169,57,63,96,7,93,79,134,168,127,126,64,155,134,205,15,248,143,137,214,252,128,157,52,217,185,195,87,76,116,207,15,88,38,241,230,7,236,162,246,252,0,243,220,225,81,26,62,63,160,67,119,207,15,216,237,221,252,231,14,19,69,82,88,10,155,31,32,43,11,36,170,40,74,244,252,128,113,138,123,126,192,120,69,236,220,225,126,229,100,169,165,76,80,38,42,147,148,197,210,100,101,64,153,162,12,42,162,251,7,32,30,16,22,15,8,7,226,1,85,143,7,28,137,120,128,0,224,3,224,3,122,215,7,28,5,31,0,31,0,31,208,104,31,48,13,62,160,39,227,1,143,83,196,3,162,226,1,47,83,145,120,192,43,52,60,30,240,6,181,226,1,111,210,162,227,1,195,52,109,60,96,132,214,35,30,160,42,249,199,3,224,3,224,3,224,3,154,237,3,110,30,138,130,49,146,20,59,69,4,233,74,103,1,175,4,209,18,165,151,57,239,90,139,208,15,202,99,251,128,98,53,95,190,37,148,33,67,24,199,44,164,177,105,68,81,187,41,18,198,72,115,236,148,155,82,209,45,10,94,9,162,37,74,47,115,222,181,22,161,31,148,199,246,1,197,106,190,124,75,40,67,134,48,142,89,72,99,211,136,162,86,110,204,241,255,97,229,47,0,235,43,25,215,15,69,33,56,143,72,233,36,116,139,130,87,130,104,137,210,203,156,119,173,211,180,104,28,171,200,82,202,242,45,161,12,25,194,56,102,33,141,77,35,138,90,221,125,216,47,224,203,1,216,14,0,20,136,131,112,198,77,15,225,96,163,53,151,14,69,33,56,143,72,233,36,116,139,130,87,130,104,137,210,203,156,119,173,211,180,168,109,25,197,106,190,124,75,40,67,134,48,142,89,72,99,211,136,162,6,79,8,52,21,63,134,245,3,21,194,33,232,97,3,0,0,20,138,247,195,239,118,113,64,59,10,238,60,51,90,222,148,104,26,44,135,59,215,204,150,72,185,40,44,26,207,151,81,20,222,82,73,106,18,151,163,85,58,27,137,163,114,240,243,251,239,90,45,233,180,139,173,227,179,145,106,94,43,88,11,7,180,247,235,15,46,31,116,159,173,25,74,107,59,65,26,72,163,123,63,216,154,161,56,244,150,244,199,229,21,220,194,34,182,102,166,188,47,18,186,230,252,53,163,229,77,113,167,7,81,112,231,154,217,18,41,23,133,69,227,249,50,138,194,91,42,73,77,226,114,180,74,103,35,113,84,14,126,126,255,93,171,37,109,188,207,240,1,217,72,53,175,21,172,133,247,25,62,32,184,124,208,125,230,3,210,218,78,144,6,210,232,222,15,230,3,226,208,91,210,31,151,87,112,11,139,216,154,153,114,116,36,116,205,249,107,70,203,155,226,78,15,162,224,206,53,179,37,82,46,10,139,198,243,101,20,133,183,84,146,154,196,229,104,149,206,70,226,168,28,252,252,254,187,86,75,218,56,218,240,1,217,72,53,175,21,172,133,163,13,31,16,92,62,232,62,243,1,105,109,39,72,3,105,116,239,7,243,1,113,232,45,233,143,203,43,184,133,69,108,205,76,249,202,80,20,116,45,126,138,63,159,63,175,104,105,81,14,233,75,69,83,225,215,36,14,199,44,107,157,84,19,65,109,225,244,1,249,202,232,166,31,196,45,111,93,241,52,80,52,199,180,53,231,231,52,237,212,74,139,122,130,177,118,24,107,135,177,118,184,217,107,135,17,21,205,23,135,33,246,156,19,14,79,169,217,105,123,107,152,31,208,69,210,115,135,89,63,192,62,119,152,18,254,185,195,102,63,192,123,238,112,62,253,128,60,207,29,222,208,149,54,236,220,97,126,63,128,119,238,112,220,126,128,251,220,225,44,250,1,44,143,248,185,195,75,137,255,220,225,160,125,133,163,207,29,246,246,3,130,206,29,14,239,7,36,59,119,216,217,15,16,59,119,216,223,15,136,58,119,88,172,31,224,60,119,216,236,7,136,156,59,236,237,7,152,231,14,71,247,3,216,185,195,97,253,128,229,109,47,116,205,250,182,224,188,231,204,229,254,229,252,109,83,240,211,117,210,230,243,245,203,100,209,114,202,228,165,207,147,203,47,181,87,34,39,87,62,103,55,255,48,109,5,115,21,173,101,88,253,109,189,133,75,201,175,145,179,92,16,13,175,118,131,249,240,36,138,210,15,223,82,252,165,130,105,120,229,15,178,174,36,8,111,173,224,28,97,154,177,181,195,183,0,255,93,254,115,22,174,153,32,185,116,237,144,41,162,242,2,77,195,81,120,63,1,122,8,119,194,139,1,176,157,156,227,1,56,103,8,231,12,225,156,161,230,158,51,84,125,28,141,126,45,144,16,51,97,59,61,129,159,163,63,7,192,118,114,199,172,138,250,203,235,7,138,227,117,67,108,94,65,231,14,167,195,141,194,180,242,62,119,216,194,173,17,249,210,159,59,236,5,239,220,225,106,34,253,185,195,69,32,233,252,0,227,158,99,126,128,174,241,231,7,24,111,92,156,249,1,239,216,253,230,233,140,7,232,26,63,30,160,107,44,30,192,190,167,57,222,88,139,157,31,240,217,110,238,176,249,1,166,44,238,120,192,169,132,55,63,224,27,18,139,7,232,90,88,60,64,215,130,230,7,48,92,96,124,95,68,46,38,151,144,239,147,31,16,94,60,224,210,238,213,146,238,167,25,15,96,87,201,230,7,24,190,214,55,63,224,86,98,197,3,204,252,43,200,74,34,54,63,64,215,88,60,64,215,30,33,225,243,3,158,35,217,207,15,48,236,51,230,252,0,93,179,227,1,186,38,50,63,96,166,180,59,30,176,91,155,115,141,235,224,249,1,199,74,11,164,227,36,145,249,1,236,151,127,126,128,174,137,204,15,56,69,58,85,58,77,58,93,90,44,157,33,157,41,157,37,157,45,245,78,60,224,178,113,117,175,1,80,22,230,33,30,80,11,188,220,126,185,29,158,158,156,114,18,138,206,84,235,218,251,205,203,21,79,78,119,110,127,217,104,106,126,153,178,214,147,72,41,158,182,202,177,34,158,4,121,75,196,183,135,52,186,143,162,195,210,163,158,152,184,40,255,220,225,199,219,143,7,214,136,157,59,252,120,226,250,6,149,228,223,183,206,29,118,166,90,215,222,111,243,234,138,221,37,174,228,200,25,126,238,176,59,183,253,203,58,119,56,186,214,143,183,205,115,135,249,57,227,156,59,28,206,43,232,220,97,179,20,251,180,206,29,230,211,41,230,220,97,91,26,17,11,224,35,254,185,195,143,183,211,158,59,28,87,98,150,30,246,196,32,30,128,120,0,226,1,136,7,212,47,30,240,122,251,245,118,120,122,114,202,73,40,58,83,173,107,239,55,47,87,60,57,221,185,253,101,163,169,249,101,202,90,79,34,165,120,218,42,199,138,120,18,228,45,81,246,186,143,162,200,210,163,158,152,250,225,205,246,155,237,240,244,228,148,147,80,116,166,90,215,222,111,94,174,120,114,186,115,251,203,70,83,243,203,148,181,158,68,74,241,180,85,142,21,241,36,200,91,162,236,117,31,69,145,165,71,61,49,73,222,5,176,135,8,246,16,193,30,34,216,67,164,60,108,106,111,106,135,167,39,167,156,132,162,51,213,186,246,126,243,114,197,147,211,157,219,95,54,154,154,95,166,172,245,36,82,138,167,173,114,172,136,39,65,222,18,101,175,251,40,138,44,61,234,137,233,61,252,219,96,179,234,11,100,135,15,96,126,64,45,240,108,251,217,118,120,122,114,202,73,40,58,83,173,107,239,55,47,87,60,57,221,185,253,101,163,169,249,101,202,90,79,34,165,120,218,42,199,138,120,18,228,45,81,246,186,143,162,200,210,163,158,152,184,248,171,29,73,238,36,161,155,36,39,75,75,194,221,42,205,47,27,126,215,153,202,187,199,147,140,39,103,28,185,157,148,130,164,230,229,13,170,227,239,236,45,194,93,76,194,32,137,204,123,118,205,195,180,29,183,13,163,116,16,183,77,197,106,27,223,210,162,91,43,138,71,178,103,43,249,51,193,195,151,182,39,185,147,132,110,146,156,44,45,9,119,171,52,191,108,248,93,103,42,239,30,79,50,158,156,113,228,118,82,10,146,154,151,55,168,142,207,140,19,225,46,38,97,144,68,230,61,187,230,241,180,157,172,229,226,214,69,148,202,7,247,78,38,105,116,107,69,73,84,140,118,48,46,128,113,129,166,142,11,124,104,111,222,184,192,145,125,217,142,11,204,236,203,99,92,96,9,13,30,23,152,215,103,142,11,204,239,203,98,92,224,246,237,73,238,68,67,188,76,88,78,150,118,123,226,126,192,237,219,249,101,195,239,58,83,121,247,120,146,241,228,140,35,183,147,82,144,212,188,188,65,117,252,240,222,34,220,197,36,12,146,200,188,103,215,60,76,219,113,219,48,74,7,113,219,84,172,182,241,45,45,186,181,162,120,36,123,182,146,63,19,213,196,126,195,225,233,31,217,59,107,202,225,28,157,169,214,181,191,132,200,157,236,116,144,87,217,244,237,198,211,86,117,172,40,111,137,210,211,79,66,97,191,225,50,53,157,7,222,51,156,46,61,126,201,112,138,206,84,235,218,95,66,228,78,118,58,200,171,108,250,118,227,105,171,58,86,148,183,68,233,233,39,161,240,158,225,247,244,152,15,120,231,112,186,244,248,37,195,41,58,83,173,107,127,9,145,59,217,233,32,175,178,233,219,141,167,173,234,88,81,222,18,165,167,159,132,194,59,135,223,217,99,62,224,29,195,233,210,227,151,12,167,232,76,181,174,253,37,68,238,100,167,131,188,202,166,111,55,158,182,170,99,69,121,75,148,158,126,18,10,239,24,126,71,143,249,128,125,134,211,165,199,47,25,78,209,153,106,93,251,75,136,220,201,78,7,121,149,77,223,110,60,109,85,199,138,242,150,40,61,253,36,20,246,25,222,167,199,124,192,222,195,233,210,227,151,12,167,232,76,181,174,253,37,68,238,100,167,131,188,202,166,111,55,158,182,170,99,69,121,75,148,158,126,18,10,123,15,103,91,175,242,247,17,122,87,72,125,216,62,66,239,74,92,223,160,146,252,251,214,62,66,206,84,235,218,95,130,221,185,98,247,94,61,87,114,228,156,213,74,34,169,181,143,144,8,204,125,132,248,181,137,179,143,80,56,130,246,17,50,249,178,79,107,31,33,190,36,197,236,35,196,231,29,207,118,226,239,35,244,174,225,180,251,8,37,177,238,119,13,191,171,199,250,1,23,71,156,15,253,187,123,103,77,57,156,163,51,213,186,246,151,184,120,168,72,29,228,85,54,189,204,60,109,85,199,138,242,150,40,61,253,100,20,46,238,177,51,213,47,28,74,151,30,191,100,56,69,103,170,117,237,47,113,225,80,145,58,200,171,108,122,153,121,218,170,142,21,229,45,81,122,250,201,40,228,81,175,143,98,141,37,0,0,61,135,153,137,222,154,126,174,164,165,80,44,126,169,148,195,247,87,74,149,180,0,148,129,13,35,197,240,121,105,176,154,18,46,156,8,27,104,150,37,86,137,51,32,134,231,208,66,0,44,172,209,56,106,23,116,0,192,194,170,143,51,134,139,166,28,206,209,153,106,93,251,75,100,43,117,26,106,103,12,151,217,110,60,109,85,199,138,242,150,40,61,253,100,20,206,232,177,249,1,103,14,23,77,57,156,163,51,213,186,246,151,200,86,234,52,212,206,28,46,179,221,206,28,46,95,146,96,222,121,75,148,158,126,50,10,103,150,234,3,142,171,224,40,226,239,97,100,19,0,122,18,191,223,125,182,23,6,250,188,133,61,208,35,202,167,14,110,170,189,160,167,42,235,60,43,122,121,182,218,194,74,207,44,140,146,46,185,244,201,74,58,75,89,215,126,74,246,157,178,181,91,28,127,198,201,91,239,60,185,199,161,205,203,187,112,40,111,221,148,213,246,213,126,162,171,132,91,27,118,26,11,218,186,104,11,128,133,1,0,144,31,254,0,113,174,49,252,33,52,1,36,196,31,193,118,122,2,43,49,23,11,128,237,164,66,244,25,35,38,188,103,140,24,247,140,63,243,140,17,153,232,154,66,84,226,61,99,132,149,99,103,140,76,33,131,100,42,177,207,24,121,199,238,211,44,156,103,140,232,26,255,140,17,93,99,103,140,176,239,105,142,83,48,252,103,140,204,34,179,201,28,227,158,200,25,35,199,17,145,51,70,62,69,172,51,70,62,219,205,189,176,251,105,158,49,242,121,226,62,99,196,148,197,125,198,200,169,228,52,226,61,99,68,215,190,33,177,51,70,116,45,236,140,17,93,179,207,24,57,223,248,245,45,227,239,219,228,59,99,92,46,48,190,47,34,23,147,75,200,247,201,15,8,239,140,145,75,187,87,75,186,159,230,25,35,236,202,58,99,132,93,71,159,49,162,107,236,140,145,235,140,239,235,137,247,140,145,91,201,109,198,125,118,198,136,153,127,5,89,73,216,25,35,186,182,154,120,207,24,185,151,56,207,24,209,53,118,198,136,174,61,66,204,51,70,116,109,189,241,231,63,99,228,57,18,118,198,136,174,89,103,140,108,35,226,103,140,24,246,185,251,140,145,137,146,251,236,113,195,58,57,103,143,235,154,125,198,136,174,177,51,70,14,148,194,207,24,153,41,237,62,99,100,183,54,231,178,243,62,92,103,140,124,88,250,72,55,157,157,49,114,172,180,64,58,206,248,197,63,99,196,176,198,221,103,140,176,95,206,179,199,143,151,216,25,35,186,22,117,246,184,174,157,44,157,34,157,42,157,38,157,46,45,150,206,144,206,148,206,146,206,150,234,115,246,56,80,93,252,9,250,210,5,226,99,208,54,144,57,62,158,202,170,62,1,155,4,106,142,127,199,220,24,88,64,79,89,216,87,247,66,155,198,195,191,193,7,192,2,122,202,194,242,225,87,254,190,194,97,96,251,10,47,73,92,239,120,37,47,30,31,151,158,123,95,97,47,102,37,210,64,252,125,133,249,105,249,239,43,108,195,218,87,152,159,90,204,190,194,252,182,94,146,243,190,194,75,82,239,43,28,151,223,146,70,254,191,150,124,31,161,205,24,25,2,114,69,89,22,246,242,96,181,244,208,52,92,51,21,58,168,62,174,245,180,210,175,61,191,175,203,180,21,151,198,160,118,125,15,217,207,233,227,170,222,15,248,138,142,103,161,9,56,99,92,89,156,235,98,97,203,70,188,176,238,241,114,185,175,188,247,189,212,220,244,157,215,231,236,233,231,110,243,229,209,48,191,221,18,241,228,119,203,229,79,117,202,236,204,107,95,243,75,219,252,253,188,108,201,120,82,248,249,4,115,225,215,192,41,155,155,26,79,74,175,190,130,106,30,84,218,166,16,46,169,91,34,158,125,240,248,123,117,204,175,45,223,34,253,54,17,86,138,39,107,84,142,48,170,252,28,81,154,241,183,23,175,69,188,18,6,229,241,107,194,45,151,223,238,196,228,173,55,214,143,226,127,58,0,182,3,0,113,240,25,204,238,1,122,8,159,27,17,187,151,52,87,53,106,84,69,249,170,46,103,249,154,206,158,126,20,69,51,125,126,105,17,144,250,97,251,246,102,214,123,33,250,1,64,15,225,113,188,211,1,176,157,84,248,237,136,23,214,61,94,46,247,149,247,190,151,154,155,190,251,218,207,221,230,203,163,97,126,187,37,226,201,239,150,203,159,234,148,217,153,215,190,230,151,182,249,251,121,217,146,241,164,240,243,9,230,194,175,129,83,54,55,53,158,148,94,125,5,213,60,168,180,77,33,92,82,183,68,60,251,224,241,247,234,152,95,91,190,69,250,109,34,172,20,79,214,168,28,97,84,249,57,162,52,227,111,47,94,139,120,37,12,202,227,215,132,91,46,191,221,137,201,43,130,69,147,170,234,195,174,23,168,193,137,149,149,190,151,112,125,237,226,3,245,147,184,204,122,125,77,175,106,125,69,36,171,174,244,229,96,180,85,86,75,212,207,118,234,136,184,245,194,62,66,216,71,8,251,8,97,31,161,58,3,99,131,101,201,135,177,193,226,233,139,81,108,218,216,32,124,0,124,0,124,64,179,125,64,114,28,143,145,33,0,22,166,33,30,128,120,0,226,1,136,7,0,0,144,55,190,132,185,153,21,196,211,29,232,0,128,133,21,137,69,142,221,62,78,12,217,249,227,164,88,187,130,28,224,209,243,159,27,165,255,98,48,73,201,172,240,229,148,59,57,157,92,147,157,160,78,225,200,121,106,46,178,159,38,64,245,244,4,156,15,200,249,25,205,130,254,98,236,11,214,155,222,16,253,66,0,200,12,43,59,197,151,4,0,88,88,117,112,99,167,248,146,0,0,11,171,14,190,215,41,190,36,0,148,99,97,39,226,45,146,3,13,79,50,0,219,105,52,206,197,188,72,32,71,252,57,254,231,237,97,252,20,231,13,102,134,47,79,132,14,234,107,97,152,43,140,185,194,152,43,220,236,185,194,73,125,64,167,207,242,1,186,118,144,76,201,193,242,33,114,144,15,120,191,60,72,14,149,109,31,192,238,239,67,188,62,96,127,194,247,1,135,18,167,15,152,78,130,124,192,97,242,225,178,168,15,152,38,139,248,0,67,227,99,62,192,228,228,244,1,211,101,183,15,56,209,248,60,137,184,125,0,131,223,7,28,33,51,31,112,14,9,243,1,223,52,62,45,31,112,164,161,185,163,140,191,25,50,243,1,223,37,223,35,23,144,11,201,69,187,159,88,158,15,208,181,203,8,243,1,151,147,180,62,224,104,121,41,153,41,187,125,0,203,97,249,128,229,196,244,1,236,147,249,128,89,114,184,15,88,107,92,61,76,214,25,159,225,62,64,215,54,25,127,209,62,96,182,44,238,3,84,201,246,1,186,38,234,3,230,200,166,15,56,64,98,62,96,174,28,238,3,12,13,112,124,192,60,201,237,3,230,201,243,101,203,7,232,218,130,110,222,120,62,192,176,70,233,24,153,249,128,19,164,104,31,192,71,175,172,23,248,225,174,226,75,2,0,44,172,58,184,100,87,241,37,45,156,82,211,120,209,17,42,108,160,201,114,193,7,192,7,192,6,224,3,122,9,75,118,21,95,18,0,122,201,194,16,19,68,76,16,49,193,102,199,4,225,3,224,3,224,3,48,46,80,103,124,103,87,241,37,1,0,22,214,11,152,210,163,167,204,0,176,48,64,12,239,196,190,194,64,79,90,88,92,190,209,241,128,149,148,125,242,226,1,171,168,57,87,120,53,165,100,13,189,147,122,227,1,119,209,187,41,139,7,220,67,7,201,189,212,142,7,220,103,92,223,223,165,42,30,15,120,128,62,72,167,145,181,244,33,250,48,93,71,31,161,254,120,192,163,244,49,58,135,60,78,179,139,7,172,167,86,60,96,131,33,237,19,116,33,121,146,90,241,128,167,104,116,60,224,105,250,12,245,198,3,118,74,103,19,145,120,128,61,87,120,163,193,243,89,227,239,57,234,142,7,108,162,207,211,23,232,102,202,139,7,108,161,222,120,192,139,244,37,106,197,3,94,166,34,241,128,87,40,139,7,188,74,151,146,215,168,119,174,240,235,244,54,242,6,181,226,1,111,210,21,100,43,101,241,128,109,244,45,234,141,7,188,77,221,241,0,54,87,120,29,217,78,205,120,192,14,186,158,12,81,127,60,160,77,195,230,10,15,83,43,30,176,147,38,139,7,140,80,119,60,96,153,196,139,7,236,162,246,92,97,51,30,48,74,195,227,1,29,186,59,30,64,45,109,250,227,1,68,145,20,150,194,226,1,178,178,64,162,138,162,240,227,1,170,98,199,3,198,41,238,185,194,227,21,177,120,64,191,114,178,212,82,38,40,19,149,73,202,98,105,178,50,160,76,81,6,149,222,217,87,248,209,81,177,123,73,115,85,163,70,85,148,175,234,114,150,175,233,178,52,84,255,150,1,128,222,195,153,152,79,86,65,108,194,14,18,0,44,172,209,216,177,19,58,0,96,97,77,198,46,180,16,0,11,211,48,46,128,113,1,140,11,52,125,92,0,62,0,62,0,62,0,62,32,221,122,1,182,151,24,37,113,247,18,203,126,189,64,185,123,137,241,124,0,127,47,177,107,228,120,62,192,189,151,152,237,3,194,247,18,203,106,189,192,117,100,41,9,219,75,204,90,47,32,186,151,152,229,3,202,216,75,204,233,3,226,239,37,102,250,128,100,123,137,121,125,64,150,123,137,137,172,23,8,223,75,108,242,78,47,12,205,140,125,59,225,78,51,175,220,191,156,191,109,10,126,186,78,218,124,190,60,26,230,183,91,30,63,13,175,92,126,169,189,215,78,174,252,90,184,115,123,107,100,255,185,105,187,245,232,175,29,159,11,191,6,78,217,220,212,120,82,122,245,21,84,243,160,210,54,133,112,73,189,109,192,183,8,47,127,175,142,249,181,13,106,63,30,173,40,125,134,217,39,223,70,226,228,136,210,140,191,189,120,45,226,149,48,40,79,184,181,187,219,156,247,212,242,49,201,7,93,179,190,157,112,167,153,87,238,95,206,223,54,5,63,93,39,109,62,95,30,13,243,219,45,143,159,134,87,46,191,212,222,107,39,87,126,45,220,185,189,53,178,255,220,180,221,122,244,215,142,207,133,95,3,167,108,110,106,60,41,189,250,10,170,121,80,105,155,66,184,164,222,54,224,91,132,151,191,87,199,252,218,6,181,31,143,86,148,62,195,236,147,111,35,113,114,68,105,198,223,94,188,22,241,74,24,148,39,220,218,221,109,206,123,106,249,192,190,194,216,87,24,251,10,99,95,97,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,128,102,249,128,230,206,228,124,6,115,133,1,88,88,142,56,189,160,243,128,191,162,23,95,18,168,19,206,40,237,100,106,88,88,213,177,19,253,0,0,22,214,104,28,131,93,95,1,88,88,15,224,239,176,63,11,144,16,231,194,118,122,2,191,143,189,90,0,216,78,42,212,125,221,224,71,58,69,141,13,210,113,11,201,129,106,218,117,131,59,165,242,215,13,254,253,222,34,99,131,7,169,233,215,13,42,227,242,89,55,120,176,154,197,186,193,143,116,162,214,14,167,95,55,248,245,189,197,214,13,170,227,202,91,55,152,141,39,249,92,174,30,53,41,245,240,114,118,42,239,42,46,135,232,146,159,107,192,255,58,197,213,177,14,218,44,94,198,50,181,242,153,78,21,169,135,151,179,83,121,87,113,57,68,151,252,76,3,124,64,113,117,172,131,54,139,151,49,63,142,135,150,54,194,10,0,197,96,111,140,227,1,64,163,177,172,193,51,102,209,15,0,0,244,3,0,32,62,254,145,51,186,254,79,133,141,184,159,135,177,253,138,225,248,78,21,169,135,151,179,83,121,87,113,57,68,151,60,190,1,49,193,226,234,88,7,109,22,47,99,153,90,249,179,78,21,169,135,151,179,83,121,87,113,57,68,151,252,179,6,248,128,226,234,88,7,109,22,47,227,159,97,92,0,0,18,2,241,0,248,0,0,62,0,72,131,207,119,170,72,61,188,156,157,202,187,138,203,33,186,228,231,27,240,46,80,92,29,235,160,205,226,101,108,130,141,101,137,219,219,208,1,208,91,22,54,101,82,121,181,253,163,78,21,169,135,151,179,83,121,87,113,57,68,151,252,163,202,248,232,252,36,41,174,142,213,209,102,149,100,52,57,90,124,179,228,191,114,175,234,235,59,62,142,30,233,197,90,1,176,176,60,241,93,204,203,200,24,223,131,70,1,160,52,204,70,63,0,128,133,53,26,115,208,66,0,44,172,80,108,30,229,95,135,229,139,71,213,250,45,70,33,30,159,228,18,21,93,62,111,92,176,119,176,156,249,200,46,66,53,9,231,188,53,157,5,253,170,91,67,60,252,203,40,255,58,44,95,60,170,214,111,49,10,255,50,154,127,61,203,40,31,141,139,246,206,171,158,249,200,46,66,53,9,231,188,53,157,5,253,127,41,192,7,68,239,39,184,146,178,79,222,126,130,171,168,185,159,224,106,74,201,26,122,39,245,238,39,120,23,189,155,178,253,4,239,161,131,228,94,106,239,39,120,159,113,125,127,151,170,248,126,130,15,208,7,233,52,178,150,62,68,31,166,235,232,35,212,127,214,216,163,244,49,58,135,60,78,69,246,19,156,38,139,236,39,184,158,90,251,9,110,48,164,125,130,46,36,79,82,107,63,193,167,104,244,126,130,79,211,103,168,127,63,193,179,73,188,253,4,55,26,60,159,53,254,158,163,238,253,4,55,209,231,233,11,116,51,229,237,39,184,133,122,247,19,124,145,190,68,173,253,4,95,166,34,251,9,190,66,217,126,130,175,210,165,228,53,234,221,79,240,117,122,27,121,131,90,251,9,190,73,87,144,173,148,237,39,184,141,190,69,189,103,141,189,77,121,251,9,110,167,230,126,130,59,232,122,50,68,253,251,9,182,105,216,126,130,195,212,218,79,112,39,77,182,159,224,8,117,159,53,198,223,79,112,23,245,238,39,56,74,195,247,19,236,208,221,251,9,82,75,155,254,253,4,137,34,41,44,133,237,39,40,43,11,36,170,40,10,127,63,65,85,177,247,19,28,167,184,247,19,28,175,136,237,39,216,175,156,44,181,148,9,202,68,101,146,178,88,154,172,12,40,83,148,65,5,103,141,85,15,223,199,24,1,208,227,152,212,225,95,135,229,139,71,213,250,45,70,97,82,39,255,122,150,81,190,140,246,204,87,118,17,170,73,56,231,173,233,44,232,215,197,26,0,19,63,192,255,228,41,240,207,149,215,222,191,160,125,83,226,193,81,254,117,88,190,120,84,173,223,98,20,30,28,205,191,158,101,148,47,163,61,131,238,253,235,222,69,105,52,137,214,242,214,116,22,244,235,98,13,98,152,220,225,95,135,229,139,71,213,250,45,70,97,114,39,255,122,150,81,190,140,246,204,87,118,17,170,73,56,231,173,233,44,232,215,197,26,0,160,142,248,33,250,246,2,88,219,224,147,83,155,92,119,160,73,168,251,121,131,246,252,128,188,207,27,212,181,133,221,207,116,231,13,234,90,220,249,1,217,159,55,200,174,163,231,7,232,90,250,243,6,89,90,30,231,13,234,90,22,231,13,58,231,7,24,214,153,203,121,131,12,34,231,13,234,90,221,207,27,4,128,122,227,178,6,191,23,248,251,1,63,83,205,126,192,207,213,95,168,191,84,127,165,94,165,94,173,94,163,154,253,128,107,213,176,126,192,175,85,119,63,224,58,117,169,106,247,3,174,87,237,126,192,13,42,235,7,252,70,229,245,3,150,169,206,126,192,111,85,179,31,112,163,122,147,58,141,220,172,78,39,183,168,183,170,183,169,65,253,128,219,213,185,228,14,213,221,15,88,174,90,253,128,21,234,74,213,221,15,88,165,154,253,128,213,170,213,15,88,163,242,251,1,119,170,172,31,112,151,106,247,3,238,86,191,72,238,81,173,126,192,189,170,221,15,184,79,181,251,1,247,171,172,31,240,128,106,245,3,30,84,195,251,1,107,85,111,63,224,33,245,91,228,97,149,245,3,214,169,225,253,128,71,12,94,143,170,206,126,192,99,170,217,15,120,92,93,175,102,219,15,216,160,250,251,1,79,168,86,63,224,73,149,245,3,158,82,159,86,205,126,192,51,234,70,85,172,31,240,172,234,237,7,60,167,70,247,3,54,169,97,253,128,231,85,241,126,192,11,170,221,15,216,172,242,250,1,91,212,240,126,192,139,42,235,7,188,164,142,61,97,170,187,31,240,170,106,246,3,94,83,95,87,237,126,192,27,42,175,31,240,166,186,85,181,251,1,219,212,183,84,119,63,224,109,213,217,15,216,174,238,80,23,73,67,106,91,173,106,63,96,193,40,255,58,44,95,60,170,214,111,49,10,11,70,243,175,103,25,229,203,104,207,124,101,23,161,154,132,115,222,154,206,130,126,93,172,1,200,14,231,239,1,29,84,3,107,240,244,213,20,135,119,122,147,87,150,184,98,16,118,2,244,14,182,142,214,135,106,53,184,1,208,123,111,97,231,104,125,168,86,131,27,0,189,247,22,134,71,235,67,181,26,220,0,232,189,183,208,30,173,15,213,106,112,3,160,247,222,194,208,104,125,168,86,131,27,0,189,247,22,182,143,214,135,106,53,184,1,208,123,111,97,199,104,125,168,86,131,27,0,189,247,22,222,30,173,15,213,106,112,3,160,247,222,194,91,163,245,161,90,13,110,0,244,222,91,216,54,90,31,170,213,224,6,64,239,189,133,93,163,245,161,90,13,110,0,244,222,91,24,29,173,15,213,106,112,3,160,247,222,194,228,22,116,0,36,195,127,96,63,193,134,227,88,252,47,80,24,190,218,200,149,138,117,177,176,164,251,9,26,247,28,251,8,233,90,220,253,4,77,56,247,17,210,53,254,126,130,186,230,220,79,208,66,213,246,19,52,101,17,217,79,240,27,18,219,71,72,215,194,246,19,212,181,160,253,4,25,46,48,190,163,246,19,100,223,75,186,159,105,247,19,212,181,176,253,4,205,252,226,251,9,234,26,219,71,72,215,202,216,79,208,176,207,20,251,9,234,90,242,253,4,117,45,191,253,4,117,173,136,253,4,255,25,59,236,118,241,159,232,59,2,13,197,63,225,156,3,0,168,13,246,27,232,173,250,252,238,206,250,81,206,151,54,0,219,13,199,248,189,160,123,49,188,27,49,65,0,22,166,33,38,136,152,32,98,130,136,9,2,0,208,171,248,31,196,177,67,48,7,239,2,0,44,76,203,251,188,193,187,41,239,93,224,62,170,107,247,83,93,139,115,222,224,3,244,65,58,141,172,165,15,209,135,233,58,250,8,45,246,93,96,67,87,218,184,231,13,62,77,243,60,111,112,19,125,158,190,64,55,83,231,187,64,223,36,189,251,46,176,133,122,207,27,124,145,190,68,173,119,1,50,41,237,57,67,175,83,239,121,131,91,41,255,93,224,92,153,127,222,224,118,26,254,46,208,166,121,159,55,40,77,138,126,23,216,69,227,158,55,216,161,187,223,5,168,190,251,93,32,236,188,65,89,89,32,81,69,228,93,96,156,146,252,188,193,150,50,65,153,168,76,82,22,75,147,149,1,101,138,50,168,200,147,240,46,128,121,130,197,1,243,4,1,160,74,216,183,15,58,8,198,145,25,107,103,102,46,218,158,27,66,117,222,88,218,124,180,115,4,238,27,110,106,205,127,72,209,250,189,108,97,205,181,236,184,248,47,244,212,0,88,88,13,144,223,201,143,121,158,41,153,156,118,111,157,57,26,79,15,189,118,202,167,179,62,217,212,77,140,10,203,213,75,186,92,53,90,63,202,249,210,238,221,214,187,174,199,206,92,118,214,62,27,139,16,163,194,114,53,217,2,113,238,112,52,112,238,48,80,39,220,56,90,63,202,249,210,70,235,213,177,246,69,106,226,74,195,199,255,87,131,252,252,33,88,215,12,192,118,106,130,189,58,252,235,176,124,241,168,90,191,247,234,84,165,158,101,148,47,179,158,249,200,46,66,53,9,231,58,104,186,46,214,0,212,11,191,198,58,18,160,70,184,97,180,126,148,243,165,93,39,252,182,199,34,253,201,173,0,22,145,28,183,140,214,143,114,190,180,209,122,117,172,125,54,154,120,207,128,40,95,88,32,0,68,225,122,188,17,197,233,209,141,246,34,239,60,107,245,91,120,97,192,101,5,176,8,0,168,26,110,64,63,32,78,175,105,180,23,121,231,89,171,235,225,245,129,18,172,160,234,118,247,27,248,93,0,0,128,6,98,25,188,63,208,197,111,97,9,0,0,84,8,63,193,59,59,208,147,22,54,119,10,116,47,134,137,56,15,12,128,133,1,141,196,170,17,232,160,158,184,118,18,116,224,199,31,34,202,0,36,196,205,176,157,46,112,222,32,206,27,196,121,131,56,111,176,215,240,228,174,58,243,41,74,250,180,242,85,93,78,160,41,56,30,239,182,0,108,167,148,119,1,251,188,65,150,74,199,250,132,252,119,1,93,27,236,94,91,239,2,236,122,31,226,125,23,8,63,111,208,122,23,152,78,130,222,5,216,117,182,239,2,70,207,107,236,93,192,228,228,124,23,208,181,232,243,6,25,252,239,2,71,200,34,231,13,234,154,245,46,96,183,129,251,188,65,235,46,239,93,64,215,188,231,13,38,125,23,208,181,165,198,159,251,93,128,229,240,158,55,200,62,87,117,63,195,223,5,214,26,87,236,188,65,93,11,127,23,208,181,77,198,95,244,187,128,174,37,59,111,80,215,68,223,5,116,205,121,222,160,174,133,191,11,232,26,239,93,192,123,222,160,149,194,222,5,116,109,65,247,119,188,119,1,195,26,187,191,197,206,27,228,35,206,187,192,145,33,171,150,191,201,245,165,175,43,217,120,168,55,50,162,35,46,57,15,111,230,36,197,214,12,233,30,229,104,163,109,57,106,205,198,219,25,113,217,145,163,180,135,245,89,45,221,246,113,25,230,242,221,233,185,251,112,139,79,121,151,175,244,232,216,157,142,18,199,194,142,30,200,172,182,99,124,103,198,166,152,69,63,224,32,153,146,131,229,67,228,160,126,192,251,229,65,114,168,156,119,63,224,48,249,112,89,180,31,48,77,78,219,15,152,46,23,213,15,56,210,208,220,81,198,223,12,185,140,126,192,209,242,82,50,83,22,239,7,204,146,139,237,7,204,150,243,238,7,204,145,157,253,128,185,114,22,253,128,121,242,124,57,125,63,224,24,185,184,126,64,111,226,207,241,54,8,192,194,0,0,200,13,95,130,15,0,128,70,227,139,240,1,0,208,104,44,199,60,196,74,98,5,218,5,0,0,0,232,97,172,196,255,115,0,208,104,172,130,15,16,196,17,136,216,0,176,48,0,104,40,222,222,213,123,156,0,0,16,199,91,187,122,143,19,144,53,134,119,165,207,209,43,216,51,209,27,230,94,120,47,173,152,197,2,241,48,180,43,125,142,230,232,162,217,250,169,115,43,1,64,51,177,166,176,62,202,157,232,13,85,26,119,163,125,26,138,87,119,85,135,10,80,85,188,136,246,5,106,133,123,241,63,90,76,124,21,103,140,64,111,53,213,20,218,0,0,154,141,251,51,253,31,31,123,139,99,111,113,236,45,142,189,197,155,137,191,68,127,10,128,133,53,26,231,162,133,0,88,88,163,113,44,90,168,48,124,117,16,22,86,93,68,199,3,86,82,246,201,219,87,120,21,53,227,1,171,41,37,107,232,157,212,27,15,184,139,222,77,89,60,224,30,58,72,238,165,118,60,224,62,227,250,254,46,85,241,125,133,31,160,15,210,105,100,45,125,136,62,76,215,209,71,168,63,30,240,40,125,140,206,33,143,211,236,246,21,94,79,173,120,192,6,67,218,39,232,66,242,36,181,226,1,79,209,232,125,133,159,166,207,80,111,60,96,167,116,54,17,217,87,216,142,7,108,52,120,62,107,252,61,71,221,251,10,111,162,207,211,23,232,102,202,139,7,108,161,222,125,133,95,164,47,81,43,30,240,50,21,137,7,188,66,89,60,224,85,186,148,188,70,189,241,128,215,233,109,228,13,106,237,43,252,38,93,65,182,82,22,15,216,70,223,162,222,120,192,219,212,189,175,48,139,7,172,35,219,169,25,15,216,65,215,147,33,234,143,7,180,105,88,60,96,152,90,241,128,157,52,217,190,194,35,212,29,15,88,38,241,226,1,187,168,29,15,48,247,21,30,165,225,241,128,14,221,29,15,160,150,54,253,251,10,19,69,234,238,4,206,226,1,178,178,64,162,138,162,240,227,1,170,98,199,3,198,41,238,120,192,120,69,108,95,225,126,229,100,169,165,76,80,38,42,147,148,197,210,100,101,64,153,162,12,42,194,241,128,33,199,103,90,12,5,92,135,229,11,197,245,3,156,220,67,194,20,98,213,234,134,129,184,245,252,205,238,18,203,6,98,241,29,202,70,230,155,66,36,190,89,160,54,183,12,136,201,121,235,64,184,124,183,133,210,217,65,227,183,212,237,3,119,12,164,107,205,20,101,98,209,95,62,176,34,214,110,255,43,7,10,151,177,7,240,196,64,211,53,0,36,197,67,152,83,211,19,248,64,11,58,0,146,225,97,248,0,0,104,52,126,86,235,126,246,58,120,48,0,72,137,159,227,93,27,0,26,141,31,193,7,116,113,221,80,20,130,243,136,148,78,66,183,40,120,37,136,150,40,189,204,121,215,58,77,139,198,177,138,44,165,44,223,18,202,144,33,140,99,22,210,216,52,162,168,213,221,135,85,61,38,248,79,248,191,38,39,77,164,165,247,79,67,104,27,19,233,231,8,61,178,119,81,115,132,30,221,27,115,132,48,71,168,25,115,132,30,219,187,184,57,66,240,1,240,1,240,1,240,1,240,1,240,1,240,1,205,245,1,58,222,135,128,134,226,41,140,176,247,4,86,183,161,3,0,182,147,6,119,181,189,176,238,57,243,216,247,156,185,220,191,254,127,123,231,1,39,55,113,246,255,123,230,70,99,239,97,227,134,75,10,16,210,104,54,205,229,108,8,36,4,72,79,168,33,166,198,38,1,18,106,98,32,61,89,222,247,31,32,161,38,121,211,222,64,10,121,67,18,74,168,6,140,233,6,247,94,176,177,177,193,184,98,176,193,54,216,190,59,223,222,254,165,221,147,87,210,142,180,146,86,210,170,252,62,223,207,221,105,165,153,103,158,121,230,217,185,209,104,230,145,241,115,69,66,181,92,163,108,121,185,213,58,233,178,204,122,203,244,55,235,85,173,181,85,35,99,169,242,146,205,229,59,89,203,190,84,183,181,116,170,127,197,110,206,90,202,107,100,204,103,39,195,106,93,251,114,100,26,213,178,143,220,83,170,115,217,203,176,234,111,231,93,126,112,110,45,251,20,78,150,169,88,71,238,1,213,103,229,223,51,103,203,216,233,101,246,4,39,16,75,12,177,196,16,75,12,177,196,146,138,182,119,248,95,17,141,231,30,243,188,63,209,118,239,112,93,76,118,45,43,244,189,195,221,60,83,35,93,0,123,135,45,72,247,14,251,32,124,223,9,96,239,112,4,164,45,134,200,231,7,226,185,64,173,231,2,127,233,229,102,28,240,215,94,206,207,5,202,227,128,41,84,30,7,68,251,92,224,111,189,234,125,46,112,103,175,100,196,16,49,142,3,240,92,64,206,106,204,237,2,16,240,56,224,110,81,30,7,220,35,238,21,247,137,255,136,251,197,3,226,65,81,30,7,60,36,140,227,128,202,124,0,39,109,62,224,97,97,30,7,60,34,38,138,202,124,192,163,162,50,31,240,152,24,162,246,220,143,11,217,56,96,146,48,142,3,158,16,229,113,192,100,241,164,24,74,79,137,97,244,180,120,70,60,43,236,230,3,158,19,173,244,188,48,143,3,166,8,125,28,240,130,120,81,152,231,3,166,138,242,56,96,154,208,199,1,211,133,124,62,96,134,208,230,3,102,138,202,124,192,44,113,62,205,22,250,56,96,142,168,140,3,230,138,202,124,192,60,161,141,3,230,11,125,62,96,129,112,30,7,44,20,230,113,192,245,180,72,220,64,139,133,54,31,176,68,84,198,1,178,249,128,151,212,178,150,10,109,62,64,31,7,44,19,229,113,192,203,98,185,240,55,31,48,145,228,243,1,43,132,113,28,80,158,15,120,69,232,243,1,43,133,54,14,88,37,94,21,229,249,128,215,196,106,97,28,7,216,207,7,188,46,172,243,1,107,68,237,249,128,181,194,105,28,176,78,88,199,1,246,243,1,235,69,101,28,176,65,88,199,1,218,124,192,70,225,60,31,240,134,208,198,1,155,68,247,55,76,152,199,1,155,69,121,62,96,139,120,91,84,230,3,222,17,178,113,192,86,177,77,84,198,1,219,197,187,194,60,31,240,158,48,142,3,118,136,157,98,28,219,37,218,68,182,98,139,175,193,56,0,248,100,45,124,39,21,60,138,103,188,0,190,19,240,189,128,187,103,131,149,123,129,98,254,99,205,156,62,222,124,96,179,221,179,193,131,154,251,209,193,205,149,57,65,237,252,144,210,111,247,115,130,90,106,237,217,224,176,238,17,107,245,189,192,33,205,135,54,187,125,54,232,110,78,80,157,129,233,190,23,40,151,100,124,54,56,172,249,60,90,55,200,121,78,80,163,250,217,224,97,205,110,230,4,139,121,253,94,224,112,213,114,71,168,63,71,54,155,231,4,245,150,145,205,9,22,243,214,57,65,237,188,159,123,129,163,154,39,210,240,102,243,189,128,150,194,58,39,168,253,214,158,13,142,104,118,126,54,184,80,61,210,238,5,212,123,22,199,103,131,234,127,105,245,167,246,179,193,145,205,254,230,4,139,121,183,207,6,71,53,27,239,5,90,155,157,231,4,85,11,72,158,13,90,231,4,71,55,143,105,214,174,104,247,2,197,252,137,165,180,222,158,13,170,222,200,142,110,118,55,39,104,247,221,79,202,189,192,230,182,205,109,206,215,253,75,246,35,209,120,85,63,182,254,149,165,242,166,167,57,117,117,222,218,210,170,117,10,218,78,110,114,201,172,213,24,47,146,105,16,182,70,114,127,168,199,246,181,228,104,215,107,125,99,210,199,237,61,178,85,95,16,28,27,48,31,144,10,16,87,24,248,101,35,250,128,68,176,166,109,77,155,243,117,255,146,253,72,52,94,213,143,173,127,101,169,188,233,105,78,93,157,183,182,180,106,157,130,182,147,155,92,50,107,53,198,139,100,26,132,173,81,240,182,175,37,81,187,94,235,27,83,13,222,53,134,248,1,136,31,128,119,141,129,108,177,9,99,96,144,32,6,182,215,119,221,123,78,103,137,198,171,250,113,117,14,55,103,130,179,65,88,121,235,111,55,153,181,226,227,69,97,107,84,191,124,63,18,6,182,123,205,133,123,1,220,11,224,94,32,219,247,2,201,232,3,198,14,76,102,31,112,214,192,56,246,1,103,15,204,114,31,112,206,64,244,1,94,251,128,50,136,33,130,24,34,136,33,130,24,34,32,29,228,250,194,6,0,20,243,189,234,158,177,185,87,129,21,1,176,227,146,216,175,225,253,78,17,173,148,5,46,235,1,15,3,193,179,21,79,216,1,200,52,219,208,7,128,212,128,231,2,120,46,128,231,2,120,46,144,100,198,183,123,191,146,134,218,5,39,53,13,118,138,179,205,131,146,135,86,3,193,177,111,19,108,96,207,225,1,91,103,120,40,214,110,117,144,58,186,251,218,24,151,37,215,31,75,172,18,87,184,250,94,160,188,78,208,122,47,16,206,90,225,48,239,5,86,240,90,247,2,242,117,130,178,123,1,175,235,4,205,247,2,65,172,19,156,220,191,222,184,194,118,239,23,168,125,47,96,93,39,104,119,47,224,188,78,208,223,189,128,187,184,194,206,235,4,107,221,11,184,91,39,104,188,23,40,175,19,116,115,47,96,93,39,88,190,23,112,19,75,12,251,6,141,60,135,56,146,32,181,244,237,13,27,212,230,113,220,71,1,0,74,76,70,111,144,241,182,14,219,3,224,97,0,36,159,157,153,95,9,178,11,107,97,0,8,148,219,48,58,0,177,161,29,61,60,200,52,191,71,127,12,15,72,149,135,193,163,189,178,120,55,108,0,224,97,32,56,58,48,178,6,32,81,44,66,47,13,224,97,41,224,25,216,25,192,119,234,170,23,246,14,99,239,48,246,14,99,239,112,146,121,184,224,238,156,223,84,241,168,81,28,245,139,187,158,141,183,116,240,242,103,13,12,163,196,36,143,3,158,105,142,110,28,240,108,179,215,113,192,243,205,250,56,96,74,115,35,198,1,47,52,219,143,3,94,108,174,61,14,152,218,236,110,28,48,173,185,158,113,192,244,102,239,227,128,25,205,51,155,147,49,14,152,213,60,187,25,227,128,208,251,114,204,7,196,132,115,19,23,177,60,173,190,19,78,189,198,197,118,79,226,163,46,234,59,30,59,42,99,210,18,208,24,245,10,158,117,5,119,231,252,166,138,71,141,2,246,17,94,79,57,122,62,55,249,227,106,227,104,180,139,119,237,83,52,238,193,156,96,131,244,195,156,96,244,242,107,205,9,162,15,64,31,128,62,0,125,0,112,207,123,29,176,1,128,135,97,141,16,214,8,97,141,16,214,8,37,155,223,22,162,207,153,116,110,197,238,166,152,251,102,220,198,1,47,114,217,56,64,139,45,62,149,151,199,1,211,56,167,233,124,6,183,142,3,102,242,114,108,241,217,188,31,205,225,97,199,22,95,202,151,241,81,244,50,119,51,14,24,218,236,102,28,176,156,27,99,139,191,194,199,210,74,174,143,3,86,113,55,177,197,95,227,214,113,64,7,243,26,91,124,181,90,230,235,234,207,26,30,84,108,241,55,185,155,113,192,91,92,27,7,108,230,19,105,11,151,197,22,127,135,235,177,197,183,114,61,182,248,118,254,46,183,142,3,222,227,78,177,197,119,242,229,180,139,123,141,45,222,206,245,113,64,7,247,23,91,124,55,55,143,3,38,49,119,177,197,11,60,136,216,226,164,48,69,31,7,148,99,139,43,138,124,28,32,20,251,216,226,61,21,119,177,197,115,74,186,99,139,63,222,21,125,78,0,224,97,0,0,47,136,193,176,65,252,88,138,94,26,192,195,50,77,27,158,13,2,120,88,10,56,4,123,1,128,79,122,96,124,14,64,132,244,140,253,55,46,135,62,33,145,220,218,25,125,78,16,47,90,98,250,221,133,135,161,15,0,232,3,64,248,96,62,0,248,165,55,198,254,232,3,64,166,217,27,125,128,11,142,104,177,158,57,178,234,204,81,45,222,229,14,111,9,66,187,113,61,163,179,196,109,158,203,186,115,79,142,187,36,121,71,248,178,192,200,150,81,45,211,93,106,178,66,77,215,106,83,202,6,23,50,182,185,42,135,231,148,156,200,57,165,24,93,210,97,140,141,38,251,229,188,91,97,84,174,53,231,199,122,86,250,120,234,3,142,246,209,98,215,229,174,247,164,233,29,129,212,203,43,216,55,136,125,131,216,55,136,125,131,73,230,152,150,164,215,0,52,138,126,184,23,72,5,232,3,128,95,250,163,15,72,5,19,176,38,27,192,119,50,205,0,244,229,192,39,251,192,119,64,3,232,72,252,12,12,0,241,226,143,61,124,255,23,192,174,46,16,238,56,3,30,6,0,104,0,255,238,142,64,126,119,70,34,145,251,31,7,12,64,47,13,66,5,30,22,119,250,163,133,0,60,44,5,220,238,123,28,208,7,45,4,66,5,30,22,13,151,116,69,159,19,128,52,121,88,245,126,129,187,69,121,191,192,61,226,94,113,159,248,143,184,95,60,32,30,20,229,253,2,15,9,227,251,5,42,251,5,56,105,251,5,30,22,230,253,2,143,136,137,162,178,95,224,81,81,217,47,240,152,24,66,197,252,227,66,246,126,129,73,194,184,95,224,9,81,126,191,192,100,241,164,24,74,79,137,97,244,180,120,70,60,43,236,246,11,60,39,90,233,121,97,222,47,48,69,232,251,5,94,16,47,10,243,126,129,169,162,188,95,96,154,208,247,11,76,23,242,253,2,51,132,182,95,96,166,168,236,23,152,37,206,167,217,66,127,191,192,28,81,121,191,192,92,81,217,47,48,79,104,251,5,230,11,125,191,192,2,225,252,126,129,133,194,252,126,129,235,105,145,184,129,22,11,109,191,192,18,81,121,191,128,108,191,192,75,106,89,75,133,182,95,64,127,191,192,50,81,222,47,240,178,88,46,252,237,23,152,72,242,253,2,43,132,254,126,129,202,126,129,87,132,190,95,96,165,208,246,11,172,18,175,138,242,126,129,215,196,106,97,124,191,128,253,126,129,215,133,117,191,192,26,81,123,191,192,90,225,180,95,96,157,176,190,95,192,126,191,192,122,81,217,47,176,65,88,223,47,160,237,23,216,40,156,247,11,188,33,180,253,2,155,68,247,55,76,152,223,47,176,89,148,247,11,108,17,111,139,202,126,129,119,132,108,191,192,86,177,77,84,246,11,108,23,239,10,243,126,129,247,132,241,253,2,59,196,78,49,142,237,18,109,34,91,251,5,252,115,30,198,1,32,101,30,230,175,68,191,251,6,101,227,0,47,251,6,135,148,174,186,127,207,144,150,90,219,55,56,172,251,191,85,244,251,6,121,15,167,125,131,178,247,12,201,247,13,62,216,236,237,61,67,230,125,131,206,227,128,178,69,140,227,128,250,247,13,218,141,3,202,251,6,205,227,0,235,190,65,165,135,117,223,96,237,113,64,120,251,6,157,198,1,242,247,12,25,247,13,86,198,1,222,247,13,90,223,51,84,189,111,80,244,240,187,111,176,246,123,134,210,62,14,248,52,254,155,3,248,78,166,57,17,237,8,224,59,153,230,36,180,35,128,239,100,154,19,208,142,0,190,3,0,168,147,73,216,207,89,39,95,233,138,163,116,231,124,149,171,178,35,175,37,212,206,249,149,12,252,215,137,174,142,73,176,102,244,58,102,193,199,0,192,56,0,128,248,178,47,34,243,36,16,196,22,71,108,113,196,22,207,118,108,113,244,1,232,3,208,7,132,215,7,236,63,24,239,23,0,0,243,1,0,0,244,1,32,126,92,140,231,40,0,30,150,105,90,119,195,6,0,30,150,101,134,163,133,0,60,44,211,140,64,11,1,120,24,136,25,31,193,26,27,144,98,122,117,201,143,157,210,121,147,170,127,118,39,161,87,87,248,245,108,68,254,70,180,103,184,186,187,145,234,167,228,176,45,29,132,252,184,120,195,201,194,75,234,83,68,52,90,157,42,26,97,139,112,56,173,97,117,57,189,187,228,51,92,107,240,197,189,130,42,251,204,8,106,61,214,71,25,103,185,204,115,78,138,60,48,26,90,186,228,199,78,233,188,73,213,63,187,147,208,210,21,126,61,27,145,191,17,237,25,174,238,110,164,250,41,57,108,75,7,33,191,241,222,112,68,139,245,204,145,85,103,142,106,241,46,119,120,75,16,218,141,235,25,157,37,110,243,92,214,157,123,114,220,37,201,59,194,151,5,70,182,140,106,153,238,82,147,21,106,186,86,155,82,54,184,144,177,205,85,57,60,167,228,68,206,41,197,232,146,14,99,108,52,217,47,231,221,10,163,114,173,57,63,214,179,242,49,79,179,47,71,251,104,177,235,114,215,123,210,244,142,64,234,5,0,136,31,31,199,108,175,202,171,5,249,177,83,58,111,82,245,207,238,36,120,43,199,191,70,81,231,143,170,29,101,122,202,90,35,26,139,250,41,41,108,75,7,33,63,238,222,224,141,85,5,249,177,83,58,111,82,245,207,238,36,172,42,132,95,207,70,228,143,170,29,101,122,202,90,35,26,139,250,41,41,108,75,7,33,63,238,222,224,141,149,5,249,177,83,58,111,82,245,207,238,36,172,44,132,95,207,70,228,143,170,29,101,122,202,90,35,26,139,250,41,41,108,75,7,33,63,238,222,16,111,14,196,29,24,72,17,7,165,192,159,123,118,201,143,157,210,121,147,170,127,118,39,161,103,87,248,245,108,68,254,70,180,103,184,186,187,145,234,167,228,176,45,29,132,252,164,120,131,59,150,20,228,199,78,233,188,73,213,63,187,147,176,164,16,126,61,27,145,63,170,118,148,233,105,61,119,240,224,168,44,234,199,106,97,91,58,8,249,113,247,6,111,44,46,200,143,157,210,121,147,170,127,118,39,97,113,33,252,122,54,34,127,84,237,40,211,211,122,238,208,193,81,89,212,143,213,194,182,116,16,242,227,238,13,9,31,151,116,194,6,0,30,6,178,200,48,204,150,130,20,49,31,125,45,128,239,100,154,195,240,63,13,248,228,112,248,78,42,56,30,115,38,0,190,3,0,8,156,35,48,74,72,40,131,250,69,87,214,224,126,113,181,2,0,233,97,70,33,121,146,195,149,157,222,214,139,151,213,234,215,198,40,33,152,186,185,147,162,165,130,7,186,225,80,88,9,192,195,50,205,9,104,161,200,184,38,147,119,77,73,241,48,188,119,24,239,29,198,123,135,179,253,238,113,55,253,196,8,204,144,2,144,105,70,162,15,0,0,52,136,207,118,36,79,114,184,178,1,124,23,128,250,24,21,242,184,238,158,1,254,242,221,59,160,17,214,0,152,19,196,156,32,230,4,49,39,152,100,134,244,245,155,243,1,60,27,4,161,2,15,139,59,7,160,133,0,60,44,1,28,223,145,60,201,225,202,6,240,93,103,122,14,132,237,221,241,119,244,210,32,149,30,214,218,55,94,118,168,151,169,133,228,73,14,87,118,122,91,239,145,148,61,23,48,214,62,24,143,112,39,69,75,149,38,15,124,186,144,60,201,225,202,70,235,37,177,246,193,88,226,131,125,220,150,155,101,203,35,126,0,0,233,226,177,66,242,36,135,43,59,73,60,145,233,85,63,70,47,128,71,104,140,51,252,215,28,239,240,31,244,2,79,255,93,247,183,188,139,233,27,106,238,111,54,244,255,243,133,117,150,126,81,66,70,23,23,75,244,252,86,40,186,127,219,133,212,75,124,148,188,127,2,222,227,117,105,4,222,224,119,157,96,87,147,113,157,32,39,249,58,193,89,92,182,78,112,46,47,230,231,113,77,170,113,157,224,254,36,95,39,120,48,105,235,4,231,243,5,124,40,45,228,139,248,98,190,132,191,196,163,93,39,184,162,164,173,211,58,193,241,234,239,11,200,188,78,240,85,46,91,39,120,37,105,235,4,39,144,211,58,193,107,201,110,157,224,141,116,19,221,76,183,208,173,180,150,175,227,235,249,6,46,91,39,184,145,223,78,218,58,193,63,147,190,78,240,13,190,137,235,235,4,143,27,236,101,157,224,68,170,94,39,248,54,215,215,9,78,41,229,122,129,182,113,119,235,4,23,146,182,78,112,9,237,224,206,235,4,219,120,240,235,4,5,243,186,78,176,147,87,214,9,30,192,220,172,19,236,226,123,214,9,114,221,154,173,108,52,179,95,39,216,172,156,200,184,226,102,157,96,15,69,182,78,240,28,230,102,157,96,139,178,151,210,75,233,173,92,202,246,86,250,40,125,149,126,74,114,214,9,78,44,36,79,114,184,178,65,82,48,122,129,192,51,123,223,76,46,36,79,114,184,178,209,122,73,172,125,148,150,184,75,189,127,248,103,192,247,16,147,26,216,146,225,149,29,102,173,38,161,15,0,38,47,72,186,71,60,94,72,99,217,97,214,234,113,244,1,192,228,5,240,8,144,101,78,66,28,42,80,7,39,118,36,79,114,184,178,1,124,23,128,100,241,25,140,3,64,44,249,27,238,208,0,60,12,100,146,207,226,255,50,72,16,79,237,78,158,100,111,178,63,151,154,111,100,152,22,77,186,61,162,177,77,185,20,180,67,49,255,106,103,146,203,137,74,251,122,245,139,187,158,32,203,76,237,31,77,57,95,8,229,63,248,180,136,180,247,203,244,110,253,102,196,92,79,144,21,190,134,113,15,128,239,52,148,231,18,27,71,227,2,120,64,70,120,190,31,60,172,94,206,221,237,245,218,185,187,195,47,185,222,146,220,231,60,119,119,244,118,173,71,214,185,187,27,237,21,141,178,130,92,182,246,187,186,20,119,158,107,167,157,189,188,202,21,55,53,11,174,246,213,229,187,101,252,110,187,179,227,119,143,247,169,159,93,62,153,212,242,57,167,244,94,202,52,166,174,206,105,148,103,189,234,156,186,118,221,252,164,170,157,114,124,0,30,98,182,120,117,173,236,61,32,200,122,6,235,73,242,52,122,221,204,103,100,191,237,75,144,249,167,157,38,181,180,147,151,232,189,174,50,253,157,164,186,73,83,139,47,165,226,105,213,229,41,88,169,121,121,199,151,7,199,215,50,151,119,164,193,198,97,251,77,112,214,118,43,85,191,150,198,214,137,63,39,99,245,13,0,153,230,20,244,1,0,164,134,157,157,245,167,200,142,45,178,109,159,36,183,82,49,191,173,211,138,126,206,152,166,114,206,152,202,252,201,248,185,34,161,90,174,81,182,188,92,153,12,93,15,99,78,89,13,204,122,85,107,109,61,54,150,42,175,133,57,181,181,70,149,31,179,108,179,29,171,107,39,47,69,94,3,163,110,102,105,50,45,173,246,178,171,185,93,238,138,4,103,77,173,109,32,247,8,107,249,86,27,203,107,107,215,126,50,89,181,236,233,228,159,114,31,241,146,162,150,101,170,219,75,214,34,86,13,237,210,56,123,187,185,205,141,182,119,214,119,123,21,197,188,254,87,199,120,206,152,202,252,201,248,185,34,161,90,174,81,182,188,92,153,12,93,15,99,206,106,25,86,189,170,181,182,30,27,75,149,215,194,156,218,90,163,202,143,89,182,217,142,213,181,147,151,34,175,129,81,55,179,52,153,150,86,123,217,213,220,46,119,69,130,179,166,214,54,144,123,132,181,124,171,141,229,181,181,107,63,153,172,90,246,116,242,79,185,143,120,73,81,203,50,213,237,37,107,17,171,134,118,105,156,189,221,220,230,70,219,59,235,59,168,195,74,49,175,255,213,57,184,71,229,156,49,149,249,147,241,115,69,66,181,92,163,108,121,185,50,25,229,191,21,157,42,82,170,181,151,157,171,214,72,151,104,205,103,205,109,78,109,173,81,229,199,44,219,108,199,234,218,201,75,145,215,192,168,155,89,154,76,75,171,189,236,106,110,151,187,34,193,89,83,107,27,200,61,194,90,190,213,198,242,218,218,181,159,76,86,45,123,58,249,167,220,71,188,164,168,101,153,234,246,146,181,136,85,67,187,52,206,222,110,110,115,163,237,107,233,11,64,246,216,210,25,31,41,0,128,232,57,45,144,39,56,167,227,57,16,72,36,95,133,231,2,224,130,51,241,77,1,32,213,76,64,180,55,0,15,203,52,87,161,133,0,60,44,211,28,136,22,2,240,176,154,28,209,98,61,115,100,213,153,163,90,188,203,29,222,18,132,118,227,122,70,103,137,219,60,151,117,231,158,28,119,73,242,142,240,101,129,145,45,163,90,166,187,212,100,133,154,174,213,166,148,13,46,100,108,115,85,14,207,41,57,145,115,74,49,186,164,195,24,27,77,246,203,121,183,194,168,92,107,206,143,245,170,188,112,151,151,212,71,251,104,177,235,114,215,123,210,244,142,64,234,149,53,254,185,43,219,245,7,240,157,122,153,188,171,22,246,105,220,228,246,35,55,42,172,26,212,214,168,126,157,195,174,117,61,45,234,197,43,130,212,178,241,158,208,8,29,156,74,12,66,155,138,140,90,210,208,11,130,172,242,111,120,127,137,183,154,54,55,109,105,122,187,233,157,166,173,77,219,154,182,55,189,219,84,204,191,215,180,163,105,103,147,118,245,178,29,197,252,139,92,59,218,213,212,214,212,174,158,235,104,218,221,212,217,84,104,234,106,42,54,77,229,77,68,84,204,79,227,156,166,243,25,106,186,30,212,147,114,212,66,123,81,47,234,77,51,249,44,190,55,245,161,217,188,31,205,81,175,14,160,125,104,32,13,162,185,252,178,29,243,74,82,223,71,239,167,15,208,7,105,95,218,143,246,167,15,209,1,244,97,85,222,71,232,163,244,49,250,56,29,72,7,169,159,14,166,67,232,80,154,207,23,240,165,131,22,242,69,124,49,95,194,95,226,135,209,225,164,105,167,206,89,208,145,116,20,13,167,165,124,25,31,69,47,243,86,53,207,104,26,67,71,211,49,244,9,58,150,142,83,63,127,146,62,69,199,211,167,73,75,127,2,157,72,67,155,63,67,90,237,62,171,254,254,28,125,158,190,160,254,253,162,250,243,37,250,178,250,251,43,116,50,157,66,167,210,114,126,58,157,65,95,165,51,105,133,170,241,43,124,44,173,84,181,62,139,206,166,115,104,21,63,79,77,121,190,250,243,117,245,103,28,141,87,127,95,64,223,160,111,210,133,116,145,122,124,177,170,221,171,252,53,126,73,169,156,75,181,223,116,57,93,65,29,236,74,250,14,125,87,253,124,21,93,77,215,208,247,232,251,244,3,250,33,253,136,126,76,63,161,159,210,207,212,43,121,186,150,254,139,254,155,254,31,253,156,174,163,213,106,153,175,171,63,107,248,47,85,153,26,55,211,45,116,43,173,229,235,248,122,190,129,255,15,253,150,126,71,191,167,63,208,31,169,220,98,255,75,27,249,237,106,218,59,74,245,253,11,253,149,254,70,111,240,77,252,78,250,59,253,31,253,131,222,84,107,115,23,253,147,254,69,255,166,187,233,30,186,151,238,163,255,208,253,84,241,138,7,232,65,122,139,63,68,15,211,102,62,145,182,240,199,232,113,154,68,79,208,100,122,146,158,162,167,233,109,254,44,189,195,159,163,231,75,26,21,243,47,208,54,85,195,169,180,157,191,203,167,211,12,154,169,202,154,69,179,75,18,223,227,115,105,94,169,173,230,211,2,90,72,139,104,49,45,161,29,124,41,45,163,151,105,39,95,78,187,248,10,122,133,86,210,42,122,149,94,83,243,172,166,215,169,141,175,165,117,180,158,54,208,70,245,204,27,180,137,222,164,183,104,51,109,161,183,85,89,237,252,29,218,170,158,223,70,29,252,93,122,143,118,168,199,59,105,23,181,81,59,117,208,110,234,164,2,117,81,145,154,24,49,198,154,153,58,111,193,20,38,88,15,214,147,229,88,11,219,139,237,230,189,213,179,123,179,62,172,47,235,199,250,179,73,108,0,219,135,13,100,131,212,179,131,217,16,246,62,246,126,246,1,214,201,63,200,246,101,251,177,253,217,135,212,243,31,102,31,97,5,254,49,245,232,227,236,64,118,16,59,152,29,194,14,101,67,217,48,118,24,59,156,29,193,142,100,71,177,46,62,66,189,62,146,141,98,69,174,181,134,86,239,86,54,154,141,97,71,179,99,216,39,216,177,234,213,227,24,41,76,209,108,115,60,251,52,107,86,78,100,92,81,148,207,176,207,178,203,118,124,142,125,158,125,65,77,179,108,208,151,216,151,213,191,66,249,10,59,153,157,194,78,101,167,177,30,106,158,211,217,25,236,171,236,76,246,53,54,150,245,84,63,159,205,206,97,231,178,243,216,249,236,235,172,52,71,86,250,61,158,93,80,250,251,13,246,77,118,33,203,41,23,177,22,101,47,165,151,210,91,185,148,237,173,244,81,250,42,253,148,239,176,239,178,9,236,42,118,53,115,238,33,38,236,244,115,166,54,126,242,4,47,197,75,126,239,245,174,92,151,165,244,167,251,132,157,26,238,75,149,167,173,37,195,139,134,110,53,178,75,227,164,165,83,153,245,250,206,216,193,94,107,235,207,207,189,229,10,230,123,17,44,191,216,225,231,140,31,185,193,104,23,94,254,234,180,103,13,118,155,67,86,142,63,221,127,177,67,195,125,169,242,180,181,100,120,209,208,173,70,118,105,236,181,60,123,176,83,153,225,123,122,48,126,238,45,87,240,245,170,31,60,27,212,169,126,54,120,78,141,62,0,207,6,203,248,125,54,120,174,173,125,131,122,54,232,13,60,27,204,18,231,97,167,64,38,184,10,115,130,192,134,159,193,55,208,206,0,227,0,128,113,0,64,31,0,208,7,100,128,27,118,213,194,62,141,155,220,122,186,234,180,110,115,187,45,161,254,92,181,165,200,107,226,165,196,32,107,237,215,18,118,109,225,205,47,130,179,130,93,105,97,219,74,102,129,168,75,172,183,230,242,148,101,63,213,175,213,250,6,39,189,15,251,67,98,223,123,12,26,205,120,140,247,82,193,221,109,176,1,128,239,212,131,243,90,97,141,90,107,133,25,121,95,43,92,204,251,89,43,60,148,204,107,133,203,250,153,215,10,171,207,196,93,175,21,46,230,221,175,21,46,230,189,174,21,46,230,245,181,194,197,124,245,90,225,9,228,103,173,112,49,127,35,221,68,78,107,133,53,202,107,133,213,167,205,244,103,146,173,21,254,75,175,98,190,246,90,225,98,222,121,173,112,49,175,173,21,158,82,202,229,180,86,120,14,105,107,133,181,35,217,90,225,98,222,251,90,97,77,86,189,107,133,239,236,229,117,173,240,1,204,251,90,225,50,238,215,10,171,222,216,189,86,248,139,172,188,86,88,245,198,6,175,21,142,63,255,70,95,14,224,59,33,143,3,202,88,199,1,234,57,245,167,60,14,104,86,123,97,133,4,89,199,1,90,62,109,28,208,151,250,81,127,170,140,3,6,239,249,143,99,28,7,20,243,242,113,64,49,175,141,3,180,191,67,13,255,169,170,199,1,35,104,36,185,29,7,156,68,110,198,1,167,145,62,14,248,90,41,245,216,210,239,242,56,224,92,50,143,3,202,186,152,199,1,223,162,111,147,117,28,80,204,255,148,213,222,51,84,204,87,198,1,215,171,159,110,80,127,126,65,191,236,46,229,102,245,239,173,116,27,253,138,126,77,191,33,217,56,224,79,165,35,227,158,33,237,72,31,7,104,199,110,199,1,143,168,127,31,37,235,56,224,25,210,199,1,229,244,47,208,139,164,141,3,138,249,105,228,60,14,40,230,181,113,64,49,255,18,85,198,1,197,124,245,56,96,13,185,27,7,108,39,247,227,0,213,63,247,140,3,122,49,243,56,64,245,78,201,56,160,152,183,238,25,250,40,115,30,7,12,103,123,198,1,249,202,56,160,152,55,143,3,62,201,62,197,244,113,192,9,236,68,118,146,250,169,246,56,64,251,100,28,7,156,197,180,113,64,49,95,107,28,80,204,95,196,46,102,223,98,223,102,151,176,75,217,101,236,114,118,5,187,146,85,198,1,143,183,89,41,230,245,191,58,198,115,198,84,230,79,198,207,21,9,213,114,141,178,229,229,86,235,164,203,50,234,100,149,47,211,171,90,107,171,70,198,82,229,37,155,203,119,178,150,125,169,110,107,233,84,255,138,221,156,181,148,215,200,152,207,78,134,213,186,246,229,200,52,170,101,31,185,167,84,231,178,151,97,213,223,206,187,252,224,220,90,246,41,156,44,83,177,142,220,3,170,207,202,191,103,206,150,177,211,203,236,9,206,250,2,16,13,223,196,60,60,8,129,71,44,189,216,133,177,247,179,139,82,242,77,184,88,82,143,111,37,170,110,143,224,63,160,107,46,109,96,203,174,111,91,223,230,124,221,191,100,63,18,141,87,245,99,235,95,89,42,111,122,154,83,87,231,173,45,173,90,167,160,237,228,38,151,204,90,141,241,34,153,6,97,107,20,188,237,107,73,212,174,215,250,198,36,143,217,109,179,219,156,175,251,151,236,71,162,241,170,126,108,253,43,75,229,77,79,115,234,234,188,181,165,85,235,20,180,157,220,228,146,89,43,26,46,31,236,172,77,20,26,5,111,251,90,18,181,235,181,190,49,233,227,152,150,108,213,23,4,199,149,152,159,40,145,140,53,66,99,7,186,93,35,228,37,158,96,248,107,132,206,26,24,199,53,66,103,15,116,243,108,208,93,60,65,109,141,208,86,94,59,158,160,118,20,84,60,193,98,190,158,120,130,231,12,244,23,79,176,49,107,132,26,31,79,16,227,0,144,94,190,139,113,64,34,248,64,123,125,215,189,231,116,150,104,188,170,31,87,231,112,115,38,56,27,132,149,183,254,118,147,89,43,62,94,20,182,70,245,203,247,35,225,3,237,141,180,116,24,220,188,171,190,235,222,115,58,75,52,94,213,143,171,115,220,188,43,74,27,132,149,183,126,157,101,214,138,143,23,133,173,81,253,242,253,73,184,57,101,113,17,110,218,85,223,117,239,57,157,37,26,175,234,199,213,57,110,218,21,165,13,194,202,91,191,206,50,107,197,199,139,194,214,168,126,249,254,36,220,132,216,40,46,121,38,134,177,220,1,0,209,209,175,19,54,0,240,176,224,153,128,185,86,0,50,205,85,232,3,0,0,17,114,108,47,216,0,132,199,213,248,159,150,98,166,164,236,41,42,108,236,85,143,176,181,131,135,69,195,11,187,97,3,0,223,1,238,153,132,190,25,0,19,136,39,152,189,120,130,215,247,70,60,65,196,19,172,236,25,74,91,108,241,120,237,27,140,103,108,241,55,121,150,247,13,150,251,0,236,27,76,207,190,65,0,146,197,247,19,246,164,97,215,32,180,25,0,65,114,91,236,102,164,252,206,7,104,247,2,149,249,0,78,94,231,3,134,144,183,123,129,242,124,192,253,205,195,74,71,15,52,199,109,62,64,118,47,80,158,15,184,188,143,121,62,224,193,102,111,247,2,230,249,128,202,189,128,243,124,128,245,94,192,56,31,160,29,187,159,15,152,72,78,243,1,250,123,134,220,206,7,232,247,2,141,152,15,48,222,11,184,155,15,120,168,217,122,47,224,111,62,192,122,47,16,228,124,64,237,123,129,90,243,1,73,239,85,177,70,8,248,229,71,88,255,147,10,94,42,184,59,231,55,85,60,106,20,71,253,226,174,103,227,45,29,189,133,58,251,162,71,0,192,61,63,193,56,32,21,76,193,90,47,0,223,201,244,119,226,97,244,1,49,225,220,196,141,67,211,234,59,89,251,78,188,82,112,119,206,111,170,120,212,40,12,230,12,172,79,63,55,122,198,213,198,209,104,23,239,218,167,135,149,157,238,206,249,77,21,143,26,197,81,191,184,235,217,120,75,39,223,66,232,3,208,7,160,15,64,31,144,102,254,129,29,132,129,113,33,86,105,192,195,26,198,211,93,209,231,4,32,59,30,118,68,213,155,188,142,172,58,115,148,143,183,125,13,15,228,13,97,227,122,22,243,55,251,182,179,183,156,183,245,244,42,255,206,61,57,238,146,228,29,225,203,2,35,91,70,181,76,119,169,201,10,53,93,171,77,41,27,92,200,216,230,170,28,158,83,114,34,231,148,98,116,73,135,49,54,154,236,151,243,110,133,81,185,214,156,31,235,213,199,209,45,222,61,236,186,220,245,158,52,189,163,1,245,66,252,128,44,198,15,40,245,75,136,31,128,248,1,174,227,7,200,251,128,198,236,25,42,230,135,81,60,251,0,251,61,67,214,62,192,107,252,0,236,25,106,220,158,33,99,31,128,61,67,110,249,57,214,95,2,0,34,228,55,157,209,231,4,105,241,129,108,234,149,54,110,235,140,62,39,0,240,176,248,112,123,103,244,57,1,128,135,197,135,63,117,70,159,19,0,120,88,124,184,161,51,250,156,0,192,195,226,195,47,58,163,207,9,0,60,44,13,12,198,206,78,0,15,203,52,216,209,17,28,216,51,4,15,3,0,120,227,122,172,166,115,201,247,186,146,39,57,92,217,233,109,189,120,89,173,126,109,140,18,130,169,155,59,41,90,42,47,229,97,191,64,212,251,5,240,142,17,236,23,192,59,70,188,240,253,174,228,73,14,87,118,146,240,102,135,120,89,173,126,109,140,18,130,169,155,59,41,90,170,44,121,224,85,248,182,1,248,78,93,32,126,0,226,7,32,126,64,182,227,7,36,189,15,251,12,250,114,0,223,201,52,199,162,29,1,124,39,211,252,18,79,89,129,79,110,132,239,164,130,79,162,47,7,240,157,24,48,182,43,142,210,157,243,85,174,202,142,188,150,80,59,231,216,12,120,92,116,117,76,130,53,163,215,177,145,86,57,189,43,142,210,157,243,85,174,202,142,188,150,80,59,231,233,25,232,3,162,171,99,18,172,25,189,142,254,74,196,179,65,60,27,196,179,65,60,27,172,159,147,67,237,241,156,164,31,219,203,175,86,149,171,178,35,175,154,213,206,121,114,6,198,1,209,213,49,9,214,140,94,199,70,90,229,212,174,56,74,119,206,87,185,42,59,242,90,66,237,156,167,102,160,15,136,174,142,73,176,102,244,58,54,210,42,167,117,53,74,186,211,56,192,89,171,202,85,217,145,87,205,106,231,60,45,3,125,64,116,117,76,130,53,163,215,177,145,86,249,90,87,28,165,59,231,171,92,149,29,121,45,161,118,206,175,101,160,15,136,174,142,73,176,102,244,58,54,210,42,103,116,197,81,186,115,190,202,85,217,145,215,18,106,231,60,35,3,125,64,116,117,76,130,53,163,215,49,238,86,217,88,144,31,59,165,243,38,85,255,236,78,194,198,66,248,245,108,68,254,70,180,103,184,186,187,145,234,167,228,176,45,29,132,252,184,120,195,201,194,75,234,83,68,52,90,157,42,26,97,139,112,56,173,97,117,57,189,187,228,51,92,107,240,197,189,130,42,251,204,8,106,61,214,161,140,155,109,214,10,159,229,82,175,115,82,228,129,0,128,250,184,37,193,123,15,176,70,8,107,132,176,70,8,107,132,194,224,54,236,201,74,41,191,74,88,203,254,186,46,125,127,3,63,70,31,0,208,7,128,132,114,32,90,15,128,88,177,168,32,63,118,74,231,77,170,254,217,157,132,69,133,240,235,217,136,252,81,181,163,76,207,112,116,119,35,213,79,201,97,91,58,8,249,113,247,6,0,64,84,28,148,130,113,237,194,130,252,216,41,157,55,169,250,103,119,18,22,22,194,175,103,35,242,71,213,142,50,61,195,209,221,141,84,63,37,135,109,233,32,228,199,221,27,0,72,50,191,195,140,17,0,160,155,223,163,63,176,97,65,39,234,14,64,186,193,58,65,172,19,196,58,65,172,19,4,0,88,249,35,238,14,82,207,193,152,113,5,240,48,151,252,22,119,198,0,0,224,130,158,3,96,3,43,185,12,216,164,5,237,14,18,197,190,77,176,129,61,135,7,108,157,225,161,88,187,213,65,234,232,238,107,99,92,150,28,221,115,129,255,109,113,247,92,224,79,45,141,126,46,240,90,139,251,231,2,119,180,196,249,185,192,218,189,211,240,92,224,207,45,225,60,23,24,214,21,255,231,2,127,105,193,115,129,240,56,1,115,130,145,113,77,63,120,24,240,203,103,58,146,39,57,92,217,0,190,11,130,97,126,59,108,0,224,97,241,231,233,66,242,36,135,43,27,173,151,196,218,7,99,137,15,246,113,91,110,154,44,63,185,144,60,201,225,202,70,235,37,177,246,81,90,226,46,117,246,229,159,41,154,129,153,90,72,158,228,112,101,167,183,245,30,73,217,83,118,99,237,131,241,8,119,82,180,84,105,242,192,137,133,228,73,14,87,54,72,162,239,138,129,241,213,179,246,250,128,23,185,246,219,186,62,160,171,169,216,52,149,151,215,7,76,227,156,166,243,25,220,186,62,96,38,159,197,181,245,1,179,121,63,154,195,43,251,6,231,170,199,243,74,82,141,235,3,246,39,249,190,193,131,73,91,31,48,159,47,224,67,105,33,95,196,23,243,37,252,37,94,189,62,96,41,95,198,71,209,203,220,205,250,128,161,205,110,246,13,46,231,250,250,128,21,170,182,175,240,177,180,146,235,235,3,86,113,243,190,193,241,234,239,11,200,188,62,224,85,254,26,183,174,15,232,96,87,146,182,62,96,2,57,173,15,184,150,42,235,3,86,171,101,190,174,254,172,225,218,250,128,27,233,38,186,153,110,161,91,105,45,95,199,215,243,13,92,182,62,96,35,191,157,180,245,1,127,38,125,125,192,27,124,19,215,215,7,188,201,221,172,15,120,139,107,235,3,54,243,137,180,133,91,215,7,188,205,159,165,119,184,182,62,96,138,154,107,43,127,129,182,113,109,125,192,118,254,46,183,174,15,120,143,27,215,7,44,36,109,125,192,18,218,193,203,235,3,118,242,229,180,139,87,175,15,104,227,78,251,6,219,185,190,62,160,131,187,95,31,32,88,101,125,192,110,110,222,55,56,137,201,214,7,116,242,202,250,128,3,152,182,62,160,192,157,215,7,116,241,61,235,3,184,110,205,86,54,154,153,215,7,144,194,20,237,138,182,62,160,89,57,145,113,69,81,228,235,3,132,82,89,31,208,67,49,175,15,232,169,104,235,3,206,97,181,214,7,228,148,139,88,139,178,151,210,75,233,173,92,202,246,86,250,40,125,149,126,74,122,214,7,220,137,221,93,192,39,127,135,239,164,130,23,48,234,6,240,157,186,152,180,219,138,126,78,150,174,146,94,59,50,127,50,126,174,72,168,150,171,49,97,159,234,210,171,203,48,202,40,255,53,235,35,211,223,172,87,181,214,214,99,99,169,242,90,152,83,91,107,84,249,49,203,54,219,177,186,118,242,82,228,53,48,234,102,150,38,211,210,106,47,187,154,219,229,174,72,112,214,212,172,145,157,71,88,203,183,218,88,94,91,187,246,147,201,170,101,79,123,255,180,243,17,185,84,121,138,90,150,169,110,47,89,139,88,53,180,75,35,243,236,106,143,174,182,189,179,190,89,238,3,218,155,211,215,7,116,52,163,15,64,31,224,173,15,136,251,56,229,232,174,228,73,14,87,54,72,10,240,130,96,120,172,144,60,201,225,202,78,18,79,100,122,95,189,209,11,224,17,254,57,161,35,121,146,195,149,13,224,187,217,226,211,29,201,147,28,174,108,0,223,13,22,191,49,68,180,53,66,149,24,34,156,228,49,68,202,107,132,172,177,197,195,89,35,20,102,108,241,21,37,109,157,98,139,203,215,8,201,98,136,120,93,35,100,142,33,18,196,26,161,201,253,189,196,16,153,72,213,49,68,180,53,66,229,24,34,83,74,185,244,53,66,181,99,136,88,215,8,217,197,16,113,94,35,228,47,134,136,113,141,144,187,216,226,213,107,132,106,197,16,113,183,70,200,24,67,164,188,70,200,77,108,113,235,26,161,114,12,145,218,107,132,180,24,34,105,94,35,4,188,243,47,172,141,1,9,66,233,74,158,228,112,101,199,151,182,30,240,87,59,47,136,198,35,202,165,100,211,251,252,114,55,254,35,2,144,89,30,140,253,218,8,0,15,3,245,112,69,10,230,230,195,169,67,80,82,175,232,72,131,141,195,182,121,112,214,118,43,85,191,150,198,214,241,198,149,41,176,64,56,117,8,74,234,149,29,105,176,113,216,54,15,206,218,110,165,234,215,210,216,58,222,56,51,5,17,29,195,169,195,61,1,205,130,220,59,248,163,41,124,91,73,92,223,49,98,246,133,56,188,99,196,221,250,0,251,119,143,15,41,93,117,191,62,64,75,173,189,99,100,88,247,83,236,184,189,123,92,182,62,64,254,142,145,160,214,7,56,191,99,196,186,62,64,59,239,239,29,35,178,245,1,149,119,140,232,235,3,220,190,99,68,95,31,208,136,119,143,123,95,31,96,124,199,136,187,245,1,242,119,140,56,173,15,168,247,221,227,238,214,7,56,189,99,4,125,0,250,0,244,1,232,3,162,121,215,152,185,15,40,35,123,215,152,181,15,136,254,93,99,126,250,128,178,46,113,123,215,152,246,59,249,239,26,11,170,15,176,190,107,204,91,31,208,152,119,141,213,238,3,240,174,177,240,120,11,111,92,7,240,216,76,243,38,44,10,224,177,153,230,29,88,20,100,194,99,17,91,28,177,197,17,91,28,177,197,65,80,252,56,211,113,115,194,230,39,176,110,3,152,140,61,53,0,100,154,31,237,66,173,1,218,57,211,99,219,76,90,41,155,181,70,59,3,25,63,201,164,149,178,89,107,180,51,144,241,131,76,90,41,155,181,70,59,3,25,63,204,164,149,178,89,107,180,51,136,63,79,38,242,41,197,83,41,123,182,242,52,158,21,213,201,51,176,32,0,177,224,90,140,3,0,200,52,255,141,62,0,128,76,243,95,232,3,82,193,212,54,216,0,192,119,0,72,7,47,247,129,13,128,87,38,162,47,7,240,157,76,243,16,218,17,192,119,234,34,109,241,3,220,197,19,204,118,252,128,191,244,114,19,63,224,175,189,156,227,7,200,222,59,28,85,252,128,191,245,170,55,126,192,157,189,146,17,63,192,233,189,195,65,197,15,64,31,128,62,0,125,64,182,251,0,140,132,64,112,76,193,10,56,16,57,247,182,57,127,142,191,198,105,177,124,242,234,150,150,150,200,58,15,91,218,241,194,216,255,39,186,40,37,255,43,47,150,212,227,91,137,170,219,195,232,3,82,193,131,109,206,159,227,175,113,90,44,159,188,186,165,165,37,234,5,239,25,194,123,134,240,158,33,188,103,40,206,44,111,91,222,230,124,221,191,100,63,18,141,87,245,99,235,95,89,42,111,122,154,83,87,231,173,45,173,90,167,160,237,228,38,151,204,90,141,241,34,153,6,97,107,20,188,237,107,73,212,174,215,250,198,0,160,254,191,198,236,61,72,16,115,219,230,182,57,95,247,47,217,143,68,227,85,253,216,250,87,150,202,155,158,230,212,213,121,107,75,171,214,41,104,59,185,201,37,179,86,99,188,72,166,65,216,26,5,111,251,90,18,181,235,181,190,49,201,99,64,123,125,215,189,231,116,150,104,188,170,31,87,231,112,115,38,56,27,132,149,183,254,118,147,89,43,62,94,20,182,70,245,203,247,35,97,64,123,35,45,221,8,62,53,40,91,245,5,193,49,13,247,68,137,96,159,246,250,174,123,207,233,44,209,120,85,63,174,206,225,230,76,112,54,8,43,111,253,237,38,179,86,124,188,40,108,141,234,151,239,71,194,62,237,94,115,225,217,32,158,13,226,217,96,182,159,13,162,15,64,31,128,62,0,125,0,250,0,244,1,232,3,176,70,40,169,124,175,175,223,156,207,97,37,69,102,144,183,117,216,30,16,189,135,245,237,29,188,204,35,90,172,103,142,172,58,115,84,139,119,185,195,91,130,208,110,92,207,232,172,123,155,231,178,238,220,147,227,46,73,222,17,190,44,48,178,101,84,203,116,151,154,172,80,211,181,218,148,178,193,133,140,109,174,202,225,57,37,39,114,78,41,70,151,116,24,99,163,201,126,57,239,86,24,149,107,205,249,177,94,125,28,237,163,197,174,203,93,95,165,233,175,28,102,236,238,104,64,189,210,204,108,233,147,159,57,120,30,4,18,201,92,120,46,0,169,96,65,102,190,203,151,244,136,166,156,77,253,252,230,252,78,17,254,152,5,46,235,209,168,146,225,97,209,176,186,224,238,156,223,84,241,168,81,28,245,139,187,158,141,183,116,240,242,107,73,44,95,79,126,203,120,99,101,167,187,115,126,83,197,163,70,113,212,47,238,122,54,222,210,201,183,80,50,88,150,177,62,15,192,119,128,153,231,119,195,6,0,190,147,229,239,196,130,130,187,115,126,83,197,163,70,113,212,207,141,158,191,139,245,174,206,176,45,29,247,150,76,11,111,73,236,60,181,191,223,156,113,96,90,255,120,234,165,51,189,91,191,25,49,215,179,241,30,16,87,15,75,27,91,124,247,1,91,208,7,100,188,15,8,219,3,226,234,97,64,103,85,23,108,0,224,97,89,230,31,25,139,184,20,38,23,246,130,13,224,97,141,226,143,157,209,231,4,32,77,30,134,248,1,136,31,128,248,1,136,31,144,77,214,224,110,13,192,195,64,38,89,138,93,168,32,69,124,23,125,45,128,239,0,95,244,235,128,13,0,60,204,255,156,96,87,147,113,78,144,147,215,57,193,33,165,171,198,57,193,253,73,62,39,120,48,25,231,4,135,117,207,66,69,63,39,200,123,56,205,9,142,87,127,95,64,110,230,4,31,108,214,230,4,39,144,211,156,224,181,100,55,39,120,35,221,68,55,211,45,84,107,78,240,118,210,230,4,255,76,245,207,9,78,36,167,57,193,41,165,92,118,115,130,74,15,235,156,224,66,210,230,4,151,80,35,230,4,5,179,159,19,156,196,106,205,9,30,192,252,207,9,142,102,181,230,4,69,15,191,115,130,231,176,172,207,9,30,143,241,28,128,239,196,128,83,186,26,37,253,216,94,126,181,170,92,149,29,121,213,172,118,206,83,50,224,113,209,213,49,9,214,140,94,199,184,91,229,119,5,249,177,83,58,111,82,245,207,238,36,252,174,16,126,61,27,145,191,17,237,25,174,238,110,164,250,41,57,108,75,7,33,63,41,222,224,142,92,151,252,216,41,157,55,169,250,103,119,18,114,93,225,215,179,17,249,27,209,158,225,234,238,70,170,159,146,195,182,116,16,242,147,226,13,238,120,164,32,63,118,74,231,77,170,254,217,157,132,71,10,225,215,179,17,249,163,106,71,153,158,225,232,238,70,170,159,146,195,182,116,16,242,235,251,54,196,141,217,5,249,177,83,58,111,82,245,207,238,36,204,46,132,95,207,70,228,143,170,29,101,122,202,90,35,26,139,250,41,41,108,75,7,33,63,74,111,120,25,107,199,0,0,161,50,167,32,63,118,74,231,77,170,254,217,157,132,57,133,240,235,217,136,252,81,181,163,76,79,89,107,68,99,81,63,37,133,109,233,32,228,199,221,27,226,200,114,140,103,26,200,10,88,31,56,48,175,32,63,118,74,231,77,170,254,217,157,132,121,133,240,235,217,136,252,81,181,163,76,79,89,107,68,99,81,63,37,133,109,233,32,228,199,221,27,188,49,191,32,63,118,74,231,77,170,254,217,157,132,249,133,240,235,217,136,252,81,181,163,76,79,89,107,68,99,81,63,37,133,109,233,32,228,199,221,27,146,205,98,196,17,2,240,176,20,48,15,118,6,240,29,224,139,19,48,202,138,140,107,250,101,177,214,73,241,48,196,19,68,60,65,196,19,68,60,193,36,243,175,125,252,230,252,11,70,130,32,84,224,97,193,112,124,71,242,36,135,43,27,192,119,157,233,57,16,182,119,199,72,204,7,0,120,88,2,152,92,72,158,228,112,101,163,245,146,88,251,40,45,113,151,58,3,251,207,20,205,194,62,86,72,158,228,112,101,39,137,39,6,100,185,246,70,47,128,71,248,231,233,66,242,36,135,43,27,173,151,196,218,7,99,137,15,246,113,91,110,154,44,255,137,174,228,73,14,87,54,128,239,70,201,17,45,214,51,71,86,157,57,170,197,187,220,225,45,65,104,55,174,103,116,150,184,205,115,89,119,238,201,113,151,36,239,8,95,22,24,217,50,170,101,186,75,77,86,168,233,90,109,74,217,224,66,198,54,87,229,240,156,146,19,57,167,20,163,75,58,140,177,209,100,191,156,119,43,140,202,181,230,252,88,207,202,235,158,118,57,30,237,163,197,174,203,93,239,73,211,59,2,169,151,87,194,125,191,192,44,46,91,35,52,151,23,243,243,184,38,213,253,251,5,230,243,5,124,40,45,228,139,248,98,190,132,191,196,163,93,35,180,162,164,173,215,247,11,188,202,101,107,132,174,164,96,222,47,176,150,175,227,235,249,6,46,91,35,180,145,91,223,47,240,6,223,196,245,53,66,199,13,174,247,253,2,111,115,235,251,5,182,113,119,107,132,244,247,11,236,224,206,107,132,218,120,180,239,23,144,175,17,234,228,94,223,47,208,197,247,172,17,226,186,53,157,223,47,208,172,156,200,184,226,102,141,80,15,197,255,251,5,90,148,189,148,94,74,111,229,82,182,183,210,71,233,171,244,83,146,179,70,232,197,66,242,36,135,43,59,73,100,219,14,198,218,7,99,9,119,82,180,84,94,202,75,250,90,225,107,138,88,43,140,181,194,254,214,10,95,83,196,90,97,109,28,128,62,0,125,0,250,0,236,23,136,51,19,11,201,147,28,174,108,144,20,140,94,32,176,126,55,52,190,48,8,54,0,254,216,128,232,135,117,205,7,224,185,64,114,159,11,76,238,143,231,2,120,46,144,156,123,129,159,119,37,79,114,184,178,65,82,48,122,65,52,30,81,46,101,191,62,113,182,10,0,241,224,77,220,7,100,128,51,219,81,7,57,251,54,5,37,233,163,77,81,90,35,104,174,150,238,239,63,188,41,88,249,195,155,194,240,133,86,7,169,163,187,175,141,73,116,235,68,65,30,113,62,0,60,44,211,92,139,22,2,240,176,76,243,51,180,16,128,135,101,154,239,161,133,224,1,240,176,76,243,67,180,16,60,0,30,150,105,190,143,22,130,7,192,195,50,205,15,208,66,240,0,120,88,166,249,17,90,8,30,0,15,75,53,127,104,78,126,29,254,152,130,58,128,96,248,19,124,193,134,173,88,243,9,124,114,232,110,216,32,13,108,67,31,0,124,114,8,250,0,224,200,142,206,250,83,100,199,22,217,182,79,146,91,9,216,179,181,179,254,20,217,177,69,182,237,147,228,86,170,5,222,47,160,131,247,11,200,73,242,251,5,182,227,253,2,37,194,141,35,100,31,83,116,72,233,170,251,56,66,90,106,45,166,232,176,238,104,55,209,198,17,170,29,83,84,22,71,72,30,83,52,168,56,66,206,49,69,173,113,132,74,189,146,175,152,162,178,56,66,149,152,162,122,28,33,183,49,69,245,56,66,141,136,41,234,61,142,144,49,166,168,187,56,66,242,152,162,78,113,132,234,141,41,234,46,142,80,125,113,133,95,228,118,125,192,84,94,238,3,166,113,78,211,249,12,110,237,3,102,242,114,44,177,217,188,31,205,225,245,199,18,91,58,200,41,150,216,82,190,140,143,162,151,185,155,62,96,104,179,155,62,96,57,55,198,18,123,133,143,165,149,92,239,3,86,113,55,177,196,94,227,214,62,160,131,121,237,3,86,171,101,190,174,254,172,225,65,197,18,123,147,187,233,3,222,226,90,31,176,153,79,164,45,92,22,75,236,29,174,247,1,91,185,30,75,108,59,127,151,91,251,128,247,184,83,44,177,157,124,57,237,226,94,99,137,181,115,189,15,232,224,254,250,128,221,220,220,7,76,98,238,98,137,21,120,16,177,196,72,97,138,222,7,148,99,137,41,138,185,15,88,54,168,220,7,8,197,62,150,88,79,197,93,31,144,83,146,29,75,12,128,80,230,207,240,60,9,128,204,243,189,93,176,1,0,209,178,19,255,125,1,0,177,225,26,140,3,98,192,46,252,95,0,0,248,230,209,62,197,252,127,218,204,231,172,159,131,226,49,207,49,219,31,223,147,99,82,159,224,52,156,236,90,143,39,29,82,62,229,66,202,211,53,210,232,245,120,166,143,115,221,158,117,148,179,147,123,183,193,115,125,158,15,36,130,126,88,190,82,97,74,159,23,60,105,250,34,222,12,224,163,15,184,223,210,142,247,199,190,15,184,63,37,125,192,253,146,62,224,254,68,245,1,247,163,15,72,5,247,181,57,127,142,191,198,105,177,124,242,234,150,150,150,200,58,15,180,57,127,142,191,198,105,177,124,242,234,150,150,150,72,59,27,218,54,180,57,95,247,47,217,143,68,227,85,253,216,250,87,150,202,155,158,230,212,213,121,107,75,171,214,41,104,59,185,201,37,179,86,99,188,72,166,65,216,26,5,111,251,90,18,181,235,181,190,49,213,36,105,173,176,243,123,135,177,86,24,107,133,211,179,86,88,223,47,128,181,194,197,124,255,246,250,174,123,207,233,44,209,120,85,63,174,206,225,230,76,112,54,8,43,111,253,237,38,179,86,124,188,40,108,141,234,151,239,71,66,255,246,254,41,120,211,166,23,142,237,149,173,250,130,104,105,199,10,22,244,1,32,211,116,160,15,0,0,132,194,110,31,189,75,39,122,164,64,121,50,99,119,77,104,235,168,61,0,30,22,119,110,65,11,193,3,82,229,97,240,104,16,53,5,140,76,1,0,41,167,11,253,92,138,249,29,70,78,240,128,84,121,24,60,218,43,191,133,197,224,1,169,242,48,120,180,75,18,53,182,107,26,130,22,3,32,44,22,226,109,115,0,30,150,2,54,21,170,207,77,237,239,55,103,28,152,214,63,158,122,233,76,239,214,111,70,204,245,108,188,7,196,213,195,210,198,202,78,119,231,252,166,138,71,141,226,168,95,220,245,108,188,165,147,111,161,180,243,82,23,108,0,224,97,201,231,215,157,209,231,4,105,241,129,108,234,101,5,49,68,16,67,4,49,68,16,67,36,201,28,135,241,22,128,239,36,132,185,5,249,177,83,58,111,82,245,207,238,36,204,45,132,95,207,70,228,143,170,29,101,122,202,90,35,26,139,250,41,41,108,75,7,33,63,238,222,224,141,117,5,249,177,83,58,111,82,245,207,238,36,172,43,132,95,207,70,228,175,205,163,60,8,253,100,122,202,90,35,26,139,250,41,41,108,75,7,33,127,29,250,0,244,1,232,3,208,7,128,144,56,4,214,5,240,176,76,115,2,90,40,50,174,233,7,15,3,126,57,169,35,121,146,195,149,13,224,187,217,226,177,66,242,36,135,43,59,73,60,49,0,190,11,143,168,151,137,133,228,73,14,87,54,72,162,239,138,129,176,135,95,38,23,146,39,57,92,217,104,189,36,214,62,74,75,220,165,206,190,252,211,195,12,204,164,221,86,244,115,178,116,149,244,218,145,249,147,241,115,69,66,181,92,141,9,251,84,151,94,93,134,81,70,249,175,89,31,153,254,102,189,170,181,182,30,27,75,149,215,194,156,218,90,163,202,143,89,182,217,142,213,181,147,151,34,175,129,81,55,179,52,153,150,86,123,217,213,220,46,119,69,130,179,166,102,141,236,60,194,90,190,213,198,242,218,218,181,159,76,86,45,123,218,251,167,157,143,200,165,202,83,212,178,76,117,123,201,90,196,170,161,93,26,153,103,87,123,116,181,237,107,233,155,108,166,224,63,46,128,239,100,154,231,208,142,0,190,147,105,158,71,59,2,248,78,170,25,221,149,60,201,225,202,6,240,221,108,241,212,238,228,73,246,38,251,115,169,121,139,197,83,136,161,105,107,143,104,108,83,46,37,107,237,240,36,252,14,192,119,50,77,47,68,224,7,62,233,13,223,73,4,88,39,8,146,74,244,235,4,225,119,193,242,6,98,142,130,68,49,103,16,108,0,128,23,250,134,124,47,208,15,247,26,0,196,154,107,58,146,45,31,0,80,31,63,238,72,182,124,16,22,87,180,187,189,122,69,123,28,52,10,47,111,176,58,95,17,187,55,99,63,199,195,149,255,163,246,224,173,8,0,8,142,231,67,238,3,126,140,111,48,0,192,150,254,152,49,76,29,3,208,166,0,164,138,77,88,31,0,0,72,37,251,96,196,2,128,35,63,221,5,27,160,157,1,0,105,231,251,232,3,0,200,52,87,163,15,40,241,86,211,230,166,45,77,111,55,189,211,180,181,105,91,211,246,166,119,155,138,249,247,154,118,52,237,108,50,167,219,213,212,214,212,174,158,235,104,218,221,212,217,84,208,174,170,63,77,68,196,168,153,138,121,133,132,250,187,7,245,164,28,181,208,94,212,139,122,147,150,111,111,234,67,125,169,31,245,87,63,13,160,125,104,32,13,162,193,164,75,125,31,189,159,62,64,31,164,125,105,63,245,220,135,232,0,250,176,250,247,35,244,81,250,24,125,156,14,164,131,74,41,15,161,67,75,127,135,82,69,159,195,232,240,238,79,71,208,145,116,20,13,167,17,52,146,70,169,231,90,213,159,209,52,134,142,166,99,232,19,116,44,29,167,126,254,36,125,138,142,167,79,151,114,156,64,39,210,73,244,153,210,241,103,213,223,159,163,207,211,23,212,191,95,84,127,190,68,95,86,127,127,133,78,166,83,232,84,58,141,78,167,51,232,171,116,38,125,173,148,122,108,233,247,89,116,54,157,67,231,210,121,234,167,243,213,159,175,171,63,227,186,117,249,6,125,147,46,164,139,212,79,23,171,63,223,162,111,211,37,165,43,151,170,191,47,163,203,233,10,245,239,79,217,119,232,187,234,223,171,232,106,186,134,190,71,223,167,31,208,15,233,71,244,99,250,9,253,148,126,166,94,201,171,63,255,69,255,77,255,143,126,78,215,209,245,234,167,27,212,159,95,208,47,187,75,185,89,253,123,43,221,70,191,162,95,211,111,232,127,232,183,244,59,250,61,253,129,254,216,125,253,127,233,79,165,163,59,74,191,255,66,127,165,191,149,142,238,164,191,211,255,209,63,74,199,119,209,63,233,95,244,111,186,155,238,161,123,233,62,250,15,221,111,176,238,3,244,160,250,233,33,122,152,30,81,255,62,74,143,209,227,52,137,158,160,201,244,36,61,69,79,211,51,244,172,122,254,57,122,190,59,207,11,244,162,122,52,85,253,153,70,211,105,6,205,84,143,102,209,236,210,213,57,52,151,230,149,142,230,211,2,245,239,34,90,172,254,126,137,150,210,50,122,89,61,90,174,254,172,160,87,104,37,173,162,87,233,53,245,211,106,122,157,214,208,90,90,71,235,105,3,109,84,207,188,65,155,232,77,122,139,54,211,22,122,187,36,235,29,218,170,254,221,70,219,233,93,122,143,118,168,199,59,105,23,181,81,59,117,208,110,234,164,2,117,81,145,154,24,49,198,154,89,49,207,153,162,254,238,193,122,178,28,107,97,123,177,94,172,183,250,121,111,214,135,245,101,253,88,127,245,120,0,219,135,13,100,131,212,163,193,108,8,123,31,123,63,251,128,122,252,65,182,47,219,143,237,207,62,164,30,127,152,125,132,125,148,125,76,61,250,56,59,144,29,196,14,102,135,176,67,217,80,54,140,29,198,14,103,71,176,35,217,81,108,56,27,161,94,31,201,70,177,138,53,91,213,227,49,236,104,118,12,251,4,59,86,61,62,142,125,146,125,170,116,253,120,246,105,118,2,59,145,157,164,126,250,12,251,172,250,251,115,236,243,236,11,234,223,47,178,47,177,47,151,210,124,133,157,204,78,97,167,178,211,74,159,78,103,103,176,175,178,51,217,215,216,88,118,150,122,230,108,245,231,92,118,30,59,159,125,189,116,125,92,233,247,120,118,65,233,239,55,216,55,217,133,234,209,69,236,98,246,45,246,109,118,9,187,148,93,198,46,103,87,176,43,217,119,216,119,217,4,118,21,187,154,57,247,16,71,180,88,207,28,89,117,230,168,22,239,61,207,240,150,32,250,175,113,61,163,235,43,111,243,92,214,157,123,114,220,37,201,59,194,151,5,70,182,140,106,153,238,82,147,21,106,186,86,155,82,54,184,144,177,205,85,57,60,167,228,68,206,41,197,232,146,14,99,108,52,217,47,231,221,10,163,114,173,57,63,214,179,50,200,211,220,232,209,62,90,236,186,220,245,158,52,189,35,144,122,97,28,128,113,0,198,1,24,7,120,25,7,160,15,64,31,128,62,0,125,128,159,62,160,171,169,216,52,149,151,251,128,105,156,211,116,62,131,219,245,1,179,121,63,154,195,205,125,192,16,178,246,1,251,147,188,15,56,152,140,125,192,48,178,235,3,150,242,101,220,109,31,48,180,217,123,31,240,10,31,75,43,185,222,7,172,226,230,62,96,188,250,251,2,170,221,7,116,176,43,73,235,3,38,144,83,31,112,45,85,250,128,213,106,153,175,171,63,107,184,214,7,220,72,55,209,205,116,11,213,234,3,110,39,173,15,248,51,213,219,7,108,230,19,105,11,183,239,3,166,144,177,15,216,206,223,229,206,125,192,66,210,250,128,37,20,84,31,208,193,221,247,1,130,217,247,1,147,88,173,62,224,0,166,245,1,5,238,167,15,24,205,204,125,0,41,76,49,247,1,138,226,189,15,232,169,104,125,192,57,172,86,31,144,83,48,14,192,56,0,227,0,140,3,252,206,9,166,153,223,96,87,87,198,9,219,3,162,246,48,191,229,97,28,144,189,113,192,245,189,49,14,192,56,0,227,0,80,63,251,98,223,1,136,33,251,193,47,107,178,127,44,108,244,33,180,84,29,28,0,235,5,192,255,96,62,0,30,144,42,15,203,170,71,191,33,121,171,194,212,254,126,115,198,129,105,253,227,169,151,206,244,110,253,102,196,92,207,198,123,64,92,61,44,109,28,211,146,237,250,3,255,124,4,227,233,136,153,89,144,31,59,165,243,38,85,255,236,78,194,204,66,248,245,108,68,254,168,218,81,166,167,172,53,162,177,168,159,146,194,182,116,16,242,227,238,13,222,152,85,144,31,59,165,243,38,85,255,236,78,194,172,66,248,245,108,68,254,168,218,81,166,167,172,53,162,177,168,159,146,194,182,116,16,242,227,238,13,201,230,32,88,23,192,195,18,0,222,59,12,210,224,187,209,188,119,56,157,140,233,74,158,228,112,101,3,248,110,182,120,172,144,60,201,225,202,78,18,79,12,128,239,198,223,35,146,190,95,224,154,34,246,11,96,223,160,191,253,2,215,20,177,95,32,9,251,5,148,174,228,73,14,87,118,124,105,235,145,229,255,250,206,94,16,141,71,148,75,241,90,86,61,49,68,42,227,0,78,242,113,192,44,46,27,7,204,229,197,252,60,110,29,7,56,199,16,153,207,23,240,161,180,144,47,226,139,249,18,254,18,143,118,223,224,10,94,107,28,32,139,33,242,42,151,141,3,188,198,16,49,143,3,42,49,68,214,242,117,124,61,223,192,101,227,128,141,220,26,67,228,13,190,137,235,227,128,201,253,189,140,3,38,82,245,56,224,109,110,141,33,178,141,187,27,7,232,49,68,118,112,231,113,64,27,15,126,28,224,20,67,68,62,14,232,228,214,24,34,181,198,1,93,124,207,56,128,87,198,1,214,24,34,198,113,64,179,114,34,227,138,155,113,64,15,69,54,14,168,29,67,68,27,7,180,40,123,41,189,148,222,202,165,108,111,165,143,210,87,233,167,36,103,28,240,244,238,228,73,14,87,118,22,219,42,249,246,136,198,54,229,82,210,214,14,207,181,37,79,114,184,178,1,124,215,142,190,189,97,245,32,57,4,171,201,1,72,53,63,237,128,13,0,60,44,205,156,153,130,221,212,225,212,97,223,166,160,36,125,180,41,74,107,4,205,213,210,239,232,225,77,193,202,31,222,20,134,47,180,58,72,29,221,125,109,76,162,91,7,128,56,51,20,247,137,0,100,154,97,169,234,3,170,215,7,220,45,202,235,3,238,17,247,138,251,196,127,196,253,226,1,241,160,40,175,15,120,72,56,173,15,120,88,152,215,7,60,34,38,138,202,250,128,71,69,101,157,224,99,66,123,199,200,227,66,182,62,96,146,48,174,15,120,66,148,215,7,76,22,79,138,161,244,148,24,70,79,139,103,196,179,66,95,31,176,182,211,188,62,224,57,209,74,207,11,243,250,128,41,66,95,31,240,130,120,81,152,215,7,76,21,229,245,1,211,132,190,62,96,186,144,175,19,156,33,198,210,97,67,102,138,202,250,128,89,226,124,154,45,244,245,1,115,68,101,125,192,92,81,89,39,56,79,104,235,3,230,11,253,29,35,11,132,243,250,128,133,194,186,62,96,145,184,129,22,11,109,125,192,18,225,252,142,145,151,212,178,150,10,227,59,70,150,137,242,250,128,151,197,114,225,111,157,160,108,125,128,182,78,112,133,168,126,199,200,43,66,95,31,176,82,104,235,3,86,137,87,69,121,125,192,107,98,181,112,247,142,145,215,133,117,157,224,26,81,123,125,192,90,225,180,62,96,157,144,173,15,88,219,41,123,199,200,122,81,89,31,176,65,200,214,7,108,20,206,235,4,223,16,218,250,128,77,162,251,27,38,204,235,3,54,139,242,250,128,45,226,109,81,89,39,248,142,144,173,15,216,42,182,137,202,250,128,237,226,93,97,94,31,240,158,48,174,15,216,33,118,138,113,108,151,104,19,217,138,43,188,102,16,254,43,1,127,140,192,136,62,17,204,105,155,211,230,124,221,191,100,63,18,141,87,245,99,235,95,89,42,111,122,154,83,87,231,173,45,173,90,167,160,237,228,38,151,204,90,141,241,34,153,6,97,107,20,188,237,107,73,212,174,215,250,198,164,137,115,219,43,191,237,175,167,161,142,225,74,77,131,157,226,108,243,160,228,161,213,170,57,175,189,242,219,254,122,26,234,24,174,212,52,216,41,206,54,15,74,30,90,13,4,199,200,152,221,7,175,200,53,94,135,73,120,227,86,106,24,133,121,30,0,50,197,89,237,222,175,164,161,118,193,73,77,131,157,226,108,243,160,228,161,213,236,248,94,95,191,57,111,133,21,51,78,216,30,16,181,135,193,163,189,242,107,88,12,30,144,42,15,131,71,3,144,29,90,3,156,247,74,122,76,209,104,98,137,33,166,104,26,99,138,214,142,37,134,152,162,0,0,127,92,222,55,120,153,87,244,77,154,21,64,92,57,26,207,79,1,208,70,212,152,65,129,7,164,202,195,210,234,209,215,116,37,79,114,184,178,211,219,122,241,178,90,253,218,24,37,4,83,55,119,82,180,84,105,242,192,99,186,146,39,57,92,217,0,190,155,45,240,222,97,144,6,223,197,123,135,195,227,89,124,219,0,124,39,213,252,188,43,121,146,195,149,13,146,232,187,209,120,68,185,148,253,250,100,203,206,147,241,126,43,0,223,73,53,179,118,39,79,114,184,178,1,124,23,196,151,31,15,128,13,194,227,39,176,46,0,32,200,62,165,35,217,242,1,0,64,198,113,88,11,14,64,166,249,100,198,250,128,215,59,209,230,0,190,147,101,62,133,113,15,240,201,241,240,157,84,176,30,125,57,128,239,100,154,53,104,71,0,223,201,52,171,209,142,0,190,147,105,94,67,59,2,248,78,93,60,214,102,69,63,103,76,83,57,103,76,101,254,100,252,92,145,80,45,215,40,91,94,110,181,78,186,44,179,222,50,253,205,122,85,107,109,213,200,88,170,188,100,115,249,78,214,178,47,213,109,45,157,234,95,177,155,179,150,242,26,25,243,217,201,176,90,215,190,28,153,70,181,236,35,247,148,234,92,246,50,172,250,219,121,151,31,156,91,203,62,133,147,101,42,214,145,123,64,245,89,249,247,204,217,50,118,122,153,61,193,137,218,113,133,95,228,218,111,107,92,225,174,166,98,211,84,94,142,43,60,141,115,154,206,103,112,107,92,225,153,124,22,215,226,10,207,230,253,104,14,175,196,21,158,171,30,207,43,73,53,198,21,222,159,228,113,133,15,38,45,174,240,124,190,128,15,165,133,124,17,95,204,151,240,151,120,117,92,225,165,124,25,31,69,47,115,55,113,133,135,54,187,137,43,188,156,235,113,133,87,168,218,190,194,199,210,74,174,199,21,94,197,205,113,133,199,171,191,47,32,115,92,225,87,249,107,220,26,87,184,131,93,73,90,92,225,9,228,20,87,248,90,170,196,21,94,173,150,249,186,250,179,134,107,113,133,111,164,155,232,102,186,133,110,165,181,124,29,95,207,55,112,89,92,225,141,252,118,210,226,10,255,153,244,184,194,111,240,77,92,143,43,252,38,119,19,87,248,45,174,197,21,222,204,39,210,22,110,141,43,252,54,127,150,222,225,90,92,225,41,106,174,173,252,5,218,198,181,184,194,219,249,187,220,26,87,248,61,110,140,43,188,144,180,184,194,75,104,7,47,199,21,222,201,151,211,46,94,29,87,184,141,59,197,21,110,231,122,92,225,14,238,62,174,176,96,149,184,194,187,185,57,174,240,36,38,139,43,220,201,43,113,133,15,96,90,92,225,2,119,142,43,220,197,247,196,21,230,186,53,91,217,104,102,142,43,76,10,83,180,43,90,92,225,102,229,68,198,21,69,145,199,21,22,74,37,174,112,15,197,28,87,184,167,162,197,21,62,135,213,138,43,156,83,46,98,45,202,94,74,47,165,183,114,41,219,91,233,163,244,85,250,41,149,184,194,126,99,139,187,233,3,180,124,178,62,64,139,45,62,132,188,245,1,90,106,45,182,248,176,110,79,181,235,3,220,197,22,119,215,7,152,99,139,123,239,3,100,177,197,131,235,3,156,99,139,91,251,0,237,188,159,216,226,242,62,160,18,91,124,74,41,151,30,91,92,214,7,152,99,139,235,125,64,80,177,197,253,246,1,214,216,226,242,62,192,24,91,220,93,31,32,143,45,238,212,7,148,99,139,219,245,1,78,177,197,189,244,1,136,45,46,227,23,136,41,154,113,194,246,128,168,61,44,171,30,253,183,254,240,101,224,143,19,177,70,8,0,144,88,78,10,172,7,195,156,32,230,4,49,39,152,237,57,193,184,247,118,173,93,201,147,28,174,108,144,20,224,5,193,128,216,226,32,13,190,27,77,108,113,127,126,87,207,179,193,202,123,135,57,121,125,239,112,240,207,6,27,251,222,97,183,207,6,139,121,175,247,2,230,247,14,71,253,108,240,17,154,72,78,239,29,54,63,27,172,253,222,225,160,159,13,122,121,239,176,211,179,193,218,239,29,46,223,11,248,123,239,176,245,94,32,200,247,14,215,190,23,192,123,135,163,228,243,152,105,6,32,211,124,1,125,0,72,28,213,247,2,119,139,242,189,192,61,226,94,113,159,248,143,184,95,60,32,30,20,229,123,129,135,132,211,189,192,195,194,124,47,240,136,152,40,42,247,2,143,138,202,189,192,99,66,187,23,120,92,200,238,5,38,9,227,189,192,19,162,124,47,48,89,60,41,134,210,83,98,24,61,45,158,17,207,10,187,123,129,231,68,43,61,47,204,247,2,83,132,126,47,240,130,120,81,152,239,5,166,138,242,189,192,52,161,223,11,76,23,242,123,129,25,98,44,29,54,100,166,168,220,11,204,18,231,211,108,161,223,11,204,17,149,123,129,185,162,114,47,48,79,104,247,2,243,133,254,92,96,129,112,190,23,88,40,172,247,2,139,196,13,180,88,104,247,2,75,132,243,189,192,75,106,89,75,133,241,94,96,153,40,223,11,188,44,150,139,96,239,5,86,136,234,123,129,87,132,126,47,176,82,104,247,2,171,196,171,162,124,47,240,154,88,45,220,221,11,188,46,172,247,2,107,68,237,123,129,181,194,233,94,96,157,112,191,78,112,189,168,220,11,108,16,178,123,129,141,194,249,94,224,13,161,221,11,108,18,221,223,48,97,190,23,216,44,202,247,2,91,196,219,162,114,47,240,142,144,221,11,108,21,219,68,229,94,96,187,120,87,152,239,5,222,19,198,123,129,29,98,167,24,199,118,137,54,145,174,123,1,165,144,60,201,225,202,6,73,1,94,16,13,247,237,13,27,36,131,95,53,199,77,163,227,176,90,28,0,144,40,190,140,249,38,144,34,190,2,127,174,131,3,96,61,0,208,7,128,18,199,180,192,6,192,31,167,226,123,148,8,158,107,75,158,228,112,101,3,248,174,29,125,123,195,234,192,13,167,227,255,31,48,128,253,2,216,47,128,253,2,217,222,47,128,62,0,125,0,250,0,236,25,74,50,235,16,35,30,192,119,0,0,62,56,19,243,34,117,205,7,168,231,12,247,2,197,188,215,123,129,50,198,123,129,98,94,126,47,80,204,27,239,5,116,226,118,47,80,214,197,205,189,192,79,153,118,47,80,204,59,221,11,20,243,118,247,2,26,55,171,127,107,221,11,104,127,239,40,253,174,247,94,160,152,119,186,23,40,167,119,127,47,80,204,107,247,2,197,124,35,238,5,84,255,172,227,94,160,152,247,127,47,80,204,135,119,47,80,204,35,126,0,0,241,227,242,190,193,203,188,162,111,210,172,16,119,110,196,142,17,120,64,170,60,12,30,237,149,155,96,49,120,64,170,60,12,30,237,149,27,96,49,120,64,170,60,44,173,30,61,115,119,242,36,135,43,27,192,119,131,37,233,177,196,214,118,34,150,24,98,137,249,139,37,182,182,19,177,196,240,92,0,100,153,97,24,173,1,144,105,134,162,15,0,32,22,124,114,159,198,235,48,9,35,226,196,114,118,187,247,43,105,168,93,112,82,211,96,167,56,219,60,40,121,104,53,0,128,169,23,192,110,135,110,62,5,75,0,159,156,3,223,1,0,36,148,44,197,20,229,133,228,73,14,87,54,128,239,130,96,248,37,102,85,224,1,169,242,48,191,229,253,127]; +pub(crate) static ACTION_CHECK_TABLE: [i16; 247326] = [ + 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 11, -1, 13, 14, 9, 15, -1, -1, -1, 15, -1, -1, -1, + -1, 15, -1, -1, -1, -1, -1, -1, 32, -1, -1, -1, -1, -1, -1, -1, -1, -1, 42, -1, -1, 15, -1, -1, + -1, -1, 15, -1, -1, -1, 54, -1, 56, 57, -1, -1, -1, -1, -1, -1, 64, -1, 66, -1, -1, 13, 14, -1, + 20, 18, -1, 18, -1, -1, -1, 79, 40, 81, 18, -1, -1, -1, -1, 35, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 18, 50, 101, 52, -1, 104, -1, 78, 28, -1, 15, 110, 107, 81, -1, -1, 78, 7, -1, -1, + 119, 98, 121, 61, -1, 53, 125, 126, 126, 126, -1, 126, 126, 99, 110, 134, 5, 126, 81, 99, -1, + -1, 126, 107, 27, 144, 93, 146, -1, 4, 8, 49, 97, 49, 126, 107, 155, 126, 126, -1, 97, 104, + 126, 60, 15, 73, 99, 110, 97, 76, 127, 110, 163, 97, 126, 174, 61, -1, 97, 127, 12, 97, 140, + 74, 87, 107, -1, 110, 25, 127, 161, -1, 126, 63, -1, -1, 195, 155, -1, 28, -1, 144, 60, 161, + 72, 98, 174, 161, 40, -1, 126, 210, -1, 151, 66, 122, -1, 126, 113, -1, 78, 126, 96, 200, 99, + 161, 221, 126, 127, 190, 161, 187, 126, 127, 210, 145, 190, 200, 126, 168, 98, 105, 126, 168, + 168, 145, 238, 105, 126, 168, 97, 136, 251, 252, 237, 213, 125, 221, 134, 258, 127, 260, 209, + 238, 98, 123, 168, 210, 267, 221, 127, 210, 120, 260, 273, 274, 275, 276, 277, 265, 279, 139, + 260, 260, 151, 242, 127, 210, 218, 215, 148, 267, 250, 260, 151, 269, 173, 126, 127, 260, 299, + 168, 297, 187, 242, 163, 168, 260, 189, 97, 151, 168, 170, 126, 127, 127, 260, 260, 260, 162, + 316, 260, 180, 238, 267, 260, 260, 168, 267, 238, 309, 260, 97, 297, 248, 256, 71, 260, 250, + 151, 108, 127, 200, 331, 267, 297, 293, 155, 316, 260, 238, 350, 345, 161, 312, 244, 168, 351, + 260, 145, 180, 265, 351, 316, 322, 219, 200, 97, 335, 235, 369, 316, 367, 355, 260, 374, 253, + 376, 319, 378, 238, 239, 117, 256, 383, 316, 161, 316, 265, 260, 389, 185, 316, 392, 257, 293, + 280, 316, 260, 174, 218, 400, 355, 367, 317, 316, 316, 265, 221, 408, 409, 332, 404, 383, 404, + 367, 381, 416, 411, 387, 306, 420, 409, 282, 192, 402, 74, 328, 310, 74, 398, 374, 431, 406, + 126, 307, 297, 404, 168, 379, 97, 356, 250, 218, 371, 332, 416, 339, 398, 448, 448, 448, 451, + 448, 448, 278, 402, 105, 405, 448, 318, 398, 404, 456, 451, 458, 409, 371, 466, 446, 409, 466, + 466, 472, 451, 464, 448, 466, 362, 448, 448, 466, 398, 410, 448, 451, 409, 486, 346, 469, 489, + 451, 371, 492, 335, 404, 448, 496, 356, 357, 464, 456, 360, 458, 312, 456, 410, 458, 451, 496, + 379, 510, 451, 489, 448, 514, 404, 515, 451, 464, 515, 515, 503, 510, 451, 483, 515, 514, 451, + 416, 260, 410, 448, 391, 451, 464, 394, 404, 409, 448, 464, 399, 510, 448, 402, 332, 489, 451, + 332, 448, 489, 398, 410, 496, 448, 413, 462, 496, 501, 464, 448, 97, 464, 404, 448, 383, 489, + 510, 402, 332, 448, 514, 451, 496, 451, 433, 503, 238, 5, 456, 451, 458, 242, 441, 516, 71, + 316, 510, 446, 319, 126, 514, 379, 451, 260, 379, 454, 464, 416, 503, 260, 459, 337, 260, 517, + 416, 408, 464, 464, 145, 487, 469, 446, 491, 389, 320, 379, 451, 476, 448, 335, 158, 502, 464, + 503, 496, 108, 332, 335, 416, 163, 117, 490, 398, 533, 448, 0, 1, 2, 3, 4, 5, 6, 7, 8, 503, 10, + 11, 12, 297, 316, 490, 464, 416, 454, 18, 20, 21, 22, 316, 24, 25, 26, 27, 28, 29, 491, 31, 32, + 33, 34, 35, 36, 37, 379, 39, 40, 41, 42, 43, 44, 45, 396, 109, 48, 49, 50, 51, 52, 404, 54, 55, + 56, 57, 58, 356, 60, 404, 125, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 192, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 533, 457, 87, 154, 89, 332, 113, 396, 93, 94, 399, 383, 97, 98, 99, + 100, 101, 102, 103, 104, 398, 106, 307, 108, 109, 110, 111, 112, 113, 114, 288, 116, 117, 118, + 119, 448, 187, 122, 123, 124, 125, 126, 126, 128, 416, 130, 131, 132, 133, 332, 135, 464, 137, + 138, 139, 162, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 360, 152, 153, 154, 217, 156, + 157, 158, 159, 160, 502, 162, 260, 164, 469, 166, 167, 260, 169, 170, 171, 172, 173, 260, 175, + 374, 177, 178, 179, 202, 379, 182, 464, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 404, 205, 206, 207, 208, 209, 210, 211, 212, 476, + 214, 337, 216, 217, 416, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 405, 126, 335, 244, 245, 246, 27, 248, 249, 332, 251, + 252, 253, 168, 105, 256, 257, 258, 259, 260, 260, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 97, 360, 506, 448, 161, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 379, 298, 299, 300, 97, 126, 303, 304, 402, 306, 476, 308, + 309, 310, 311, 404, 313, 314, 315, 316, 533, 318, 319, 320, 162, 260, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 502, 334, 457, 336, 337, 338, 339, 340, 341, 342, 407, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 416, 354, 355, 356, 357, 358, 359, 360, 202, 362, 363, 364, 365, + 135, 367, 368, 369, 370, 371, 168, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 419, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 260, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 489, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 442, 443, 53, 445, 446, 297, 448, 448, 105, 451, 452, 453, 454, 455, 456, 457, 458, 459, 127, + 461, 462, 463, 402, 74, 466, 467, 468, 469, 470, 471, 472, 473, 99, 475, 476, 477, 260, 479, + 480, 481, 482, 371, 97, 485, 486, 487, 488, 489, 27, 260, 492, 493, 494, 495, 496, 497, 498, + 317, 500, 501, 502, 503, 504, 505, 161, 163, 508, 126, 510, 511, 512, 126, 514, 515, 516, 517, + 97, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, + 5, 6, 7, 8, 450, 10, 11, 12, 126, 27, 402, 464, 396, 402, 335, 20, 21, 22, 413, 24, 25, 26, 27, + 28, 29, 448, 31, 32, 33, 34, 35, 36, 37, 120, 39, 40, 41, 42, 43, 44, 45, 433, 109, 48, 49, 50, + 51, 52, 452, 54, 55, 56, 57, 58, 260, 60, 118, 365, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 131, 75, 76, 77, 78, 79, 80, 503, 82, 83, 84, 127, 97, 87, 404, 89, 448, 367, 510, 93, 94, 260, + 297, 108, 98, 99, 100, 101, 102, 103, 104, 161, 106, 367, 108, 109, 110, 111, 112, 113, 114, + 316, 116, 117, 118, 119, 380, 340, 122, 123, 124, 125, 168, 107, 128, 332, 130, 131, 132, 133, + 464, 135, 260, 137, 138, 139, 270, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 272, 412, + 153, 297, 217, 156, 157, 158, 159, 160, 391, 162, 97, 164, 296, 166, 167, 44, 169, 170, 171, + 172, 173, 339, 175, 379, 177, 178, 179, 507, 192, 182, 497, 184, 185, 186, 366, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 260, 205, 206, 207, 208, 209, + 210, 211, 212, 416, 214, 297, 216, 217, 260, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 221, 126, 57, 244, 245, 246, 398, + 248, 249, 126, 251, 252, 253, 413, 297, 256, 257, 258, 259, 490, 145, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 97, 161, 332, 190, 407, 278, 279, 404, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 448, 298, 299, 300, 448, 126, 303, 304, + 140, 306, 97, 308, 309, 310, 311, 502, 313, 314, 315, 163, 297, 318, 319, 320, 145, 379, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 168, 334, 448, 336, 337, 338, 339, 340, 341, 342, + 253, 344, 345, 346, 347, 348, 349, 350, 351, 352, 97, 354, 355, 356, 357, 358, 359, 360, 260, + 163, 363, 364, 365, 265, 367, 368, 369, 370, 371, 187, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 367, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 297, 399, + 400, 401, 402, 403, 399, 405, 406, 407, 408, 97, 410, 411, 412, 413, 414, 250, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 497, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, 399, 445, 446, 127, 396, 397, 297, 464, 452, 453, 454, 455, 456, + 457, 458, 459, 296, 461, 462, 463, 398, 127, 466, 467, 468, 469, 470, 151, 472, 473, 469, 475, + 476, 477, 97, 479, 480, 481, 482, 145, 497, 485, 486, 487, 488, 489, 404, 489, 492, 493, 494, + 495, 496, 497, 498, 313, 500, 501, 502, 503, 504, 505, 496, 18, 508, 385, 97, 511, 512, 97, + 469, 515, 516, 517, 97, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 126, 154, 97, 97, 366, 462, 151, 20, 21, 22, + 379, 24, 25, 26, 27, 398, 29, 448, 31, 32, 33, 34, 71, 36, 37, 448, 39, 40, 41, 42, 43, 44, 45, + 143, 187, 48, 49, 50, 51, 52, 182, 54, 55, 56, 57, 58, 18, 416, 200, 320, 63, 64, 65, 66, 67, + 68, 161, 70, 71, 72, 73, 398, 75, 76, 77, 78, 79, 80, 117, 174, 83, 84, 322, 97, 87, 366, 510, + 448, 512, 208, 93, 94, 476, 7, 379, 98, 99, 100, 101, 102, 103, 104, 67, 106, 186, 108, 109, + 110, 111, 112, 113, 114, 148, 116, 117, 118, 119, 31, 502, 122, 123, 124, 125, 218, 126, 128, + 332, 130, 131, 132, 133, 416, 135, 332, 137, 138, 139, 280, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 341, 126, 153, 488, 297, 156, 157, 158, 159, 160, 398, 162, 316, 164, 44, 166, + 502, 433, 127, 170, 171, 172, 173, 316, 175, 379, 177, 178, 179, 383, 97, 182, 379, 184, 185, + 186, 145, 188, 189, 190, 270, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 322, + 205, 262, 207, 208, 209, 210, 211, 212, 416, 214, 260, 216, 217, 97, 182, 416, 221, 362, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 322, 464, + 387, 244, 245, 97, 126, 248, 97, 464, 251, 252, 253, 398, 127, 256, 257, 258, 259, 188, 97, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 145, 126, 127, 143, 398, 278, 279, 398, + 281, 282, 283, 242, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 389, 298, 299, + 211, 337, 260, 303, 304, 143, 306, 97, 308, 309, 310, 311, 451, 313, 314, 315, 398, 398, 318, + 319, 320, 320, 419, 323, 324, 127, 326, 327, 407, 329, 330, 331, 332, 126, 334, 448, 336, 337, + 338, 339, 340, 341, 342, 145, 344, 345, 346, 347, 348, 349, 350, 351, 352, 97, 354, 355, 356, + 357, 358, 359, 360, 3, 331, 363, 364, 365, 495, 367, 368, 369, 370, 371, 242, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 398, 388, 389, 242, 391, 392, 393, 394, + 395, 396, 397, 260, 399, 400, 401, 402, 403, 129, 405, 406, 407, 408, 134, 410, 411, 412, 413, + 414, 180, 416, 417, 418, 419, 420, 457, 422, 423, 424, 425, 223, 427, 428, 429, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 306, 445, 446, 416, 94, 448, 366, 53, + 452, 126, 454, 455, 456, 457, 458, 459, 484, 461, 462, 463, 316, 510, 466, 467, 468, 469, 470, + 322, 472, 473, 448, 475, 476, 477, 129, 479, 480, 481, 482, 134, 97, 485, 486, 487, 488, 489, + 464, 272, 492, 493, 494, 495, 496, 497, 498, 446, 500, 143, 502, 503, 504, 505, 385, 9, 508, + 97, 303, 511, 512, 126, 16, 515, 516, 517, 480, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 490, 10, 11, 12, 398, 383, 97, 398, + 510, 419, 322, 20, 21, 22, 260, 24, 25, 26, 27, 398, 29, 331, 31, 32, 33, 34, 448, 36, 37, 222, + 39, 40, 41, 42, 43, 44, 45, 168, 416, 48, 49, 50, 51, 52, 97, 54, 55, 56, 57, 58, 323, 97, 33, + 448, 63, 64, 65, 66, 67, 68, 151, 70, 71, 72, 73, 398, 75, 76, 77, 78, 79, 80, 396, 126, 83, + 84, 491, 266, 87, 366, 127, 9, 271, 391, 93, 94, 491, 113, 16, 98, 99, 100, 101, 102, 103, 104, + 491, 106, 416, 108, 109, 110, 111, 112, 113, 114, 416, 116, 117, 118, 119, 97, 448, 122, 123, + 124, 125, 126, 461, 128, 126, 130, 131, 132, 133, 99, 135, 12, 137, 138, 139, 97, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 396, 397, 153, 497, 491, 156, 157, 158, 159, 160, 297, + 162, 97, 164, 172, 166, 476, 126, 126, 170, 171, 172, 173, 489, 175, 165, 177, 178, 179, 387, + 398, 182, 97, 184, 185, 186, 404, 188, 189, 190, 398, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 242, 205, 313, 207, 208, 209, 210, 211, 212, 97, 214, 174, 216, 217, 175, + 191, 396, 221, 260, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 448, 126, 419, 244, 245, 218, 506, 248, 105, 126, 251, 252, 253, 491, 203, 256, + 257, 258, 259, 260, 145, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 97, 508, 74, + 293, 249, 278, 279, 168, 281, 282, 283, 491, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 335, 298, 299, 507, 448, 126, 303, 304, 161, 306, 97, 308, 309, 310, 311, 316, 313, + 314, 315, 398, 321, 318, 319, 320, 506, 97, 323, 324, 202, 326, 327, 293, 329, 330, 331, 332, + 126, 334, 510, 336, 337, 338, 339, 340, 341, 342, 112, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 97, 354, 355, 356, 357, 358, 359, 360, 398, 379, 363, 364, 365, 404, 367, 368, 369, 370, + 371, 260, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 317, 388, 389, + 426, 391, 392, 393, 394, 395, 396, 397, 387, 399, 400, 401, 402, 403, 448, 405, 406, 407, 408, + 398, 410, 411, 412, 413, 414, 144, 416, 417, 418, 419, 420, 398, 422, 423, 424, 425, 317, 427, + 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 170, 445, 446, + 97, 448, 421, 307, 448, 452, 97, 454, 455, 456, 457, 458, 459, 170, 461, 462, 463, 398, 413, + 466, 467, 468, 469, 470, 372, 472, 473, 97, 475, 476, 477, 335, 479, 480, 481, 482, 260, 398, + 485, 486, 487, 488, 489, 448, 448, 492, 493, 494, 495, 496, 497, 498, 430, 500, 501, 502, 503, + 504, 505, 382, 426, 508, 108, 332, 511, 512, 510, 126, 515, 516, 517, 168, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 5, 10, 11, + 12, 404, 154, 11, 359, 163, 510, 510, 20, 21, 22, 379, 24, 25, 26, 27, 121, 29, 448, 31, 32, + 33, 34, 35, 36, 37, 448, 39, 40, 41, 42, 43, 44, 45, 510, 187, 48, 49, 50, 51, 52, 161, 54, 55, + 56, 57, 58, 192, 416, 404, 260, 63, 64, 65, 66, 67, 68, 158, 70, 71, 72, 73, 398, 75, 76, 77, + 78, 79, 80, 199, 190, 83, 84, 510, 105, 87, 222, 398, 448, 434, 435, 93, 94, 404, 404, 357, 98, + 99, 100, 101, 102, 103, 104, 97, 106, 152, 108, 109, 110, 111, 112, 113, 114, 428, 116, 117, + 118, 119, 398, 448, 122, 123, 124, 125, 434, 435, 128, 125, 130, 131, 132, 133, 332, 135, 469, + 137, 138, 139, 280, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 240, 510, 153, 397, 448, + 156, 157, 158, 159, 160, 398, 162, 510, 164, 512, 166, 18, 187, 331, 170, 171, 172, 173, 320, + 175, 168, 177, 178, 179, 491, 379, 182, 510, 184, 185, 186, 170, 188, 189, 190, 325, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 495, 205, 97, 207, 208, 209, 210, 211, 212, + 137, 214, 44, 216, 217, 416, 63, 398, 221, 362, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 398, 316, 506, 244, 245, 260, 321, 248, 158, 126, + 251, 252, 253, 416, 460, 256, 257, 258, 259, 260, 280, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 510, 319, 512, 127, 168, 278, 279, 464, 281, 282, 283, 170, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 126, 298, 299, 151, 5, 448, 303, 304, 97, 306, 316, + 308, 309, 310, 311, 321, 313, 314, 315, 145, 168, 318, 319, 320, 207, 15, 323, 324, 339, 326, + 327, 264, 329, 330, 331, 332, 5, 334, 318, 336, 337, 338, 339, 340, 341, 342, 362, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 144, 354, 355, 356, 357, 358, 359, 360, 97, 44, 363, 364, + 365, 126, 367, 368, 369, 370, 371, 437, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 107, 388, 389, 107, 391, 392, 393, 394, 395, 396, 397, 310, 399, 400, 401, 402, + 403, 316, 405, 406, 407, 408, 321, 410, 411, 412, 413, 414, 97, 416, 417, 418, 419, 420, 125, + 422, 423, 424, 425, 471, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 126, 445, 446, 110, 126, 97, 127, 126, 452, 125, 454, 455, 456, 457, 458, 459, + 97, 461, 462, 463, 97, 144, 466, 467, 468, 469, 470, 61, 472, 473, 151, 475, 476, 477, 126, + 479, 480, 481, 482, 287, 20, 485, 486, 487, 488, 489, 126, 168, 492, 493, 494, 495, 496, 497, + 498, 35, 500, 3, 502, 503, 504, 505, 8, 182, 508, 97, 314, 511, 512, 161, 97, 515, 516, 517, + 81, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 3, 168, 97, 127, + 9, 8, 81, 61, 107, 126, 20, 47, 97, 210, 126, 5, 97, 97, 21, 140, 398, 11, 385, 93, 60, 35, + 320, 151, 127, 126, 110, 8, 97, 145, 155, 44, 168, 97, 448, 81, 161, 105, 78, 140, 47, 126, + 235, 40, 260, 108, 110, 126, 151, 307, 15, 97, 126, 60, 155, 97, 97, 126, 98, 126, 161, 140, + 98, 171, 28, 168, 107, 74, 398, 235, 182, 78, 44, 174, 260, 464, 155, 491, 136, 93, 126, 448, + 161, 123, 97, 126, 165, 97, 213, 260, 332, 98, 161, 74, 140, 174, 510, 218, 105, 139, 293, 169, + 359, 161, 319, 105, 81, 97, 148, 155, 97, 120, 213, 126, 242, 161, 123, 81, 221, 165, 107, 190, + 332, 163, 398, 250, 210, 293, 174, 192, 170, 125, 139, 22, 213, 209, 126, 379, 28, 126, 180, + 148, 316, 97, 260, 316, 210, 404, 319, 250, 448, 126, 97, 97, 126, 404, 163, 154, 168, 97, 200, + 161, 126, 170, 200, 385, 173, 213, 81, 379, 161, 250, 126, 180, 416, 260, 260, 434, 435, 144, + 221, 293, 303, 267, 370, 434, 435, 312, 97, 170, 187, 81, 97, 200, 297, 209, 260, 322, 238, + 174, 364, 367, 260, 267, 250, 120, 416, 122, 320, 189, 174, 312, 398, 126, 97, 316, 293, 110, + 127, 293, 332, 322, 154, 398, 168, 265, 419, 128, 448, 460, 298, 238, 448, 312, 221, 448, 126, + 316, 493, 120, 61, 122, 151, 322, 126, 168, 253, 44, 44, 464, 358, 260, 494, 419, 44, 187, 297, + 238, 265, 40, 260, 174, 448, 168, 367, 18, 312, 379, 151, 94, 316, 472, 398, 398, 448, 446, + 322, 335, 318, 293, 260, 387, 63, 280, 174, 97, 387, 395, 489, 506, 298, 331, 398, 464, 510, + 218, 489, 398, 514, 398, 97, 97, 324, 411, 126, 194, 346, 264, 387, 398, 297, 318, 379, 387, + 321, 136, 356, 357, 375, 398, 360, 39, 425, 489, 398, 409, 367, 448, 464, 126, 126, 405, 448, + 297, 28, 187, 126, 162, 332, 346, 297, 387, 401, 439, 452, 409, 404, 448, 280, 356, 357, 391, + 398, 360, 394, 126, 398, 51, 483, 399, 1, 464, 402, 448, 371, 362, 402, 451, 398, 448, 410, 53, + 385, 413, 448, 356, 357, 202, 168, 448, 367, 448, 483, 495, 391, 379, 18, 451, 387, -1, 381, + 405, 399, 433, 510, 402, 114, 464, 514, 398, 409, 441, 448, 410, 483, 489, 413, 448, 398, 510, + 446, 451, 496, 385, 454, 451, 297, 127, 399, 459, 168, 303, 416, 491, 491, 489, 433, 467, 280, + 469, 362, 510, 496, 127, 441, 448, 476, 483, 199, 260, 497, 266, 451, 510, 451, -1, 271, 454, + -1, 456, 490, 458, 459, 398, 464, 532, 97, 151, 448, 141, 467, 448, 469, 503, 510, 18, 473, + 497, 121, 476, 97, 97, 97, 448, 168, 15, 448, 484, 416, 105, 487, 163, 298, 490, 448, -1, 467, + 496, 469, 398, 97, 510, 473, 97, 448, 514, 503, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 362, + 510, 97, 512, 335, 398, 396, 20, 21, 22, 464, 24, 25, 26, 27, 151, 29, -1, 31, 32, 33, 34, 293, + 36, 37, 448, 39, 40, 41, 42, 43, 44, 45, -1, 126, 48, 49, 50, 51, 52, 260, 54, 55, 56, 57, 58, + 510, 210, 448, 464, 63, 64, 65, 66, 67, 68, 448, 70, 71, 72, 73, 451, 75, 76, 77, 78, 79, 80, + 510, 161, 83, 84, 514, 404, 87, 371, 398, 510, 385, 385, 93, 94, 69, 97, 121, 98, 99, 100, 101, + 102, 103, 104, 18, 106, 144, 108, 109, 110, 111, 112, 113, 114, 402, 116, 117, 118, 119, 398, + 63, 122, 123, 124, 125, 127, 410, 128, 448, 130, 131, 132, 133, -1, 135, 97, 137, 138, 139, + 398, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 97, 126, 153, 448, 448, 156, 157, 158, + 159, 160, 448, 162, 97, 164, 44, 166, 168, 451, 307, 170, 171, 172, 173, 353, 175, 489, 177, + 178, 179, 448, 127, 182, 157, 184, 185, 186, 316, 188, 189, 190, 510, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 454, 205, 97, 207, 208, 209, 210, 211, 212, 97, 214, 502, + 216, 217, 97, 464, 503, 221, 168, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 242, 510, 127, 244, 245, 97, 126, 248, 387, 126, 251, 252, 253, + 105, 18, 256, 257, 258, 259, 398, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 464, 398, 398, 398, 144, 278, 279, -1, 281, 282, 283, 168, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 398, 298, 299, 151, 97, 97, 303, 304, 484, 306, 97, 308, 309, 310, + 311, 416, 313, 314, 315, 398, 18, 318, 319, 320, 97, 97, 323, 324, 454, 326, 327, -1, 329, 330, + 331, 332, 97, 334, 45, 336, 337, 338, 339, 340, 341, 342, 53, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 170, 354, 355, 356, 357, 358, 359, 360, 151, 97, 363, 364, 365, 142, 367, 368, + 369, 370, 371, 168, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 427, + 388, 389, 153, 391, 392, 393, 394, 395, 396, 397, 340, 399, 400, 401, 402, 403, 454, 405, 406, + 407, 408, 97, 410, 411, 412, 413, 414, 455, 416, 417, 418, 419, 420, 197, 422, 423, 424, 425, + -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 396, + 445, 446, 289, 290, 291, 292, 18, 452, 126, 454, 455, 456, 457, 458, 459, 510, 461, 462, 463, + 398, -1, 466, 467, 468, 469, 470, 322, 472, 473, 448, 475, 476, 477, 396, 479, 480, 481, 482, + 507, 97, 485, 486, 487, 488, 489, 121, 404, 492, 493, 494, 495, 496, 497, 498, 451, 500, 318, + 502, 503, 504, 505, 385, 398, 508, 105, 97, 511, 512, 126, 432, 515, 516, 517, 464, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, + 253, 10, 11, 12, 398, -1, 510, 141, 147, 316, 514, 20, 21, 22, 321, 24, 25, 26, 27, 175, 29, + -1, 31, 32, 33, 34, 448, 36, 37, 448, 39, 40, 41, 42, 43, 44, 45, 464, 168, 48, 49, 50, 51, 52, + 97, 54, 55, 56, 57, 58, 189, 18, 97, -1, 63, 64, 65, 66, 67, 68, 398, 70, 71, 72, 73, 398, 75, + 76, 77, 78, 79, 80, 316, 126, 83, 84, 436, 97, 87, 398, 398, 322, 127, 110, 93, 94, 260, 17, + 507, 98, 99, 100, 101, 102, 103, 104, 506, 106, 15, 108, 109, 110, 111, 112, 113, 114, 151, + 116, 117, 118, 119, 17, 17, 122, 123, 124, 125, -1, -1, 128, 398, 130, 131, 132, 133, 464, 135, + 18, 137, 138, 139, 97, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 316, 17, 153, 130, -1, + 156, 157, 158, 159, 160, 137, 162, 97, 164, 44, 166, 297, 126, 126, 170, 171, 172, 173, 406, + 175, 398, 177, 178, 179, 387, 63, 182, 63, 184, 185, 186, -1, 188, 189, 190, 398, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 398, 205, 242, 207, 208, 209, 210, 211, 212, + 97, 214, -1, 216, 217, 97, 454, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 448, 126, -1, 244, 245, -1, 126, 248, 18, 297, 251, + 252, 253, 448, 398, 256, 257, 258, 259, 307, 396, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 398, 126, 510, -1, 512, 278, 279, 97, 281, 282, 283, 330, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 432, 298, 299, 507, 448, 1, 303, 304, 448, 306, 110, 308, + 309, 310, 311, -1, 313, 314, 315, 363, 1, 318, 319, 320, 97, 125, 323, 324, -1, 326, 327, 97, + 329, 330, 331, 332, -1, 334, 128, 336, 337, 338, 339, 340, 341, 342, 464, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 454, 354, 355, 356, 357, 358, 359, 360, -1, 398, 363, 364, 365, 142, + 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 398, 388, 389, 491, 391, 392, 393, 394, 395, 396, 397, 97, 399, 400, 401, 402, 403, 448, + 405, 406, 407, 408, 510, 410, 411, 412, 413, 414, 110, 416, 417, 418, 419, 420, 197, 422, 423, + 424, 425, 121, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, + 443, 309, 445, 446, 105, 97, -1, 496, 316, 452, 32, 454, 455, 456, 457, 458, 459, 340, 461, + 462, 463, 398, -1, 466, 467, 468, 469, 470, 489, 472, 473, 97, 475, 476, 477, 127, 479, 480, + 481, 482, 97, 97, 485, 486, 487, 488, 489, 448, 448, 492, 493, 494, 495, 496, 497, 498, 510, + 500, 260, 502, 503, 504, 505, 385, 97, 508, 97, -1, 511, 512, 126, -1, 515, 516, 517, -1, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 126, -1, 352, 507, 310, 460, 510, 20, 21, 22, -1, 24, 25, 26, 27, 175, 29, + 448, 31, 32, 33, 34, 448, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, 339, 398, 48, 49, 50, 51, 52, + 97, 54, 55, 56, 57, 58, 242, 97, 516, 448, 63, 64, 65, 66, 67, 68, 396, 70, 71, 72, 73, 307, + 75, 76, 77, 78, 79, 80, 110, 126, 83, 84, 516, 516, 87, 398, 307, 398, -1, 510, 93, 94, 398, + 141, -1, 98, 99, 100, 101, 102, 103, 104, 432, 106, 464, 108, 109, 110, 111, 112, 113, 114, + 307, 116, 117, 118, 119, 97, 507, 122, 123, 124, 125, -1, 87, 128, -1, 130, 131, 132, 133, 491, + 135, 15, 137, 138, 139, 448, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 387, 153, + 387, -1, 156, 157, 158, 159, 160, 40, 162, 398, 164, 398, 166, -1, 168, 387, 170, 171, 172, + 173, 15, 175, -1, 177, 178, 179, 398, 210, 182, 97, 184, 185, 186, 187, 188, 189, 190, -1, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, 97, 207, 208, 209, 210, 211, + 212, 127, 214, 398, 216, 217, 218, -1, 180, 221, 260, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 398, -1, -1, 244, 245, 169, 97, 248, 97, 398, + 251, 252, 253, -1, -1, 256, 257, 258, 259, 489, -1, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 386, 398, 510, 398, 512, 278, 279, 280, 281, 282, 283, -1, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 335, 298, 299, 141, 448, 97, 303, 304, -1, 306, 97, + 308, 309, 310, 311, -1, 313, 314, 315, -1, 126, 318, 319, 320, 97, -1, 323, 324, 97, 326, 327, + 242, 329, 330, 331, 332, 293, 334, 448, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 398, 354, 355, 356, 357, 358, 359, 360, 398, 362, 363, 364, 365, + 404, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 97, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, + 448, 405, 406, 407, 408, 110, 410, 411, 412, 413, 414, 338, 416, 417, 418, 419, 420, 398, 422, + 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 442, 443, -1, 445, 446, 127, 144, -1, -1, 260, 452, 126, 454, 455, 456, 457, 458, 459, 489, + 461, 462, 463, -1, 161, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, + 481, 482, 97, 398, 485, 486, 487, 488, 489, 381, -1, 492, 493, 494, 495, 496, 497, 498, 422, + 500, 461, 502, 503, 504, 505, -1, -1, 508, 210, 305, 511, 512, -1, 260, 515, 516, 517, 97, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 126, 398, -1, 398, -1, -1, -1, 20, 21, 22, 398, 24, 25, 26, 27, 242, 29, 310, + 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, 260, 460, 48, 49, 50, 51, 52, -1, + 54, 55, 56, 57, 58, 339, -1, 97, -1, 63, 64, 65, 66, 67, 68, 398, 70, 71, 72, 73, 398, 75, 76, + 77, 78, 79, 80, 81, -1, 83, 84, 510, -1, 87, 398, 514, -1, 127, 398, 93, 94, -1, -1, -1, 98, + 99, 100, 101, 102, 103, 104, 448, 106, -1, 108, 109, 110, 111, 112, 113, 114, 151, 116, 117, + 118, 119, -1, -1, 122, 123, 124, 125, 340, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, + 138, 139, 97, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, 398, -1, 156, 157, + 158, 159, 160, -1, 162, -1, 164, 44, 166, 510, -1, 126, 170, 171, 172, 173, 409, 175, -1, 177, + 178, 179, 387, 510, 182, -1, 184, 185, 186, -1, 188, 189, 190, 398, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, -1, 205, 242, 207, 208, 209, 210, 211, 212, 97, 214, -1, + 216, 217, 97, -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 448, 126, -1, 244, 245, -1, 126, 248, -1, 398, 251, 252, 253, 489, -1, + 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, 127, + 506, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, -1, 298, 299, -1, -1, 1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, + 315, -1, 126, 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, + 448, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, + 354, 355, 356, 357, 358, 359, 360, -1, 398, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 144, 388, 389, 242, 391, + 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, 161, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, + -1, -1, 452, 97, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, + 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, 335, 293, 485, 486, 487, 488, + 489, -1, 448, 492, 493, 494, 495, 496, 497, 498, 107, 500, -1, 502, 503, 504, 505, 385, -1, + 508, -1, 154, 511, 512, -1, 398, 515, 516, 517, 97, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 187, 10, 11, 12, 126, -1, -1, -1, + -1, 404, 161, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, 448, 31, 32, 33, 34, 448, 36, 37, -1, 39, + 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, 204, + 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, 307, 75, 76, 77, 78, 79, 80, -1, 373, 83, 84, -1, + -1, 87, -1, 322, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, 448, 106, -1, + 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, + 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, 97, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 293, 495, 153, 387, 297, 156, 157, 158, 159, 160, -1, 162, -1, 164, 398, 166, + -1, -1, 126, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, + -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, + 207, 208, 209, 210, 211, 212, -1, 214, 506, 216, 217, -1, -1, 398, 221, 17, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, + -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 97, -1, 70, -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, 126, 303, 304, -1, 306, + -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, 317, 318, 319, 320, -1, -1, 323, 324, -1, 326, + 327, -1, 329, 330, 331, 332, -1, 334, 448, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, + 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, 179, 363, 364, + 365, 190, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, + 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, + 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 442, 443, -1, 445, 446, -1, -1, -1, -1, 451, 452, 97, 454, 455, 456, 457, 458, 459, 105, 461, + 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, + 482, -1, -1, 485, 486, 487, 488, 489, -1, 448, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, + 502, 503, 504, 505, -1, -1, 508, -1, 154, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 187, 10, + 11, 12, -1, 365, -1, -1, -1, -1, 510, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, + 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, 397, 398, 48, 49, 50, 51, 52, -1, 54, 55, 56, + 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, + 260, 126, 83, 84, -1, -1, 87, -1, -1, 448, 126, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, + 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, 155, -1, 122, + 123, 124, 125, 161, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 330, 481, 153, -1, -1, 156, 157, 158, 159, 160, 205, + 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, + -1, 184, 185, 186, 516, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, 250, 216, 217, -1, -1, 398, 221, + -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + -1, -1, -1, 244, 245, -1, -1, 248, 293, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, 312, 278, 279, -1, 281, + 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, + -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, 496, 318, 319, 320, -1, + -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, + 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, + -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, + 400, 401, 402, 403, 448, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, + 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, 495, 452, -1, 454, 455, 456, 457, + 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, + -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, + 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, 17, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, + 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, + 79, 80, -1, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, -1, 98, 99, 100, 101, + 102, 103, 104, 105, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, 120, + -1, 122, 123, 124, 125, 126, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, -1, 164, -1, 166, 167, 168, 169, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, + 180, -1, 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, -1, 214, -1, 216, 217, -1, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, -1, 302, 303, 304, -1, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + -1, -1, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 44, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, + 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, + -1, 450, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, + 469, 470, 471, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, 484, 485, 486, 487, + 488, 489, 490, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, + 507, 508, 509, -1, 511, 512, -1, -1, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 169, 10, 11, 12, -1, -1, -1, + -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, -1, 31, 32, -1, 34, 35, 36, 37, -1, 39, + 40, 41, 42, 43, 44, 45, 206, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 293, -1, 60, -1, 222, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, -1, + 246, 87, -1, 89, -1, 97, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, + 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, 126, -1, 122, 123, 124, 125, -1, + 126, 128, -1, 130, 131, 132, 133, -1, 135, 12, 137, 138, 139, -1, 141, 142, 143, 144, 110, 146, + 147, 148, 149, 385, -1, -1, 153, 7, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, + 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, -1, 31, 179, -1, 416, 182, 182, 184, 185, 186, + -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, + 206, -1, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, -1, -1, + -1, -1, -1, -1, 390, 126, -1, -1, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 210, 246, + -1, 248, 249, -1, 251, 252, 253, 260, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, + 267, 97, 269, 270, 271, 272, 126, -1, 97, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 293, -1, 296, 126, 298, 299, 300, 126, -1, 303, 126, -1, + 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, 320, -1, 323, 324, 325, + -1, 327, 328, -1, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, + 346, -1, 348, -1, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, 190, -1, 363, 364, 365, + -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, -1, 399, 400, 401, 402, 403, -1, + 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 448, + 443, -1, 445, 446, 44, -1, 448, -1, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, + 463, -1, -1, 466, 467, 293, 469, -1, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, + -1, -1, 485, 486, 487, 488, 489, 97, -1, 492, 493, 494, 495, 495, 497, 498, -1, 500, 501, 502, + 503, 504, 505, 382, 472, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 126, 396, -1, -1, + 399, 489, -1, -1, -1, -1, 126, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, + -1, 145, 59, -1, -1, -1, 448, 20, 21, 22, -1, 24, 25, 26, 27, 384, 29, -1, 31, 32, 33, 34, 464, + 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, 97, 54, 55, 56, 57, 58, + 469, 416, 448, 491, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, + 510, 126, 83, 84, 448, -1, 87, -1, 448, -1, -1, 448, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, + 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, + 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, 495, 137, 138, 139, -1, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, + -1, 164, 44, 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, + 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, 97, -1, -1, 221, -1, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, + -1, 384, 244, 245, -1, 126, 248, -1, -1, 251, 252, 253, 385, -1, 256, 257, 258, 259, -1, -1, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, 416, -1, -1, 278, 279, -1, 281, + 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, + 1, 303, 304, -1, 306, 448, 308, 309, 310, 311, -1, 313, 314, 315, -1, 448, 318, 319, 320, -1, + -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, + 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, + -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, 97, 399, + 400, 401, 402, 403, 448, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, + 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, -1, 445, 446, 491, -1, -1, -1, -1, 452, 126, 454, 455, 456, 457, + 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, + -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, + 498, 107, 500, -1, 502, 503, 504, 505, 385, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, + -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, + 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, 161, 20, 21, 22, -1, 24, 25, 26, 27, -1, + 29, -1, 31, 32, 33, 34, 448, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, + 52, 97, 54, 55, 56, 57, 58, -1, -1, -1, 204, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, 307, + 75, 76, 77, 78, 79, 80, -1, 126, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, + 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, + 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, + 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 293, -1, 153, 387, 297, 156, + 157, 158, 159, 160, -1, 162, -1, 164, 398, 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, + 177, 178, 179, 387, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, 398, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, + 216, 217, 97, -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 448, -1, -1, 244, 245, -1, 126, 248, -1, -1, 251, 252, 253, -1, -1, + 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, + -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, + -1, -1, 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, + 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, + 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, + 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, 448, 405, 406, 407, 408, -1, 410, 411, 412, + 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 491, -1, -1, -1, -1, + 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, + 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, 370, + 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, + 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, + 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, 448, 36, 37, -1, 39, 40, 41, 42, 43, 44, + 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, + -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, + 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, + 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, + -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, + -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, 44, 166, -1, -1, -1, 170, 171, 172, 173, -1, + 175, -1, 177, 178, 179, 59, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, + 214, -1, 216, 217, 97, -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, 126, 248, -1, -1, 251, 252, 253, + -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, + -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, + 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, + 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, + -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, + 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, + 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, + -1, -1, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, + 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, + -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, 385, -1, 508, -1, + -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, + 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, 448, 36, 37, -1, 39, 40, 41, 42, 43, + 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, + 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, 81, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, + -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, + 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, + 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, + 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, + 173, 174, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, + 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, + 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, + -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, + 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, + 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, + -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, + 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, + -1, -1, -1, -1, -1, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, + 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, + 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, + 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, 17, -1, + -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, 105, 106, -1, 108, 109, 110, 111, + 112, 113, 114, -1, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, 126, -1, 128, -1, 130, 131, + 132, 133, -1, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, -1, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, -1, 177, 178, 179, 180, -1, 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, 97, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, + 246, 126, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, -1, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, + 304, -1, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, -1, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, + -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 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, 402, 403, 404, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, 448, -1, 450, -1, 452, 453, 454, 455, + 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, 471, 472, 473, -1, 475, + 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 370, 492, 493, 494, + 495, 496, 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, 507, 508, 509, 510, 511, 512, -1, -1, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, + 26, 27, -1, 29, -1, 31, 32, 33, 34, 448, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, + 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, + 73, -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, + -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, + 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, + 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, + 157, 158, 159, 160, -1, 162, -1, 164, 44, 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, + 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, + 217, 97, -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, 126, 248, -1, -1, 251, 252, 253, -1, -1, 256, + 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, + -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, + -1, -1, 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, + 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, + 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, + 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, + 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, + 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, + 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, + 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, 385, -1, 508, -1, -1, 511, + 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, + 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, 448, 36, 37, -1, 39, 40, 41, 42, 43, 44, + 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, + -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, + 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, + 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, + -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, + -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, + 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, + 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, + -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, + -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, + 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, + 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, + -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, + 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, + 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, + -1, -1, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, + 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, + -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, + -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, + 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, + 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, + -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, + 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, + 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, + -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, + -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, + 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, + 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, + -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, + -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, + 314, 315, -1, 317, 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, + 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, + -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, + 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, + 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, + -1, -1, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, + 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, + -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, + -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, + 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, + 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, + -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, + 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, + 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, + -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, + -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, + 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, + 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, + -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, + -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, + 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, + 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, + -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, + 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, + 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, + 450, -1, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, + 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, + -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, + -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, 13, 14, -1, -1, -1, -1, -1, 20, + 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, + 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, + -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, + 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, + 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, 126, -1, 128, -1, 130, 131, 132, 133, + -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, + -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, + -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, + -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, + 253, -1, -1, 256, 257, 258, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, + -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, + 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, + 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, + 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, + -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, + 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, + 448, -1, -1, -1, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, + 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, + 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, -1, + 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, + -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, + 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, + 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, + -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, + 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, + 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, -1, -1, -1, 170, + 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, + -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, + 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, -1, + -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, + 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, + 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, + 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, + 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, + 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, + 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, + 446, -1, -1, -1, -1, -1, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, + 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, + 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, + -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, + -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, + 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, + 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, + -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, + 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, 126, -1, 128, -1, + 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, -1, -1, -1, + 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, + 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, + 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, + -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, + 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, + 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, + 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, + 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, + 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, + 446, -1, 448, -1, -1, -1, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, + 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, + 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, 504, + 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, + -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, -1, + 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, -1, -1, + 87, 88, 89, -1, -1, 92, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, + 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, + -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, + 169, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 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, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, + 246, -1, 248, 249, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, -1, -1, 303, 304, -1, + 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, + 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, + 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, + 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, 453, 454, 455, 456, 457, 458, 459, + -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, + 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, + 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, + 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, + 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, + 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, + 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, + 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, + -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, + 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, + -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, + 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, + 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, + 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, + -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, + 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, + 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, + 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, -1, 454, 455, 456, 457, 458, + 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, + 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, + -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, + 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, + 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, + 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, + 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, 95, -1, -1, 98, 99, 100, 101, 102, + 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, + 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, + -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, 176, 177, 178, 179, -1, 181, 182, + -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, + -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + -1, -1, -1, 244, 245, -1, 247, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, 280, 281, + 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, + 301, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, + -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, + 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, + -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, + 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, 449, 450, -1, 452, -1, 454, 455, 456, + 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, + 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, + 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, + 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, + 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, + 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, + -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, + 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, + 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, + 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, + 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, + 159, 160, -1, 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, + 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, + -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, + 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, + 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, + 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, + 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, + 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, + 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, + 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, + 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, -1, 454, + 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, + 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, + 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, + 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, + 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, + 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, -1, -1, 87, 88, 89, -1, -1, 92, 93, 94, -1, -1, -1, + 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, + 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, + 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, + 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, 177, + 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 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, -1, 214, -1, 216, + 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, 249, -1, 251, 252, 253, -1, -1, + 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, + -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, -1, 298, 299, 300, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, + 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, 334, + -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, + 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, + -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, + -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, + -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, -1, + 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, + 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, + 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, + -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, + 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, + 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, + -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, + -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, + 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, + 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, + -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, + -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, + 314, 315, -1, 317, 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, + 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, + -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, + 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, + 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, + -1, -1, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, + 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, + -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, + -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, + 21, 22, -1, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, + 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, -1, -1, 87, 88, 89, -1, -1, 92, + 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, + 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, + -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, + -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, + -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 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, + -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, 249, -1, 251, + 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, -1, 298, 299, 300, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, + -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, + 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, + 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, + -1, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, + 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, + -1, -1, -1, -1, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, + 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, + 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, + -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 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, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 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, -1, -1, -1, -1, -1, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, 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, + 396, 397, 398, 399, 400, 401, 402, 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, 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, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, -1, 514, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 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, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 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, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, 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, 396, 397, + 398, 399, 400, 401, 402, 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, 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, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, -1, 514, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 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, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 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, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, 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, 396, 397, 398, 399, + 400, 401, 402, 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, 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, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, + -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 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, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 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, + -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 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, -1, 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, 396, 397, 398, 399, 400, 401, + 402, 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, 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, + -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, 515, + 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, + 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 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, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 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, -1, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 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, -1, 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, 396, 397, 398, 399, 400, 401, 402, 403, -1, + 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, 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, -1, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, 514, 515, 516, 517, -1, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 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, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 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, -1, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 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, + -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 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, 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, 402, 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, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 81, 73, 515, 516, 517, -1, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 1, 44, 104, -1, 5, 81, 7, 127, + 110, -1, 81, -1, 126, -1, -1, 81, 97, 18, 5, 20, 18, -1, 81, 44, 11, -1, -1, -1, 44, 44, 31, + 151, 44, 126, 35, -1, -1, 18, 104, 132, -1, -1, 144, 44, 110, 82, 127, -1, 168, 127, 126, -1, + 53, 126, 97, 126, -1, 126, 59, -1, 28, 77, 63, 105, 140, -1, -1, 126, 44, -1, 179, 97, 73, 74, + -1, -1, 126, -1, 144, 155, 81, 97, 97, 126, 155, 161, 5, 168, 161, 165, 161, -1, 93, -1, 165, + 188, 97, -1, 174, 97, -1, -1, 145, 174, 105, 126, 107, -1, 210, -1, 126, 126, 154, 182, 126, + 174, 175, 118, -1, -1, 121, 97, -1, 107, 125, 126, 127, -1, 126, 130, 131, 132, 169, 44, -1, + 161, 137, 213, 125, 140, 141, -1, 126, -1, 210, 187, 188, 168, 174, 5, 126, 152, 153, 168, 73, + -1, 168, -1, 260, 127, 161, 242, 163, 256, 242, 267, -1, 168, -1, 206, 126, 172, 214, 174, 250, + -1, -1, 81, -1, 250, -1, 182, 260, 151, -1, 222, 97, 188, -1, -1, -1, -1, 218, 97, 260, -1, -1, + -1, -1, 118, 168, 267, 316, 204, 205, -1, 125, -1, 209, 246, 211, 253, 131, 322, 215, 126, 127, + 218, 219, 297, 204, -1, 126, -1, 293, 97, -1, -1, 309, -1, 44, -1, 81, 234, 145, 107, 312, 17, + 280, 332, 316, 312, -1, 219, -1, 316, 322, 284, -1, 250, -1, 320, -1, -1, 126, 256, 365, -1, + -1, 260, -1, 339, -1, -1, 44, -1, -1, -1, -1, 125, 174, 175, 374, 387, -1, 126, 297, 126, -1, + 260, -1, 374, -1, -1, 398, -1, 379, -1, 397, 398, 383, -1, 293, 335, -1, 127, 297, -1, -1, -1, + -1, -1, 303, -1, 155, 425, 307, 409, 374, 293, 161, 387, 126, 297, 315, 316, 387, 97, 316, 320, + 362, 322, 398, 416, -1, 174, 175, 398, -1, 310, 331, 332, 204, -1, 448, 316, -1, 387, -1, 340, + -1, 342, 385, 409, 464, 332, 126, 127, 398, 451, -1, -1, 353, 390, 168, 448, 332, -1, 339, -1, + 316, 454, 404, 389, 457, 145, 416, -1, 384, 385, 385, 372, 448, 374, 97, 448, -1, 448, 379, + 448, 381, 402, 383, 464, 385, 451, 387, 489, 389, 448, 402, 464, 379, -1, 496, -1, -1, 398, + 448, 250, -1, 402, -1, 379, 405, 448, -1, 483, 510, 385, 242, -1, 514, 332, -1, 416, -1, 510, + 491, -1, -1, 293, 423, 489, -1, 297, 495, 448, 260, 416, 496, 387, 448, 448, 510, 501, 448, + 510, 161, 510, 416, 491, 398, -1, 510, -1, -1, 448, 514, 464, 448, 174, -1, 454, -1, 374, 457, + 507, -1, -1, 379, 312, 242, 464, 448, 297, -1, -1, -1, -1, 471, 322, 448, 454, 385, 476, 332, + -1, 310, -1, 260, 502, -1, 484, 485, -1, -1, -1, 489, 510, 502, -1, 448, 514, 495, 218, 464, + 416, 510, -1, -1, 502, 514, -1, 423, -1, 507, 339, -1, 510, 491, 512, -1, 514, 0, 1, 2, 3, 4, + 5, 6, 7, 8, 379, 10, 11, 12, 13, 14, 510, -1, 512, -1, -1, 20, 21, 22, 448, 24, 25, 26, 27, 28, + 29, 448, 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, 416, -1, 48, 49, 50, 51, + 52, -1, 54, 55, 56, 57, 58, -1, 60, -1, 448, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 402, + 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 448, -1, 87, -1, 89, -1, 385, 510, 93, 94, -1, -1, -1, + 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, + 118, 119, 448, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, + 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 389, 153, 448, -1, 156, + 157, 158, 159, 160, -1, 162, -1, 164, 165, 166, 167, -1, 169, 170, 171, 172, 173, 502, 175, -1, + 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 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, -1, 214, -1, + 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, 249, -1, 251, 252, 253, -1, + -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, + -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, -1, 298, 299, 300, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, + 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, 334, + -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, + 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, + 412, 413, 414, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, + -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, + -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, + -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, -1, + 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, 13, 14, -1, -1, -1, -1, -1, 20, + 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, + 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, + -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, 81, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, + 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, + 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, 126, -1, 128, -1, 130, 131, 132, 133, + -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, + -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, + 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, + 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, + -1, -1, 256, 257, 258, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, + -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, + 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, + 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, + -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, + 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, 448, + -1, -1, 451, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, + 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, + 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, + -1, 510, 511, 512, -1, 514, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, + -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, + 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, + 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, + -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, 3, 106, -1, 108, 109, 110, + 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, 126, -1, 128, -1, 130, + 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, -1, 1, -1, 170, + 171, 172, 173, -1, 175, -1, 177, 178, 179, 18, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, + -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 81, 205, -1, 207, 208, 209, + 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, 18, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, 126, + -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, -1, -1, -1, 97, -1, 278, 279, -1, 281, 282, 283, 3, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 174, 298, 299, -1, -1, -1, 303, 304, 126, 306, -1, 308, 309, + 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, + 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, + 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, 259, 260, 363, 364, 365, -1, 367, + 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, + 407, 408, 105, 410, 411, 412, 413, 414, 97, 416, 417, 418, 419, 420, 126, 422, 423, 424, 425, + -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 126, + 445, 446, -1, 448, -1, -1, -1, 452, 127, 454, 455, 456, 457, 458, 459, 44, 461, 462, 463, 260, + 44, 466, 467, 468, 469, 470, 100, 472, 473, 307, 475, 476, 477, 316, 479, 480, 481, 482, -1, + 73, 485, 486, 487, 488, 489, 73, 144, 492, 493, 494, 495, 496, 497, 498, -1, 500, 3, 502, 503, + 504, 505, 8, 81, 508, 73, 44, 511, 512, 97, -1, 515, 516, 517, 97, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 126, -1, -1, 126, 82, -1, 259, 260, 126, 126, + 133, 47, -1, 126, -1, 44, 133, -1, 126, -1, 387, -1, 454, 186, 60, 188, 62, 145, 126, 97, 260, + 398, 140, 73, 242, 133, -1, 448, 74, -1, -1, -1, 78, 17, 260, -1, -1, 155, 161, 44, -1, -1, + 260, 161, 126, 487, 182, 165, 126, 127, -1, 9, 98, 161, -1, 188, 174, -1, 97, -1, 44, 188, -1, + 260, -1, -1, 81, 145, -1, 202, 512, -1, 454, 155, -1, 202, 126, 123, -1, 161, 188, 169, 132, + 448, -1, 218, 168, 126, 127, 510, 330, -1, 97, 139, 202, 213, 219, 270, 180, 317, -1, 183, 148, + -1, -1, 278, 145, -1, -1, 491, 218, 126, 73, 97, 454, -1, -1, 163, 206, 107, 126, 126, 127, -1, + 170, -1, 491, -1, 510, -1, 512, -1, 250, 510, 222, 512, -1, -1, 188, 402, 145, -1, 126, 127, + -1, 510, 161, -1, -1, 155, 165, 491, 110, -1, 200, 161, -1, 293, 246, 174, -1, 145, 335, -1, + 242, 126, 126, -1, 250, 409, 510, 132, -1, 161, 180, -1, -1, 183, 396, 397, 168, -1, 260, -1, + 320, 44, -1, -1, 105, -1, -1, 454, 238, 239, 312, 155, 284, -1, 316, 448, -1, 161, -1, 242, + 322, -1, 256, -1, 341, 332, -1, 451, 409, 130, 341, 464, 204, -1, -1, 265, 137, 260, 448, 183, + 487, -1, 144, 188, 316, 107, 312, 404, -1, 341, 407, 152, -1, 242, 97, -1, 322, -1, 491, 161, + 250, 44, 379, 370, 126, 512, 383, -1, 210, -1, 451, 260, 496, 385, 242, -1, -1, 510, 385, -1, + -1, -1, -1, 126, 127, 387, 510, 379, 318, -1, 514, 383, 260, -1, -1, -1, 398, 507, 332, 416, + 510, -1, 145, -1, -1, -1, 250, -1, 510, 416, -1, 256, -1, -1, 97, 496, 346, 316, 390, -1, 18, + 293, 312, 385, 416, 297, 356, 357, 448, 510, 360, 448, 322, 514, -1, -1, 448, 448, -1, -1, -1, + 448, 204, 126, -1, -1, 448, -1, -1, -1, -1, 44, -1, -1, -1, -1, 448, -1, 44, -1, -1, 391, 385, + 44, 394, 482, 59, -1, 312, 399, -1, 482, 402, 490, 531, 495, 493, -1, 322, 490, 410, 483, 493, + 413, -1, 287, 448, 332, 387, -1, 482, -1, 175, 510, -1, 81, 385, 514, 490, 398, -1, 493, -1, + 433, 97, -1, 307, -1, 510, -1, -1, 441, 314, -1, 448, -1, 97, 385, 510, -1, 454, 451, 514, 457, + 454, 448, -1, -1, 126, 459, -1, 293, -1, 126, -1, 297, -1, 467, -1, 469, 126, 507, -1, 509, -1, + 126, 476, -1, -1, 448, 0, 1, 2, 3, 4, 5, 6, 7, 8, 448, 10, 11, 12, 161, 145, -1, -1, 409, -1, + -1, 20, 21, 22, 503, 24, 25, 26, 27, -1, 29, 448, 31, 32, 33, 34, -1, 36, 37, 174, 39, 40, 41, + 42, 43, 44, 45, -1, 398, 48, 49, 50, 51, 52, 448, 54, 55, 56, 57, 58, 454, -1, 510, 457, 63, + 64, 65, 66, 67, 68, 509, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, + 87, -1, -1, -1, -1, 385, 93, 94, -1, -1, 489, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, + 108, 109, 110, 111, 112, 113, 114, 509, 116, 117, 118, 119, 471, -1, 122, 123, 124, 125, -1, + -1, 128, -1, 130, 131, 132, 133, 485, 135, 448, 137, 138, 139, -1, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, -1, 385, 153, 506, 448, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, + 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, + 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, + 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, 448, 216, 217, -1, -1, -1, 221, -1, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, 385, -1, + 244, 245, -1, -1, 248, 385, -1, 251, 252, 253, 385, 398, 256, 257, 258, 259, -1, -1, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, + -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 448, -1, -1, 303, + 304, 448, 306, -1, 308, 309, 310, 311, 448, 313, 314, 315, 464, 448, 318, 319, 320, -1, -1, + 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, + 491, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, + 510, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, + 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, + 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, -1, 454, 455, 456, 457, + 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, + -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, + 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, + 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, + 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, + 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, + 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, 95, -1, -1, 98, 99, 100, 101, + 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, + 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, + 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, 176, 177, 178, 179, -1, 181, + 182, -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, + 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, -1, -1, -1, 244, 245, -1, 247, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, 280, + 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, + -1, 301, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, + 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, + 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, + 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, + 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, 449, 450, -1, 452, -1, 454, 455, + 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, + 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, + 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, + 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, + 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, + 27, 28, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, + 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, + 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, + 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, + 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, + 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, + 159, 160, -1, 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, + 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, + -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, + 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, + 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, + 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, + 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, + 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, + 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, + 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, + 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, -1, 454, + 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, + 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, + 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, + 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, + 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, + 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, + -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, + 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, + 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, + 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, + 158, 159, 160, -1, 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, 177, + 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, + -1, -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, + 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, + 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, + 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, 316, -1, + 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, + 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, + 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, + 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, + 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, -1, 454, + 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, + 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, + 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, + 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, + 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, + 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, -1, -1, 87, 88, 89, -1, -1, 92, 93, 94, -1, -1, -1, + 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, + 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, + 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, + 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, 177, + 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 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, -1, 214, -1, 216, + 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, 249, -1, 251, 252, 253, -1, -1, + 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, + -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, -1, 298, 299, 300, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, + 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, 334, + -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, + 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, + -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, + -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, + -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, -1, + 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, + 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, + 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, + -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, + 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, + 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, 126, -1, 128, -1, 130, 131, 132, 133, + -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, + -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, + 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, + 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, + -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, + -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, + 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, + 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, + -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, + 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, + 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, 448, + -1, -1, -1, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, + 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, + 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, + -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, + 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, + 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, -1, -1, 87, -1, 89, -1, -1, + -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, + 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, + 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, + 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, + 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 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, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, 249, -1, + 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, + 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, + 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, + 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, + 446, -1, -1, -1, -1, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, + 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, + 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, 504, + 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 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, + -1, 128, 129, 130, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 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, -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, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, -1, 329, 330, 331, 332, 333, 334, -1, 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, 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, 402, 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, 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, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, -1, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, -1, 512, -1, 514, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, + -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, + 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, -1, -1, 87, -1, + 89, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, + 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, + 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, + 169, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 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, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, + 246, -1, 248, 249, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, -1, -1, 303, 304, -1, + 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, + 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, + 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, + 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, 453, 454, 455, 456, 457, 458, 459, + -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, + 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, + 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, + 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, -1, 31, + 32, -1, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, + 56, 57, -1, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, + 80, -1, 82, 83, 84, -1, -1, 87, -1, 89, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, + 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, + 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, + 143, 144, -1, 146, 147, 148, 149, -1, 144, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, + -1, 164, -1, 166, 167, 161, 169, 170, 171, 172, 173, -1, 175, -1, -1, 97, 179, 81, -1, 182, -1, + 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, -1, 205, 206, 126, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, + 223, 53, 126, -1, -1, -1, -1, -1, -1, -1, -1, 234, 235, 236, 237, 238, 239, 240, -1, 161, -1, + 244, -1, 246, -1, 248, 249, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, + 264, 265, 266, 267, -1, 269, 270, 271, 272, 174, -1, -1, 105, -1, 278, 279, -1, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 287, -1, 296, -1, 298, 299, 300, -1, -1, 303, + 179, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, 314, -1, 323, + 324, 325, -1, 327, 328, -1, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, 172, + 344, 345, 346, -1, 348, -1, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, + 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, -1, 399, 400, 401, + 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, 316, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, -1, 443, -1, 445, 446, 322, -1, -1, -1, 370, 452, 453, 454, 455, 456, 457, 458, 459, + -1, 461, 462, 463, 339, -1, 466, 467, 297, 469, -1, -1, 472, 473, -1, 475, 476, 477, 307, 479, + 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, 365, -1, 492, 493, 494, 495, -1, 497, 498, -1, + 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, 506, -1, 515, 516, 517, -1, -1, + -1, -1, 397, 398, 353, -1, -1, -1, -1, 448, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 372, + 10, 11, 12, 448, -1, -1, -1, -1, -1, 454, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, -1, 31, 32, + 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, + 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, + -1, 82, 83, 84, -1, -1, 87, 88, 89, -1, -1, 92, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, + 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, 484, 122, 123, + 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, + 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, + 184, 185, 186, -1, 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, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, + -1, -1, 244, 245, 246, -1, 248, 249, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, + -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, + -1, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, + 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, + 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, + 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, 453, 454, 455, 456, + 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, + 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, + 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, + 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, + 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, + 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, + -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, + 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, + 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, + 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, + 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, + 159, 160, -1, 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, + 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, + -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, + 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, + 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, + 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, + 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, + 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, + 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, + 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, + 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, -1, 454, + 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, + 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, + 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, + 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, + 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, + 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, + -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, 95, -1, -1, + 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, + 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, + 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, -1, 153, -1, -1, 156, 157, + 158, 159, 160, -1, 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, 176, 177, + 178, 179, -1, 181, 182, -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, + -1, -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, -1, -1, -1, 244, 245, -1, 247, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, + 258, 259, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, + 278, 279, 280, 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + -1, 298, 299, -1, 301, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, + -1, 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, 333, 334, -1, 336, + 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, + 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, + 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, 449, 450, -1, + 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, + 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, + 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, + 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, + 22, -1, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, + -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, -1, -1, 87, 88, 89, -1, -1, 92, 93, + 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, + 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, + -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, + -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, + -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 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, + -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, 249, -1, 251, + 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, -1, 298, 299, 300, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, + -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, + 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, + 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, + -1, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, + 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, + -1, -1, -1, -1, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, + 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, + 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, + -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, 13, 14, -1, -1, + -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, + 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, -1, -1, 87, -1, + 89, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, + 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, + 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, 165, 166, 167, -1, + 169, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 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, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, + 246, -1, 248, 249, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, 260, -1, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, -1, -1, 303, 304, -1, + 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, + 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, + 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, + 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, 451, 452, 453, 454, 455, 456, 457, 458, 459, + -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, + 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, + 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, 510, 511, 512, -1, 514, 515, 516, 517, -1, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, + 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, + 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, + 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, + 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, + 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, + 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, + -1, 164, -1, 166, -1, 168, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, + 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, 218, -1, -1, 221, -1, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, + -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, + 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, + 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, + 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, + -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, + 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, + 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, + 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, -1, 454, 455, 456, 457, 458, + 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, + 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, + -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, + 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, + 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, + 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, + 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, + 123, 124, 125, 126, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, + -1, 164, -1, 166, -1, 168, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, + 184, 185, 186, 187, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, 218, -1, -1, 221, -1, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, + -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, + 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, + 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, + 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, + -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, + 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, + 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, + 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, 448, -1, -1, -1, 452, -1, 454, 455, 456, 457, + 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, + -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, + 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, + 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, + 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, + 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, + 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, + 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, + 122, 123, 124, 125, 126, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, + 162, -1, 164, -1, 166, -1, 168, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, + 182, -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, 218, -1, -1, + 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, + -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, + 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, + -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, + 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, + 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, + 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, + -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, + 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, 448, -1, -1, -1, 452, -1, 454, 455, 456, + 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, + 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, + 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, + 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, + 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, + -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, + 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, + 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, + 119, -1, -1, 122, 123, 124, 125, 126, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, + 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, + 159, 160, -1, 162, -1, 164, -1, 166, -1, 168, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, + 179, -1, -1, 182, -1, 184, 185, 186, 187, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, 218, + -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, + 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, + 279, 280, 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, + 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, + 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, + 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, + 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, + 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, + 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, 448, -1, -1, -1, 452, + -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, + 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, + 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, + -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 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, -1, 128, 129, 130, 131, 132, 133, 134, + 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -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, 267, + 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 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, -1, 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, 396, 397, 398, 399, 400, 401, + 402, 403, -1, 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, 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, + -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, 515, + 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, + 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, + 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, + 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, + 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, + 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, + 119, -1, -1, 122, 123, 124, 125, 126, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, + 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, + 159, 160, -1, 162, -1, 164, -1, 166, -1, 168, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, + 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, 218, + -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, + 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, + 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, + 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, + 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, + 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, + 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, + 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, + 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, 448, -1, -1, -1, 452, -1, 454, + 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, + 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, + 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, + 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, + 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, + 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, + -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, + 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, + 118, 119, -1, -1, 122, 123, 124, 125, 126, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, + 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, + 158, 159, 160, -1, 162, -1, 164, -1, 166, -1, 168, -1, 170, 171, 172, 173, -1, 175, -1, 177, + 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, + 218, -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, + 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, + 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, + 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, + 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, + 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, + 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, + 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, 448, -1, -1, -1, 452, -1, 454, + 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, + 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, + 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, + 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, + 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, + 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, + -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, + 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, + 118, 119, -1, -1, 122, 123, 124, 125, 126, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, + 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, + 158, 159, 160, -1, 162, -1, 164, -1, 166, -1, 168, -1, 170, 171, 172, 173, -1, 175, -1, 177, + 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, + 218, -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, + 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, + 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, + 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, + 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, + 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, + 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, + 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, 448, -1, -1, -1, 452, -1, 454, + 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, + 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, + 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, + 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, 18, -1, 20, 21, 22, -1, 24, 25, + 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, + 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, + -1, 75, 76, 77, 78, 79, 80, 81, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, 97, + 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, + 118, 119, -1, -1, 122, 123, 124, 125, 126, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, + 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, + 158, 159, 160, -1, 162, -1, 164, -1, 166, -1, 168, -1, 170, 171, 172, 173, 174, 175, -1, 177, + 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, + 218, 219, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, + 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, + 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, + -1, 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, + 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, + 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, + 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, 448, -1, -1, -1, 452, + -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, 464, -1, 466, 467, 468, 469, 470, -1, 472, + 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, 490, -1, 492, + 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, 509, -1, 511, 512, + -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, + -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, + -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, + 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, + -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, + -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, + 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, + -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, + 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, + 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, + -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, + -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, + 314, 315, -1, 317, 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, + 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, + -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, + 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, + 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, + -1, -1, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, + 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, + -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, + -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, 17, -1, -1, 20, + 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, 105, 106, -1, 108, 109, 110, 111, 112, + 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, 126, -1, 128, -1, 130, 131, 132, + 133, -1, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, -1, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, -1, 177, 178, 179, 180, -1, 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, -1, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, -1, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, -1, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, -1, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, -1, + 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, 362, + 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 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, 402, 403, 404, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, -1, 445, 446, 447, 448, -1, 450, -1, 452, 453, 454, 455, 456, 457, + 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, 471, 472, 473, -1, 475, 476, 477, + -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, -1, 492, 493, 494, 495, 496, + 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, 507, 508, 509, 510, 511, 512, -1, -1, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, + 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, 17, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, + 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, -1, 98, 99, + 100, 101, 102, 103, 104, 105, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, + 119, -1, -1, 122, 123, 124, 125, 126, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, + 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, -1, 164, -1, 166, 167, 168, 169, 170, 171, 172, 173, -1, 175, -1, 177, + 178, 179, 180, -1, 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, -1, 214, -1, + 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, 249, 250, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, + -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, -1, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, -1, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, + 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, + 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, -1, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, + 446, 447, -1, -1, 450, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, + 466, 467, 468, 469, 470, 471, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, 484, + 485, 486, 487, 488, 489, 490, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, + 504, 505, -1, 507, 508, 509, -1, 511, 512, -1, -1, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, + -1, -1, -1, -1, 17, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, -1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, + -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, 105, 106, + -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, 126, + -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, -1, 164, -1, + 166, 167, 168, 169, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, 180, -1, 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, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, + -1, 244, 245, 246, -1, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, -1, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + -1, 302, 303, 304, -1, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, -1, -1, 318, 319, 320, + -1, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, + 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, -1, 452, 453, 454, + 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, 471, 472, 473, -1, + 475, 476, 477, -1, 479, 480, 481, 482, -1, 484, 485, 486, 487, 488, 489, 490, -1, 492, 493, + 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, 507, 508, 509, -1, 511, 512, -1, + -1, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, 17, -1, -1, 20, 21, 22, -1, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, + -1, 98, 99, 100, 101, 102, 103, 104, 105, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, + 117, 118, 119, -1, -1, 122, 123, 124, 125, 126, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, + 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, -1, 164, -1, 166, 167, 168, 169, 170, 171, 172, 173, -1, + 175, -1, 177, 178, 179, 180, -1, 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, + -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, -1, 306, 307, 308, 309, + 310, 311, 312, 313, 314, 315, -1, -1, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, + 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, + 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, + 443, -1, 445, 446, 447, -1, -1, 450, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, + 463, -1, -1, 466, 467, 468, 469, 470, 471, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, + -1, 484, 485, 486, 487, 488, 489, 490, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, + 502, 503, 504, 505, -1, 507, 508, 509, -1, 511, 512, -1, -1, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, + 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, 128, 129, 130, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, -1, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 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, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, -1, -1, -1, -1, + -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, -1, 329, 330, 331, 332, 333, + 334, -1, 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, 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, 402, 403, -1, 405, 406, -1, 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, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, -1, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, -1, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, + 128, 129, 130, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, -1, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 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, -1, 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, -1, 329, 330, 331, 332, 333, 334, -1, 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, 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, 402, 403, -1, 405, 406, -1, 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, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, -1, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, 128, 129, 130, 131, + 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, -1, 329, 330, 331, 332, 333, 334, -1, 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, 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, 402, 403, -1, 405, 406, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, -1, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, 512, + -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, -1, 532, + 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 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, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 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, + -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 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, 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, 396, 397, 398, 399, 400, 401, + 402, 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, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, 515, + 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, + 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, + -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + -1, 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, -1, 128, 129, 130, 131, 132, 133, 134, 135, -1, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, + 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 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, -1, -1, + 329, 330, 331, 332, 333, 334, -1, 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, 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, 402, 403, -1, + 405, 406, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + -1, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, 512, -1, -1, 515, 516, 517, -1, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 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, -1, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 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, -1, -1, + -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 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, -1, 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, 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, 402, 403, -1, 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, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, + 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 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, -1, 128, 129, 130, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 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, -1, -1, -1, -1, + -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, -1, 329, 330, 331, 332, 333, + 334, -1, 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, 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, 402, 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, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, -1, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 260, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, + -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, -1, 31, 32, -1, 34, 35, 36, + 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, 330, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, -1, -1, + 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, + 84, -1, -1, 87, -1, 89, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, + 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, + 409, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, -1, + 146, 147, 148, 149, -1, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, + 166, 167, 451, 169, 170, 171, 172, 173, -1, 175, -1, -1, -1, 179, -1, -1, 182, -1, 184, 185, + 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, + 205, 206, -1, 208, 209, 210, 211, 212, 496, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, -1, + -1, -1, 510, -1, -1, -1, 514, -1, -1, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, -1, + 246, -1, 248, 249, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, + 266, 267, -1, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, -1, -1, 296, -1, 298, 299, 300, -1, -1, 303, 179, -1, + 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, 325, + -1, 327, 328, -1, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, + 346, -1, 348, -1, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, + -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, -1, 399, 400, 401, 402, 403, -1, + 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, -1, 418, 419, 420, 421, 422, 423, + 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, -1, + 443, -1, 445, 446, 322, -1, -1, -1, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, + 463, 339, -1, 466, 467, -1, 469, -1, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, + -1, -1, 485, 486, 487, 488, 489, 365, -1, 492, 493, 494, 495, -1, 497, 498, -1, 500, 501, 502, + 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, -1, -1, -1, 397, 398, + -1, -1, -1, -1, -1, -1, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, + 128, 129, 130, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, -1, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 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, -1, 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, -1, 329, 330, 331, 332, 333, 334, -1, 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, 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, 402, 403, -1, 405, 406, -1, 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, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, -1, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, -1, 512, 513, 514, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, 128, 129, 130, + 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, -1, 329, 330, 331, 332, 333, 334, -1, 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, 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, 402, 403, -1, 405, 406, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, -1, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, + 512, 513, 514, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + -1, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, -1, 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, -1, 128, 129, 130, 131, 132, 133, + 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, -1, 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, -1, 329, 330, 331, 332, 333, 334, -1, 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, 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, 402, 403, -1, 405, 406, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, -1, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, 512, -1, -1, 515, + 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, -1, 532, 533, 0, 1, + 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, + -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + -1, 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, -1, 128, 129, 130, 131, 132, 133, 134, 135, -1, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, + 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 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, -1, -1, + 329, 330, 331, 332, 333, 334, -1, 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, 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, 402, 403, -1, + 405, 406, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + -1, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, 512, -1, -1, 515, 516, 517, -1, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, 55, 56, + 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, 128, 129, 130, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, -1, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 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, -1, 271, 272, -1, -1, -1, + -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 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, -1, -1, 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, 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, 402, 403, 404, 405, 406, -1, 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, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, -1, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, -1, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 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, + -1, 128, 129, 130, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 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, -1, -1, -1, -1, -1, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, -1, 329, 330, 331, 332, 333, 334, -1, 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, 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, 402, 403, -1, 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, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, -1, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, -1, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, -1, 329, 330, 331, 332, 333, 334, -1, 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, 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, 402, 403, 1, 405, 406, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 17, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 97, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, + 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 18, + 532, 533, -1, 81, 126, -1, 18, 43, 81, -1, -1, -1, -1, 32, -1, -1, 28, -1, -1, -1, 32, -1, -1, + -1, 43, -1, 97, -1, -1, -1, 73, 43, -1, 155, -1, -1, 126, 126, -1, 161, 97, -1, 18, -1, 80, 44, + -1, 44, 126, -1, -1, -1, -1, 126, -1, 97, 127, 179, -1, -1, -1, 80, 127, -1, -1, -1, 155, -1, + 80, 126, -1, -1, 161, -1, 18, -1, -1, 113, -1, -1, 77, -1, -1, 126, 126, -1, -1, 165, 32, 132, + -1, 180, -1, -1, 183, -1, 174, -1, 97, 43, 97, 174, -1, -1, -1, -1, -1, 126, -1, -1, -1, 168, + -1, 149, 126, 127, -1, -1, -1, 161, -1, -1, -1, -1, -1, -1, -1, 126, 250, 126, 149, -1, -1, -1, + -1, -1, 80, 149, -1, -1, -1, -1, 18, -1, -1, 188, 145, -1, -1, -1, 97, 127, -1, 18, -1, -1, 32, + 193, -1, -1, -1, 250, -1, -1, -1, -1, -1, 43, -1, -1, -1, 242, -1, -1, 193, -1, -1, 242, 307, + 126, 127, 193, 126, 127, -1, -1, 18, -1, -1, 260, 312, -1, -1, 18, -1, 260, -1, -1, 18, -1, -1, + -1, -1, 5, 80, 149, -1, 1, 244, 11, -1, -1, 126, 256, -1, -1, -1, 18, 260, 238, -1, 218, 1, + 312, 26, 244, 238, -1, -1, -1, -1, 32, 244, 322, -1, -1, -1, -1, 316, 18, 105, 155, 43, 365, + -1, 81, -1, 161, -1, 193, 126, 127, 317, -1, -1, 57, 81, 293, 387, -1, -1, 297, -1, -1, -1, -1, + 242, -1, -1, 398, 335, 218, -1, 149, 171, 397, 398, -1, 297, 80, -1, -1, -1, -1, 260, 297, -1, + -1, -1, 332, 126, 18, -1, -1, 238, 242, 332, 387, 334, -1, 244, 126, 126, 97, -1, -1, 303, 127, + 398, 387, 81, 113, -1, 260, -1, 334, 118, 193, 97, -1, 398, 297, 334, 125, -1, 126, 127, 398, + 370, 131, 387, 396, 397, -1, 310, -1, 250, 161, 174, 404, 316, 398, -1, 379, -1, 221, -1, 383, + 149, 174, -1, -1, 388, 297, 81, 126, 6, -1, 448, -1, 162, 397, 238, 339, 383, -1, 385, 386, + 244, 388, 448, 383, 408, 385, 386, 448, 388, -1, 397, -1, 416, 510, 81, 512, 155, 397, 385, + 384, 385, 408, 334, 448, 193, 429, 165, 260, 408, 416, 312, 126, 202, 398, 438, 174, 416, 448, + 448, 443, 322, 5, 429, 454, 18, -1, 457, 11, 506, 429, 507, 438, 509, 297, 242, 73, 443, 97, + 438, 126, 260, 448, 26, 443, 510, -1, 507, 41, 448, 238, 18, 383, 260, 385, 386, 244, 388, 510, + 18, 174, 467, 448, 507, 448, 32, 397, 126, 467, 155, -1, 334, -1, -1, 57, 161, 43, 408, 330, + 165, 510, 126, 505, -1, 514, 416, -1, -1, 174, 126, 297, 454, 250, 316, -1, -1, 133, 316, 429, + 505, 97, 94, -1, 509, 293, -1, 505, 438, 297, 297, 509, 395, 443, 80, 448, -1, 450, 448, 43, + 403, 383, 310, 385, 386, 82, 388, 307, 411, 491, 126, 113, 320, -1, 126, 397, 118, 467, -1, 97, + -1, -1, 307, 125, 332, 127, 408, 334, 510, 131, 512, -1, 188, -1, 416, 312, 80, 322, 409, 316, + 126, 127, -1, 145, -1, 250, 202, 429, 126, 452, 97, -1, 168, -1, 507, 505, 438, 510, -1, 509, + 162, 443, 218, 149, -1, 151, 448, -1, -1, 113, -1, 379, 475, -1, 382, 383, 383, -1, 385, 386, + 451, 388, 168, 533, -1, 467, 198, 387, -1, 509, 397, -1, 169, -1, -1, -1, -1, -1, 398, -1, 202, + 408, 387, -1, -1, 149, 448, 193, 416, 416, 387, 316, 454, 398, -1, -1, 454, 448, 448, -1, -1, + 398, 429, 505, -1, 496, -1, 509, 454, 206, -1, 438, 179, -1, 464, -1, 443, -1, -1, 510, 242, + 448, -1, 514, -1, 222, -1, 259, -1, 193, -1, -1, 238, 491, 266, -1, -1, -1, 244, 271, 467, 491, + -1, -1, -1, 491, -1, -1, 510, 246, 512, 448, 510, -1, 512, -1, 507, -1, -1, 44, 510, 293, 387, + -1, 510, 341, 494, -1, -1, -1, -1, 293, -1, 398, -1, 297, -1, -1, 505, -1, 244, -1, 509, -1, + -1, -1, -1, 284, 310, 387, 510, 297, 512, -1, 44, 448, -1, -1, 320, 331, 398, 454, -1, 387, -1, + 510, -1, 512, -1, -1, 332, -1, 97, 510, 398, 391, -1, -1, -1, -1, -1, -1, -1, 448, -1, -1, -1, + -1, 334, 293, -1, -1, -1, 297, -1, -1, -1, -1, -1, -1, -1, 126, -1, -1, -1, -1, -1, 97, -1, -1, + 448, 387, 384, -1, 507, 322, -1, 379, -1, -1, 382, 383, 398, -1, 448, -1, -1, -1, 332, 445, + 334, -1, 448, -1, -1, -1, 126, 383, 410, 385, 386, -1, 388, -1, -1, 510, 384, -1, -1, -1, 175, + 397, -1, 390, 416, -1, -1, -1, 365, 431, -1, 398, 408, -1, -1, -1, 482, -1, -1, 507, 416, -1, + 448, -1, 490, 379, 448, 493, 416, 383, -1, -1, 506, 429, 388, -1, -1, -1, -1, -1, 397, 398, + 438, 397, 510, -1, -1, 443, 514, -1, -1, -1, 448, -1, 408, -1, -1, -1, -1, -1, 448, -1, 416, + -1, -1, 487, -1, -1, 464, -1, -1, 467, -1, -1, -1, 429, -1, -1, -1, -1, 506, 507, 494, -1, 438, + -1, -1, -1, -1, 443, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, 17, -1, 505, + 20, 21, 22, 509, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, 505, -1, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, 105, 106, -1, 108, 109, 110, + 111, 112, 113, 114, -1, 116, 117, 118, 119, 385, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, + 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, -1, 152, 153, 154, 385, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, 398, 169, + 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, 448, 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, -1, 214, -1, 216, 217, 448, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, + 248, 249, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, -1, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, -1, + 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, -1, 344, + 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, + 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, -1, 452, 453, 454, 455, 456, 457, 458, 459, + -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, 471, 472, 473, -1, 475, 476, 477, -1, 479, + 480, 481, 482, -1, 484, 485, 486, 487, 488, 489, 490, -1, 492, 493, 494, 495, 496, 497, 498, + -1, 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, + 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, 17, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, + 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, -1, 98, 99, 100, 101, + 102, 103, 104, 105, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, + 122, 123, 124, 125, 126, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, -1, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, -1, 177, 178, 179, + 180, -1, 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, + -1, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, + -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, -1, 302, 303, 304, -1, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, -1, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, + -1, 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, + 373, 374, 375, 376, 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, 402, 403, 404, 405, 406, 407, 408, -1, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, 448, + -1, 450, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, + 469, 470, 471, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, + 507, 508, 509, 510, 511, 512, -1, -1, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, + -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, + 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, + 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, + -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, + 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, 127, 128, -1, + 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, -1, 168, + -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, + 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, + 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, + 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, + 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, + -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, + 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, + 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, + 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, + 446, -1, -1, -1, -1, -1, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, 464, -1, + 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, + 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, + -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, + -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, + 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, + 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, + -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, + 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, 127, 128, -1, + 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, -1, 168, + -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, + 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 81, 205, -1, 207, + 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, + 248, 126, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 174, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, + 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, + -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, + 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, + 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, + 407, 408, 105, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, 97, 422, 423, 424, 425, + -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, + 445, 446, -1, -1, -1, 126, 127, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, 464, + -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, 97, 479, 480, 481, 482, 19, 19, + 485, 486, 487, 488, 489, 1, 44, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, + 505, 18, 126, 508, 97, 18, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 18, 43, 44, -1, 126, -1, 81, -1, -1, -1, 97, -1, + -1, 81, 32, -1, -1, 73, 81, -1, -1, 81, -1, -1, 43, 43, -1, 97, 97, 97, 260, 97, 242, -1, -1, + 81, 81, 448, 80, 126, 120, -1, 122, 454, -1, 115, 115, -1, -1, -1, 260, 126, 97, -1, -1, 97, + -1, -1, 126, -1, 126, 80, 80, 126, -1, -1, 126, -1, -1, -1, 126, 113, 152, -1, -1, -1, -1, 133, + -1, -1, 126, 126, -1, -1, 126, 127, 161, 105, 154, -1, 165, -1, 155, 161, 113, 155, -1, 165, + 161, 174, 330, 161, 165, -1, -1, 165, 174, 149, 126, 127, 155, 174, -1, -1, 174, -1, 161, -1, + -1, -1, 165, 187, -1, -1, -1, -1, 168, -1, 174, 174, 149, 149, 188, 151, 179, -1, -1, -1, -1, + -1, -1, -1, -1, 223, -1, -1, 202, -1, -1, -1, 168, 193, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 97, -1, -1, -1, -1, -1, -1, -1, -1, -1, 107, 193, 193, -1, 219, -1, 409, -1, -1, -1, -1, + -1, -1, -1, 250, -1, -1, 250, 260, 126, -1, -1, -1, -1, -1, -1, -1, 242, -1, 244, -1, -1, 250, + -1, -1, -1, 289, 290, 291, 292, -1, 280, 260, 296, 297, -1, -1, 238, 451, -1, -1, -1, 244, 244, + 307, -1, -1, -1, -1, 97, -1, 387, 305, 305, 312, 448, -1, 450, 316, 107, -1, 312, 398, -1, -1, + 316, 312, -1, 293, 312, 316, -1, 297, 316, -1, -1, -1, 305, 126, 307, -1, -1, 387, 496, 312, + -1, -1, 204, 316, -1, -1, 293, -1, 398, -1, 297, 297, 510, -1, -1, -1, 514, 341, -1, -1, -1, + -1, 332, -1, 334, -1, -1, 448, 362, 507, 385, -1, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 398, 387, 332, -1, 334, 334, -1, 384, 387, 365, -1, -1, 398, 387, 370, 448, 387, 398, 398, 398, + -1, -1, -1, -1, 398, -1, 379, 398, 204, -1, 383, 387, 385, -1, -1, 388, -1, -1, -1, 416, -1, + 397, 398, 507, 397, 398, -1, -1, 293, 379, 448, -1, 297, 383, 383, 408, 385, 386, 388, 388, -1, + -1, 448, 416, -1, -1, -1, 397, 397, 448, -1, 448, -1, 506, 448, 404, 429, 448, 408, 408, 471, + 448, -1, -1, -1, 438, 416, 416, -1, -1, 443, 448, 448, 491, 485, 448, -1, 454, -1, 429, 429, + -1, -1, -1, -1, -1, -1, -1, 438, 438, -1, 464, -1, 443, 443, 482, -1, 293, -1, 448, -1, 297, + -1, 490, 510, -1, 493, -1, -1, 510, 510, 510, -1, 510, -1, 464, 510, 514, 467, 510, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 505, 398, 510, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, + 11, 12, -1, -1, -1, -1, -1, 505, 505, 20, 21, 22, 509, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, + 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, 448, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, + 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, + -1, 82, 83, 84, -1, -1, 87, -1, 89, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, + 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, 448, 116, 117, 118, 119, -1, -1, 122, 123, + 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, + 164, -1, 166, 167, 168, 169, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, + 184, 185, 186, -1, 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, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, + -1, -1, 244, 245, 246, -1, 248, 249, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, + -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, + -1, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, 334, 335, 336, 337, 338, 339, + 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, + 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, 453, 454, 455, + 456, 457, 458, 459, -1, 461, 462, 463, 464, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, + 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, + 496, 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, + 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, + 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, + 27, 28, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, + 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, + 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, + 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, + 119, -1, -1, 122, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, + 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, -1, 153, -1, -1, 156, 157, 158, + 159, 160, -1, 162, -1, 164, -1, 166, -1, 168, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, + 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, + -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, + 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, + 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, + 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, + 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, + 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, + 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, + 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, + 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, -1, 454, + 455, 456, 457, 458, 459, -1, 461, 462, 463, 464, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, + 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, + 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, + 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, + 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, + 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, + -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, + 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, + 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, + 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, + 158, 159, 160, -1, 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, 177, + 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, + -1, -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, + 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, + 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, + 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, + 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, + 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, + 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, + 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, + 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, -1, 454, + 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, + 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, + 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, + 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, 18, -1, 20, 21, 22, -1, 24, 25, + 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, + 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, + -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, 97, + 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, + 118, 119, -1, -1, 122, 123, 124, 125, 126, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, 155, 156, + 157, 158, 159, 160, 161, 162, -1, 164, 165, 166, -1, -1, 169, 170, 171, 172, 173, 174, 175, -1, + 177, 178, 179, 180, -1, 182, 183, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + -1, 216, 217, 218, -1, -1, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, -1, 250, 251, 252, 253, + -1, -1, 256, 257, 258, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, + -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, 312, 313, + 314, 315, 316, -1, 318, 319, 320, -1, 322, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, + 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, + -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, + 373, 374, 375, 376, 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, 402, 403, -1, 405, 406, 407, 408, -1, 410, + 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, 448, + -1, -1, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, + 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, 483, -1, 485, 486, 487, 488, + 489, -1, 491, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, 507, 508, + 509, 510, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, + 18, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, + 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, + 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, -1, -1, 87, -1, -1, + -1, -1, -1, 93, 94, -1, -1, 97, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, + 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, 126, -1, 128, -1, 130, + 131, 132, 133, -1, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, -1, -1, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, -1, 164, 165, 166, -1, -1, 169, + 170, 171, 172, 173, 174, 175, -1, 177, 178, 179, 180, -1, 182, 183, 184, 185, 186, -1, 188, + 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, -1, 216, 217, 218, -1, -1, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, + 246, -1, 248, -1, 250, 251, 252, 253, -1, -1, 256, 257, 258, 259, 260, -1, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, -1, -1, -1, 303, 304, -1, + 306, -1, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, -1, 322, 323, 324, -1, + 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, + 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, + 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 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, 402, + 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, + 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 442, 443, -1, 445, 446, -1, 448, -1, 450, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, + 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, + 482, 483, -1, 485, 486, 487, 488, 489, -1, 491, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, + 502, 503, 504, 505, -1, 507, 508, 509, 510, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, + 11, 12, -1, -1, -1, -1, -1, 18, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, + -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, -1, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, 121, 122, 123, + 124, 125, 126, 127, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, 155, 156, 157, 158, 159, 160, 161, + 162, -1, 164, 165, 166, -1, 168, 169, 170, 171, 172, 173, 174, 175, -1, 177, 178, 179, 180, -1, + 182, 183, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, -1, 216, 217, 218, -1, + -1, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, -1, 242, -1, 244, 245, 246, -1, 248, -1, 250, 251, 252, 253, -1, -1, 256, 257, 258, + 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, + 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, -1, -1, -1, 303, 304, -1, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, + 318, 319, 320, -1, 322, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, + 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 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, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, 448, -1, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, 464, -1, 466, 467, 468, 469, 470, + -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, -1, + 491, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, -1, 514, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, 13, 14, -1, -1, -1, -1, -1, + 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, + 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, + 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, + -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, + 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, 126, -1, 128, -1, 130, 131, 132, + 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, + 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, -1, 170, 171, 172, + 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, + 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, + 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, + -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, + 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, + 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, + 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, + -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, + 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, + 448, -1, -1, -1, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, + 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, + 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, -1, + 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, 13, 14, -1, -1, -1, + -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, + 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, + 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, + -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, + 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, 126, -1, 128, -1, 130, + 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, -1, 170, + 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, + -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, + 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, -1, + -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, + 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, + 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, + 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, + 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, + 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, + 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, + 446, -1, 448, -1, -1, -1, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, + 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, + 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, 504, + 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, + -1, -1, 17, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, -1, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, 105, 106, -1, 108, + 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, + -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, -1, 152, 153, 154, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, + 169, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 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, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, + 246, -1, 248, 249, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, -1, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, + 304, -1, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, + 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, -1, -1, 452, 453, 454, 455, 456, 457, + 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, 471, 472, 473, -1, 475, 476, 477, + -1, 479, 480, 481, 482, -1, 484, 485, 486, 487, 488, 489, 490, -1, 492, 493, 494, 495, 496, + 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, + 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, 18, -1, 20, 21, 22, -1, 24, 25, 26, 27, + -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, + 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, + 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, + 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, + 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, + 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, + 159, 160, -1, 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, + 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, + -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, + 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, + 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, + 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, + 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, + 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, + 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, + 396, 397, 5, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, + 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, -1, 454, + 455, 456, 457, 458, 459, -1, 461, 462, 463, 81, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, + 475, 476, 477, -1, 479, 480, 481, 482, 6, -1, 485, 486, 487, 488, 489, 81, 44, 492, 493, 494, + 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, 97, -1, 508, 126, -1, 511, 512, 5, 6, 515, + 516, 517, 125, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, + 126, -1, 81, -1, 81, -1, 18, -1, -1, 97, 11, -1, 13, 14, 97, 73, -1, 44, 97, -1, -1, -1, 174, + -1, 107, 97, -1, -1, 18, 108, -1, 32, 105, 105, -1, 161, 81, -1, 126, 165, -1, 42, -1, 126, 97, + 18, 73, 126, 174, 126, -1, 41, -1, 54, 81, 56, 57, 130, -1, -1, -1, -1, -1, 64, 137, 66, -1, + -1, 126, -1, 97, 126, 127, 126, 127, 133, 155, -1, 79, 152, 81, 126, 161, -1, 161, -1, 165, -1, + 165, 168, -1, 81, -1, -1, -1, 174, -1, 174, 125, 126, 101, 126, 127, 104, 94, -1, 133, -1, 81, + 110, -1, -1, -1, 192, -1, 127, 188, -1, 119, -1, 121, 204, -1, -1, 125, 126, -1, 182, -1, 174, + 188, 219, -1, 134, 161, -1, 126, 127, -1, -1, -1, -1, -1, 144, 202, 146, -1, 174, 175, -1, 205, + -1, -1, 126, 155, -1, -1, 182, -1, -1, 218, 188, -1, -1, -1, -1, -1, -1, -1, -1, -1, 250, 260, + 174, -1, 202, -1, -1, 320, -1, 205, -1, -1, -1, 174, -1, 312, -1, -1, 242, 316, 218, -1, -1, + 195, -1, -1, -1, -1, -1, -1, 174, -1, -1, -1, -1, -1, 260, 198, 210, 293, -1, -1, -1, 297, 260, + -1, -1, -1, -1, -1, -1, -1, -1, 303, 297, -1, -1, -1, 256, 242, -1, -1, 312, 307, 307, -1, 316, + 293, 316, -1, 383, 384, -1, 332, -1, -1, -1, 260, -1, 251, 252, 242, -1, -1, -1, -1, 258, -1, + 260, -1, 387, -1, -1, -1, 320, 267, -1, 293, 259, 342, 316, 398, -1, 416, -1, 266, -1, 279, -1, + -1, 271, -1, 341, -1, 297, -1, -1, -1, -1, -1, 379, -1, -1, 339, 320, 448, 385, 299, -1, -1, + -1, 454, 293, 316, -1, -1, 297, 387, -1, 387, -1, -1, -1, 341, 398, -1, -1, -1, 398, -1, 398, + 448, -1, -1, 398, 398, -1, 416, -1, -1, -1, -1, 391, 476, -1, -1, -1, -1, -1, -1, 331, -1, 316, + 423, -1, -1, -1, -1, 350, -1, -1, 379, -1, -1, 507, 383, -1, 385, -1, 448, -1, 389, -1, 391, + 448, -1, -1, 369, 448, -1, 448, -1, 374, -1, 376, -1, 378, -1, -1, -1, -1, 383, -1, 510, 464, + 413, 445, 389, 416, 448, 392, -1, 448, 384, 448, -1, 450, 471, 400, -1, -1, -1, 448, -1, -1, + -1, 408, 409, 454, -1, -1, 485, -1, -1, 416, -1, -1, 445, 420, 410, 448, -1, 448, 482, -1, -1, + -1, -1, -1, 431, 510, 490, 510, -1, 493, -1, 464, -1, -1, 495, 431, 454, -1, -1, -1, 491, 448, + -1, -1, 451, -1, 510, -1, 507, 482, 514, 510, 448, -1, -1, -1, -1, 490, 491, 510, 493, 512, -1, + -1, 495, 472, -1, -1, -1, 448, -1, -1, -1, 491, -1, 454, -1, 510, -1, 486, -1, 514, 489, -1, + -1, 492, -1, -1, -1, 496, -1, 487, 510, -1, 512, -1, -1, -1, -1, -1, -1, -1, -1, 510, -1, -1, + -1, 514, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 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, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -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, 267, + 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 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, -1, 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, 396, 397, 398, 399, 400, 401, + 402, 403, -1, 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, 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, + -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, 514, 515, + 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, + 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, + 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, + 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, + 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, + 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, + 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, + 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, + 159, 160, -1, 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, + 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, + -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, + 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, + 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 18, + 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, 317, + 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, + 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, + 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, + 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, 74, + 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, 40, -1, -1, 120, 452, 122, 454, + 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, 63, 472, 473, -1, + 475, 476, 477, -1, 479, 480, 481, 482, 152, 18, 485, 486, 487, 488, 489, 15, -1, 492, 493, 494, + 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, 43, 44, 511, 512, 81, 173, + 515, 516, 517, 95, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + -1, 127, 105, -1, -1, 260, -1, 200, -1, -1, -1, -1, 80, -1, -1, -1, -1, 81, -1, -1, 223, -1, + -1, -1, 126, -1, -1, 130, -1, 97, 97, -1, 35, 97, 137, -1, 95, -1, 105, -1, 151, -1, -1, -1, + -1, 113, -1, -1, -1, 152, -1, -1, -1, 155, -1, 310, -1, -1, 126, 161, 253, 316, 126, 165, -1, + 176, -1, -1, -1, -1, 181, -1, 174, -1, -1, -1, -1, -1, -1, -1, 83, 149, -1, -1, 339, -1, 289, + 290, 291, 292, -1, 155, 151, 296, 97, -1, -1, 161, -1, -1, 168, 165, -1, -1, 307, -1, -1, -1, + 111, -1, 174, -1, -1, -1, -1, 179, 242, 176, -1, -1, -1, 188, 181, 126, -1, 193, -1, -1, 321, + 132, -1, -1, -1, -1, 260, 138, 247, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 250, -1, 261, + 219, -1, 81, -1, -1, -1, -1, -1, 162, 219, -1, -1, -1, 167, -1, -1, -1, -1, 280, -1, -1, -1, + -1, -1, -1, 244, -1, 371, -1, -1, 184, -1, -1, -1, -1, 250, -1, 247, -1, 301, -1, 260, -1, -1, + -1, -1, -1, 126, 454, -1, 303, 261, -1, 307, -1, -1, 318, 310, 335, 312, -1, -1, -1, 316, -1, + -1, 410, -1, -1, -1, 280, 333, -1, -1, 293, -1, -1, -1, 297, 297, -1, -1, -1, -1, -1, 491, -1, + -1, -1, 307, -1, 301, -1, -1, -1, 174, -1, 312, 375, 361, 362, 316, -1, -1, 510, -1, 512, 451, + 318, -1, -1, -1, 456, 332, 458, 334, -1, 471, -1, -1, -1, 398, -1, 333, 342, 469, -1, 404, -1, + -1, -1, 485, -1, 387, 387, -1, -1, -1, -1, -1, 484, -1, -1, 487, 398, 398, -1, -1, -1, -1, 365, + 361, 362, 307, -1, -1, -1, -1, -1, 503, 379, -1, 316, -1, 383, -1, 385, 321, -1, 388, 423, -1, + 387, -1, -1, -1, -1, -1, 397, 398, 398, -1, 397, 398, -1, -1, -1, 449, 450, 408, -1, -1, -1, + -1, -1, 448, -1, 416, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 363, 429, -1, -1, -1, -1, -1, + -1, 471, -1, 438, 497, -1, -1, -1, 443, -1, -1, 306, -1, 448, -1, 485, -1, 448, -1, -1, -1, -1, + -1, 449, 450, -1, -1, -1, 398, 464, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 510, 10, 11, 12, -1, + 416, -1, 474, -1, 18, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, + 37, 505, 39, 40, 41, 42, 43, 44, 45, 448, 510, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, + 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, -1, -1, 87, -1, 89, -1, -1, -1, 93, 94, -1, -1, 97, 98, 99, 100, 101, 102, 103, 104, 507, + 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, 448, 122, 123, 124, + 125, 126, 454, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, -1, 156, 157, 158, 159, 160, 161, 162, -1, + 164, -1, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, -1, 177, 178, 179, 507, -1, 182, + 510, 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, -1, 214, -1, 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, -1, -1, -1, 244, 245, 246, -1, 248, 249, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, + -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, 316, -1, 318, + 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, + 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, + 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, + -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, 448, -1, -1, -1, 452, 453, + 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, 464, -1, 466, 467, 468, 469, 470, 471, 472, + 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, -1, 508, 509, 510, 511, + 512, -1, 514, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, + 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, + -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, + 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, + 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, + 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, + -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, + -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, + 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, + 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, + -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, + -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, + 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, + 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, + -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, + 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, + 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, + -1, -1, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, + 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, + -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, + -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, + 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, + 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, + -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, + 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, + 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, + -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, + -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, + 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, + 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, + -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, + -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, + 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, + 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, + -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, + 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, + 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, + -1, -1, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, + 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, + -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, + -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, + 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, + 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, + -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, + 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, + 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, + -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, + -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, + 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, + 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, + -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, + -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, + 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, + 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, + -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, + 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, + 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, 82, -1, + -1, -1, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, + 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, + -1, 1, 492, 493, 494, 495, 496, 497, 498, 9, 500, -1, 502, 503, 504, 505, 16, -1, 508, -1, -1, + 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, -1, 169, 6, -1, -1, -1, -1, 44, -1, 8, 81, -1, 5, 81, -1, -1, -1, -1, 11, + -1, 5, -1, -1, -1, -1, 18, 11, -1, -1, -1, -1, -1, -1, 18, -1, -1, 5, 81, 206, -1, -1, -1, 11, + -1, 5, -1, -1, -1, 41, -1, 11, -1, -1, 97, 222, 126, 41, 26, 126, -1, 97, 44, 81, -1, 57, -1, + -1, 81, -1, 73, -1, -1, 57, -1, -1, 74, -1, -1, 246, -1, -1, -1, 126, -1, -1, -1, -1, 155, 57, + 126, -1, -1, -1, 161, -1, -1, 57, 165, 81, -1, -1, 94, 9, 174, -1, -1, 174, 126, -1, 94, -1, + 155, 126, -1, 97, -1, 284, 161, -1, -1, -1, 165, 126, -1, 161, 118, -1, -1, -1, 133, 174, 168, + 125, 118, 127, 179, -1, 174, 131, -1, 125, 155, -1, 126, -1, -1, 131, 116, 316, 118, -1, 165, + 145, -1, -1, 174, 125, 118, 65, -1, 174, 68, 131, -1, 125, -1, -1, -1, 75, 162, 131, 170, -1, + -1, 173, -1, -1, 162, -1, -1, -1, 218, 250, -1, 188, -1, -1, -1, -1, -1, -1, 174, 175, 162, -1, + -1, -1, -1, 202, 106, -1, 162, -1, -1, -1, 198, 250, -1, -1, 202, -1, -1, -1, 198, 218, -1, + 260, 202, -1, -1, -1, -1, 390, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 202, -1, 303, 250, -1, + -1, 238, -1, 202, 310, -1, 312, -1, -1, -1, 316, 242, -1, -1, -1, -1, 253, -1, -1, -1, -1, -1, + -1, 305, -1, 307, -1, 172, 259, -1, 312, -1, -1, -1, 316, 266, 259, -1, -1, -1, 271, -1, -1, + 266, 189, -1, -1, -1, 271, -1, -1, -1, -1, -1, -1, 18, 201, -1, -1, 316, 312, -1, 293, -1, 316, + -1, 297, -1, -1, -1, 293, -1, -1, -1, 297, -1, -1, -1, -1, 310, -1, 387, 339, 365, -1, 491, + 293, 310, 370, 320, 297, -1, 398, -1, 293, -1, -1, 320, 297, 341, 331, 332, -1, 310, -1, 387, + 381, -1, 331, 332, 385, 310, -1, 320, 389, 397, 398, 423, 81, 356, 357, 320, -1, 398, -1, 332, + -1, -1, -1, -1, -1, -1, -1, 332, 371, 387, -1, -1, -1, 448, -1, -1, 448, -1, 426, 454, 398, -1, + 379, 391, -1, 382, 383, 384, -1, -1, 379, -1, -1, 382, 383, 384, 399, 126, 385, -1, 448, -1, + -1, -1, -1, -1, 379, 448, -1, 382, 383, -1, -1, 410, 379, -1, -1, 382, 383, 416, -1, 410, -1, + 464, -1, 448, -1, 416, -1, -1, 448, 454, 507, -1, 431, 510, -1, 445, 510, -1, 448, -1, 431, + 416, -1, 174, -1, -1, -1, -1, -1, 416, -1, 456, -1, 458, -1, -1, -1, -1, -1, 448, 510, -1, 467, + -1, 469, -1, 491, 510, 473, -1, -1, 514, 482, -1, -1, -1, -1, -1, -1, -1, 490, -1, 487, 493, + -1, 510, -1, 512, 487, -1, 510, -1, -1, -1, -1, 494, 487, -1, 503, -1, -1, -1, -1, 494, 0, 1, + 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, 494, 433, 510, -1, 436, 20, 21, 22, 494, 24, 25, + 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, + 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, + -1, 75, 76, 77, 78, 79, 80, 316, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, + -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, + 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, + 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, + 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, + 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, 448, 214, -1, + 216, 217, -1, 454, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, + 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, 510, + -1, 512, 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, + 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, + -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, + 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, + 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, + 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 5, -1, -1, -1, + -1, 452, 11, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, 81, 466, 467, 468, 469, 470, + 6, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, 81, + -1, 492, 493, 494, 495, 496, 497, 498, 57, 500, -1, 502, 503, 504, 505, -1, -1, 508, 44, 126, + 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 5, 126, -1, -1, 73, -1, 11, -1, 97, -1, -1, 53, -1, 95, 81, 95, -1, 59, + 107, -1, -1, 26, -1, -1, 174, -1, 118, -1, 97, -1, 155, 97, 74, 125, -1, 127, 161, 126, -1, + 131, 165, 107, -1, -1, -1, 97, -1, -1, 97, 174, -1, -1, 57, 145, -1, 107, 97, 126, 107, 126, + 126, -1, -1, 105, 133, 107, 107, -1, -1, 151, 162, 151, 161, -1, 126, -1, -1, 126, -1, -1, -1, + -1, -1, -1, 126, 126, -1, -1, -1, -1, -1, 53, 161, -1, 176, -1, 176, 59, -1, 181, -1, 181, -1, + -1, -1, 174, 175, 174, -1, -1, 202, 116, 74, 118, -1, 204, -1, -1, -1, 188, 125, -1, 127, -1, + -1, 250, 131, -1, -1, 196, 172, -1, -1, 202, -1, -1, 218, 219, 204, 219, 145, -1, -1, 105, -1, + 107, -1, -1, -1, 218, 242, -1, 204, -1, -1, 204, -1, 162, -1, -1, -1, -1, 204, 204, 126, 247, + 316, 247, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 261, -1, 261, -1, -1, -1, -1, -1, -1, -1, + 339, -1, 316, -1, -1, -1, -1, -1, 202, 280, -1, 280, 293, -1, -1, 293, 297, -1, -1, 297, -1, + 172, 260, -1, -1, 263, -1, -1, -1, 310, 301, -1, 301, 263, -1, -1, -1, -1, 293, 320, -1, -1, + 297, -1, -1, -1, -1, 318, 242, 318, 306, 332, 293, 204, -1, 293, 297, -1, -1, 297, -1, -1, 333, + 293, 333, -1, 297, 297, -1, -1, -1, -1, -1, 387, 413, 316, 307, -1, 316, -1, -1, -1, -1, 341, + 398, -1, 316, -1, -1, -1, 361, 362, 361, 362, -1, -1, -1, -1, 379, 293, -1, 382, 383, 297, -1, + -1, -1, -1, -1, 448, -1, -1, -1, -1, -1, 454, 310, -1, -1, -1, 398, -1, 353, -1, -1, -1, 320, + 385, -1, 398, -1, 389, -1, 391, 448, 416, -1, -1, 332, -1, -1, 372, -1, 398, -1, -1, 297, -1, + -1, -1, -1, -1, 491, -1, -1, -1, 307, 398, 416, -1, 398, -1, -1, -1, -1, -1, -1, -1, 398, -1, + 448, 510, -1, 512, -1, -1, -1, -1, 449, 450, 449, 450, -1, -1, -1, 379, -1, 445, 382, 383, 448, + -1, 448, 448, -1, -1, 510, -1, 454, -1, -1, -1, 353, 474, -1, 474, 464, 448, -1, -1, 448, -1, + -1, 494, -1, -1, -1, 448, 448, -1, -1, 372, 416, -1, 482, -1, -1, -1, -1, -1, -1, -1, 490, 491, + -1, 493, 491, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 507, 510, 484, 510, 17, 450, -1, + 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, 448, 60, -1, 494, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 484, -1, -1, 98, 99, 100, 101, 102, 103, 104, 105, 106, -1, 108, 109, 110, 111, + 112, 113, 114, -1, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, + 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, + 152, 153, 154, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, + 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 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, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, 249, + -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, -1, 306, 307, + 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, + 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, + -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 442, 443, -1, 445, 446, 447, -1, -1, 450, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, + 462, 463, -1, -1, 466, 467, 468, 469, 470, 471, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, + 482, -1, 484, 485, 486, 487, 488, 489, 490, -1, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, -1, 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, -1, -1, 128, 129, 130, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, -1, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, -1, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, -1, 177, 178, 179, + 180, -1, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 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, -1, 243, 244, 245, 246, -1, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, + -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, -1, -1, 303, 304, -1, 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, + -1, 334, -1, 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, -1, -1, 363, 364, 365, -1, 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, 397, -1, 399, 400, 401, 402, 403, -1, 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, 446, + 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, + 12, -1, -1, -1, -1, 17, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, + 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, 96, -1, 98, 99, 100, 101, 102, 103, 104, 105, + 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, + -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, -1, 152, 153, 154, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, + 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 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, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, + -1, 244, 245, 246, -1, 248, 249, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, -1, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, + 302, 303, 304, -1, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, + -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, + 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, -1, -1, 452, 453, 454, 455, + 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, 471, 472, 473, -1, 475, + 476, 477, -1, 479, 480, 481, 482, -1, 484, 485, 486, 487, 488, 489, 490, -1, 492, 493, 494, + 495, 496, 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 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, + -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 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, -1, 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, 396, 397, 398, 399, 400, 401, 402, + 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, 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, -1, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, 514, 515, 516, + 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, + 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, + 29, -1, 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, + -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, + 77, 78, 79, 80, -1, 82, 83, 84, -1, -1, 87, -1, 89, -1, -1, -1, 93, 94, -1, -1, 97, 98, 99, + 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, + 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, + 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, -1, 156, 157, + 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, 177, + 178, 179, -1, -1, 182, -1, 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, -1, 214, -1, + 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, 249, -1, 251, 252, 253, -1, + -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, + -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, -1, 298, 299, 300, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, + 314, 315, 316, -1, 318, 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, + 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, + -1, 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, 410, + 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, + -1, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, + 470, 471, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, + -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, + -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, + 21, 22, -1, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, + 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, -1, -1, 87, -1, 89, -1, -1, -1, + 93, 94, -1, -1, 97, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, + 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, + -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, + 154, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, + -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 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, + -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, 249, -1, 251, + 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, -1, 298, 299, 300, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, + -1, 313, 314, 315, 316, -1, 318, 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, + 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, + 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, + 446, -1, -1, -1, -1, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, + 466, 467, 468, 469, 470, 471, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, + 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, 504, + 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, + -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, + 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, + 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, + 87, -1, -1, -1, -1, -1, 93, 94, 95, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, + 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, + -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, -1, -1, -1, + 170, 171, 172, 173, -1, 175, 176, 177, 178, 179, -1, 181, 182, -1, 184, 185, 186, -1, 188, 189, + 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, + 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, 247, 248, + -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, -1, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, -1, 303, 304, -1, 306, -1, 308, + 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, + 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, + 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, + 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, + 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, + 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + -1, 445, 446, -1, -1, 449, 450, -1, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, + -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, + -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, + 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, + -1, -1, -1, -1, -1, 18, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, -1, 31, 32, -1, 34, 35, 36, + 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, -1, -1, 60, + -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, + -1, -1, 87, -1, 89, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, + -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, + -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, -1, 146, + 147, 148, 149, -1, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, + 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, -1, -1, 179, -1, -1, 182, -1, 184, 185, 186, -1, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, 206, + -1, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, -1, -1, -1, + -1, -1, 81, -1, -1, -1, -1, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, -1, 246, -1, + 248, 249, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, + -1, 269, 270, 271, 272, -1, 126, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, -1, -1, 296, -1, 298, 299, 300, -1, -1, 303, -1, -1, 306, -1, + 308, 309, 310, 311, -1, 313, 314, 315, 81, -1, 318, 319, 320, -1, 174, 323, 324, 325, 10, 327, + 328, -1, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, -1, + 348, -1, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, 126, -1, 363, 364, 365, -1, 367, + 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + -1, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 6, 399, 400, 401, 402, 403, -1, 405, 406, + 407, 408, 174, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 110, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, -1, 443, 5, + 445, 446, -1, -1, -1, 11, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, 316, + 73, 466, 467, -1, 469, 1, -1, 472, 473, 81, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, + 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 57, 497, 498, -1, 500, 501, 502, 503, 504, 505, + -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, 126, 126, -1, -1, -1, -1, -1, 133, 210, + 211, -1, -1, 530, 531, 532, 533, 140, 35, -1, -1, -1, -1, -1, -1, -1, 81, -1, -1, -1, -1, -1, + 155, 81, 316, -1, 161, 161, 161, -1, 118, 165, -1, -1, -1, -1, -1, 125, -1, 97, 174, -1, -1, + 131, -1, -1, -1, 97, -1, 260, -1, -1, -1, 188, -1, 190, 83, 107, -1, -1, -1, 126, -1, -1, -1, + -1, -1, 202, 126, 448, -1, -1, -1, -1, 162, 454, 126, -1, -1, -1, 213, -1, -1, 218, 111, -1, + -1, 298, 299, -1, 155, -1, -1, -1, -1, -1, 161, 155, -1, 126, 165, -1, -1, 161, -1, 132, -1, + 165, -1, 174, -1, 138, 491, -1, 202, -1, 174, 250, -1, -1, -1, 179, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 510, -1, 512, -1, 162, -1, -1, -1, -1, 167, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 204, -1, 448, 184, -1, -1, -1, -1, 454, -1, -1, -1, -1, -1, -1, -1, -1, 94, -1, -1, 97, + -1, -1, -1, 312, 312, -1, -1, 316, -1, -1, 250, -1, 110, -1, 322, -1, -1, 250, 35, -1, -1, -1, + -1, 409, 491, -1, -1, -1, -1, -1, 293, 341, -1, -1, 297, -1, -1, -1, -1, -1, -1, -1, -1, 510, + -1, 512, -1, 310, -1, -1, -1, -1, -1, -1, -1, -1, -1, 320, 260, -1, -1, -1, -1, -1, -1, 451, + 83, -1, 293, 332, -1, -1, 297, -1, 307, 97, 316, 317, 387, 312, -1, 391, -1, 316, -1, 107, -1, + -1, -1, 398, 398, -1, -1, -1, 111, -1, -1, -1, -1, -1, -1, -1, -1, 489, 126, 307, -1, -1, -1, + 126, 496, -1, 210, -1, -1, 132, 379, -1, -1, 382, 383, 138, -1, -1, 510, -1, -1, -1, 514, -1, + -1, -1, 365, -1, -1, 445, -1, -1, 448, 448, 448, -1, -1, -1, -1, 162, -1, 387, -1, -1, 167, -1, + -1, 416, 387, -1, -1, -1, 398, -1, -1, 363, 260, -1, 397, 398, -1, 184, -1, 267, -1, -1, 482, + 398, -1, 483, -1, -1, -1, -1, 490, -1, 204, 493, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, + -1, -1, 510, 510, -1, -1, 514, 20, 21, 22, 448, 24, 25, 26, 27, -1, 29, 448, 31, 32, 33, 34, + -1, 36, 37, 448, 39, 40, 41, 42, 43, 44, 45, 494, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, + 58, -1, -1, 448, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, + 491, -1, 83, 84, 510, 293, 87, -1, -1, 297, -1, 510, 93, 94, -1, -1, 507, 98, 99, 100, 101, + 102, 103, 104, 307, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, + 122, 123, 124, 125, 409, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, 363, + 162, -1, 164, -1, 166, -1, 451, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, + 182, -1, 184, 185, 186, -1, 188, 189, 190, 398, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, -1, 205, 489, 207, 208, 209, 210, 211, 212, 496, 214, -1, 216, 217, -1, -1, -1, + 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 448, -1, -1, 244, 245, 448, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, + -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, + -1, 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, + 299, 507, -1, -1, 303, 304, 507, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, 316, -1, 318, + 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, + 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, + 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 110, 391, 392, 393, 394, 395, 396, + 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, + 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, -1, 454, 455, + 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, + 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, 210, -1, 492, 493, 494, 495, + 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, 81, -1, 511, 512, 81, -1, 515, + 516, 517, 18, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 18, + -1, -1, 97, -1, 97, 260, 41, -1, -1, -1, -1, -1, 107, 32, 107, -1, 5, -1, -1, 126, -1, 81, 11, + 126, 43, 44, 18, -1, -1, 53, -1, 126, -1, 126, -1, 59, -1, 97, -1, -1, -1, -1, 94, 298, 299, + 97, 81, -1, -1, 41, 74, -1, -1, 81, 73, -1, -1, -1, 110, 94, -1, 80, 97, -1, -1, -1, 126, 174, + 57, 97, -1, 174, -1, 97, -1, -1, -1, -1, 97, -1, 140, 105, -1, 107, 35, -1, -1, -1, -1, 81, -1, + 126, -1, -1, -1, 155, 203, -1, 126, -1, -1, 161, 94, 196, -1, 165, -1, 126, 168, 204, -1, 204, + 140, 132, 174, -1, -1, -1, -1, -1, 180, -1, -1, 183, -1, -1, -1, 155, -1, 118, 149, -1, 83, + 161, 126, -1, 125, 165, 127, 174, -1, -1, 131, -1, -1, -1, 174, -1, 172, 168, -1, -1, -1, 213, + 409, 215, 145, -1, 210, -1, 111, -1, -1, 198, -1, -1, -1, -1, -1, 188, -1, -1, -1, 162, 193, + 126, -1, -1, -1, -1, 204, 132, 174, -1, -1, 213, -1, 138, -1, -1, 250, -1, -1, -1, -1, -1, 451, + -1, 293, -1, 293, -1, 297, 306, 297, -1, 198, -1, 260, 316, -1, 162, -1, 202, -1, 267, 167, -1, + -1, 238, -1, -1, 250, -1, 259, 244, -1, -1, -1, -1, -1, 266, 339, 184, 489, -1, 271, 256, -1, + -1, -1, 496, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 312, 242, -1, 510, 316, -1, 293, 514, -1, + -1, 322, -1, -1, -1, -1, 259, -1, -1, -1, -1, -1, 297, 266, -1, -1, -1, 297, 271, -1, -1, -1, + 307, 312, -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, -1, 331, 316, -1, -1, -1, 293, -1, 398, + 293, 398, -1, -1, 297, 260, -1, -1, -1, 332, -1, 334, -1, -1, -1, -1, -1, 310, -1, -1, -1, -1, + -1, 387, -1, 353, -1, 320, -1, -1, -1, -1, -1, -1, 398, 331, -1, 448, -1, 332, -1, 448, -1, + 454, 372, 384, -1, 454, -1, 448, 406, 448, 307, 409, -1, 387, -1, -1, -1, 398, 383, -1, 385, + 386, -1, 388, 398, -1, -1, -1, 398, 410, -1, -1, 397, 398, -1, 416, -1, 402, 491, 404, -1, -1, + 448, 408, 379, -1, 384, 382, 383, -1, 431, 416, 491, 451, -1, -1, -1, 510, 507, 512, 398, 510, + -1, -1, 429, -1, 363, 448, 507, 510, -1, 510, 410, 438, 448, -1, -1, 483, 443, -1, -1, 416, -1, + 448, -1, -1, -1, -1, -1, 454, -1, 489, 457, 431, -1, -1, -1, -1, 496, 464, -1, 507, 467, 509, + 510, -1, 487, -1, -1, 483, 448, -1, -1, -1, 484, 450, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, + 7, 8, -1, 10, 11, 12, -1, -1, 510, 502, -1, -1, 505, 20, 21, 22, 509, 24, 25, 26, 27, 487, 29, + 448, 31, 32, 33, 34, -1, 36, 37, 494, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, + -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, + 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, 510, 93, 94, -1, 514, -1, 98, 99, + 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, + 119, -1, -1, 122, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, + 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, + 159, 160, -1, 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, + 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, + -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, + 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, + 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, + 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, + 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, + 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, + 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, + 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, + 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, -1, 454, + 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, + 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, + 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, + 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, + 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, + 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, + -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, + 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, + 118, 119, -1, -1, 122, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, + 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, + 158, 159, 160, -1, 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, 177, + 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, + -1, -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, + 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, + 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, + 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, + 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, + 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, + 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, + 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, + 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, -1, 454, + 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, + 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, + 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, + 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, 15, -1, -1, 18, -1, 20, 21, 22, -1, 24, 25, + 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, + 50, 51, 52, -1, 54, 55, 56, 57, 58, 59, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, -1, -1, 87, -1, 89, -1, -1, -1, 93, 94, 95, -1, 97, + 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, + 118, 119, -1, -1, 122, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, + 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, -1, 156, + 157, 158, 159, 160, -1, 162, -1, 164, 165, 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, 176, + 177, 178, 179, -1, 181, 182, -1, 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, -1, 214, + -1, 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, -1, 242, -1, 244, 245, 246, 247, 248, 249, -1, 251, 252, + 253, -1, -1, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, 303, 304, -1, 306, 307, 308, 309, 310, + 311, -1, 313, 314, 315, 316, -1, 318, 319, 320, 321, -1, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, + 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, + 368, 369, 370, 371, -1, 373, 374, 375, 376, 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, 402, 403, 404, 405, + 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + -1, 445, 446, -1, -1, 449, 450, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, + -1, -1, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, -1, + -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, + 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, + -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, + -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, + -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, + -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, + 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, + 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, 163, 164, -1, 166, -1, + -1, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, + 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, + 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, + -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, + -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, -1, 326, + 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, + 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, + 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, + 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, + 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + -1, 445, 446, -1, -1, -1, -1, 451, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, + -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, + -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, + 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, + -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, + 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, + -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, 81, -1, 83, 84, + -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, + -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, + -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, + -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, + 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, + 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, + -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, + -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, -1, 326, + 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, + 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, + 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + -1, 445, 446, -1, -1, -1, -1, -1, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, + -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, + 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, + 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 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, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 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, + -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, 329, 330, 331, 332, 333, 334, -1, 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, 396, 397, 398, 399, 400, 401, 402, 403, -1, 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, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, 128, + 129, 130, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + -1, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 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, -1, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, -1, 261, + 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, -1, 329, 330, 331, 332, 333, 334, -1, 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, + 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, 402, 403, -1, 405, 406, -1, 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, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, -1, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, -1, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, 261, 262, 263, 264, + 265, 266, 267, 268, 269, -1, 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, -1, 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, 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, 402, 403, 404, 405, 406, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, -1, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, 512, + -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, -1, 532, + 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, -1, 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, + -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, + 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 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, + -1, -1, 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, 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, 402, + 403, 404, 405, 406, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, 512, -1, -1, 515, 516, + 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, -1, 532, 533, 0, 1, 2, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, -1, + 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, + 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, -1, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, + 272, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 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, -1, -1, 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, 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, 402, 403, 404, 405, + 406, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, -1, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, 512, -1, -1, 515, 516, 517, -1, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, + 10, 11, 12, -1, -1, -1, -1, 17, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, + 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, + 104, 105, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, + 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, -1, 156, 157, 158, 159, 160, -1, 162, -1, + 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, + 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, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, + -1, -1, 244, 245, 246, -1, 248, 249, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, -1, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + -1, 302, 303, 304, -1, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, + -1, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, + 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, -1, -1, 452, 453, 454, + 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, 471, 472, 473, -1, + 475, 476, 477, -1, 479, 480, 481, 482, -1, 484, 485, 486, 487, 488, 489, 490, -1, 492, 493, + 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, 504, 505, 506, -1, 508, -1, -1, 511, 512, -1, + -1, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 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, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 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, -1, 329, 330, 331, 332, 333, 334, -1, 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, 396, 397, 398, 399, 400, 401, + 402, 403, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, 515, + 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, + 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 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, -1, 128, 129, 130, 131, 132, 133, 134, 135, -1, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 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, -1, + 329, 330, 331, 332, 333, 334, -1, 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, 396, 397, 398, 399, 400, 401, 402, 403, -1, + 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, 514, 515, 516, 517, -1, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 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, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, -1, 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, -1, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 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, -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, 267, 268, 269, 270, 271, 272, + -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 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, -1, 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, 396, 397, 398, 399, 400, 401, 402, 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, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, 514, 515, 516, 517, -1, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 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, -1, 128, 129, 130, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 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, -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, 267, 268, 269, 270, 271, 272, -1, -1, + -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 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, -1, 329, 330, 331, + 332, 333, 334, -1, 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, 396, 397, 398, 399, 400, 401, 402, 403, -1, 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, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, 514, 515, 516, 517, -1, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 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, -1, 128, 129, 130, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 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, -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, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, + -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, 329, 330, 331, 332, 333, + 334, -1, 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, 396, 397, 398, 399, 400, 401, 402, 403, -1, 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, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, -1, 514, 515, 516, 517, -1, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, -1, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 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, -1, 271, 272, -1, -1, -1, -1, -1, -1, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, -1, 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, 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, 402, 403, 404, 405, 406, -1, 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, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, -1, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, -1, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, -1, 329, 330, 331, 332, 333, 334, -1, 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, 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, 402, 403, -1, 405, 406, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, -1, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, + 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, -1, + 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 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, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 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, -1, 329, 330, 331, 332, 333, 334, -1, 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, 396, 397, 398, 399, 400, 401, + 402, 403, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, 515, + 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, + 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, + -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + -1, 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, -1, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, + 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 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, -1, -1, + 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, 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, 402, 403, 404, + 405, 406, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + -1, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, 512, -1, -1, 515, 516, 517, -1, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 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, -1, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 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, -1, -1, + -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 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, -1, 329, 330, 331, + 332, 333, 334, -1, 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, 396, 397, 398, 399, 400, 401, 402, 403, -1, 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, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, + 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, -1, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 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, -1, 271, 272, -1, -1, -1, -1, + -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, -1, 329, 330, 331, 332, 333, + 334, -1, 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, 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, 402, 403, -1, 405, 406, -1, 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, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, -1, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, -1, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, -1, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 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, -1, + 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, -1, 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, 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, 402, 403, 404, 405, 406, -1, 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, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, -1, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, -1, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, -1, 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, 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, 402, 403, 404, 405, 406, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, -1, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, 512, + -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, -1, 532, + 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, -1, 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, + -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, + 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, 261, 262, 263, 264, 265, 266, 267, 268, + 269, -1, 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 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, + -1, -1, 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, 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, 402, + 403, 404, 405, 406, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, -1, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, 512, -1, -1, 515, 516, 517, + -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, + 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, 271, 272, + -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 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, -1, -1, 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, 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, 402, 403, 404, 405, 406, + -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, -1, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 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, -1, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 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, -1, -1, -1, -1, + -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, 329, 330, 331, 332, 333, + 334, -1, 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, 396, 397, 398, 399, 400, 401, 402, 403, -1, 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, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 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, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 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, -1, -1, -1, -1, -1, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, 329, 330, 331, 332, 333, 334, -1, 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, 396, 397, 398, 399, 400, 401, 402, 403, -1, 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, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 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, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 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, -1, -1, -1, -1, -1, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, 329, 330, 331, 332, 333, 334, -1, 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, + 396, 397, 398, 399, 400, 401, 402, 403, -1, 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, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 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, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, 329, 330, 331, 332, 333, 334, -1, 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, 396, 397, + 398, 399, 400, 401, 402, 403, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 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, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, 329, 330, 331, 332, 333, 334, -1, 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, 396, 397, 398, 399, + 400, 401, 402, 403, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, + -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 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, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 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, -1, 329, 330, 331, 332, 333, 334, -1, 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, 396, 397, 398, 399, 400, 401, + 402, 403, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, 515, + 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, + 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 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, -1, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 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, -1, + 329, 330, 331, 332, 333, 334, -1, 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, 396, 397, 398, 399, 400, 401, 402, 403, -1, + 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, 515, 516, 517, -1, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 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, -1, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 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, + -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 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, -1, 329, 330, + 331, 332, 333, 334, -1, 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, 396, 397, 398, 399, 400, 401, 402, 403, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 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, -1, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 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, -1, -1, + -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 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, -1, 329, 330, 331, + 332, 333, 334, -1, 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, 396, 397, 398, 399, 400, 401, 402, 403, -1, 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, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 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, -1, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 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, -1, -1, -1, -1, + -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, 329, 330, 331, 332, 333, + 334, -1, 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, 396, 397, 398, 399, 400, 401, 402, 403, -1, 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, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 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, + -1, 128, 129, 130, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 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, -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, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, 329, 330, 331, 332, 333, 334, -1, 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, 396, 397, 398, 399, 400, 401, 402, 403, -1, 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, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, -1, 514, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 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, -1, 128, + 129, 130, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 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, -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, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, 329, 330, 331, 332, 333, 334, -1, 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, + 396, 397, 398, 399, 400, 401, 402, 403, -1, 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, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, -1, 514, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, 17, -1, -1, + 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, 105, 106, -1, 108, 109, 110, 111, 112, + 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, + 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, + 153, 154, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, + 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 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, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, 249, -1, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, -1, 306, 307, 308, + 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, + 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, + 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, + 443, -1, 445, 446, 447, -1, -1, -1, 451, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, + 463, -1, -1, 466, 467, 468, 469, 470, 471, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, + -1, 484, 485, 486, 487, 488, 489, 490, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, + 502, 503, 504, 505, -1, -1, 508, -1, 510, 511, 512, -1, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 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, -1, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 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, -1, -1, -1, -1, + -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, 329, 330, 331, 332, 333, + 334, -1, 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, 396, 397, 398, 399, 400, 401, 402, 403, -1, 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, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, -1, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 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, + -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, -1, -1, -1, -1, -1, -1, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, -1, 329, 330, 331, 332, 333, 334, -1, 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, 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, 402, 403, -1, 405, 406, -1, 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, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, -1, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, -1, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 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, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, 329, 330, 331, 332, 333, 334, -1, 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, 396, 397, + 398, 399, 400, 401, 402, 403, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 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, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, 329, 330, 331, 332, 333, 334, -1, 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, 396, 397, 398, 399, + 400, 401, 402, 403, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, + -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, -1, 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, -1, + 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 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, + -1, -1, 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, 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, 402, + 403, 404, 405, 406, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, -1, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, 512, -1, -1, 515, 516, 517, + -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 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, -1, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 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, + -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 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, -1, 329, 330, + 331, 332, 333, 334, -1, 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, 396, 397, 398, 399, 400, 401, 402, 403, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, + 10, 11, 12, -1, -1, -1, -1, 17, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, + 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, + 104, 105, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, + 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, -1, 156, 157, 158, 159, 160, -1, 162, -1, + 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, + 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, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, + -1, -1, 244, 245, 246, -1, 248, 249, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, -1, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + -1, 302, 303, 304, -1, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, + -1, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, + 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, -1, -1, 452, 453, 454, + 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, 471, 472, 473, -1, + 475, 476, 477, -1, 479, 480, 481, 482, -1, 484, 485, 486, 487, 488, 489, 490, -1, 492, 493, + 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, + -1, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, -1, 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, + -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, + 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, 261, 262, 263, 264, 265, 266, 267, 268, + 269, -1, 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 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, + -1, -1, 329, 330, 331, 332, 333, 334, -1, 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, 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, 402, + 403, -1, 405, 406, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, -1, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, 512, -1, -1, 515, 516, 517, + -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 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, -1, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 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, + -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 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, -1, 329, 330, + 331, 332, 333, 334, -1, 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, 396, 397, 398, 399, 400, 401, 402, 403, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, 55, 56, 57, + 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, -1, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 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, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, -1, -1, -1, -1, + -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, -1, 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, 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, 402, 403, 404, 405, 406, -1, 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, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, -1, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, -1, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, -1, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 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, -1, 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, -1, 329, 330, 331, 332, 333, 334, -1, 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, 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, 402, 403, -1, 405, 406, -1, 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, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, -1, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, -1, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, 261, 262, 263, 264, + 265, 266, 267, 268, 269, -1, 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, -1, 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, 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, 402, 403, 404, 405, 406, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, -1, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, 512, + -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, -1, 532, + 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 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, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 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, -1, 329, 330, 331, 332, 333, 334, -1, 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, 396, 397, 398, 399, 400, 401, + 402, 403, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, 515, + 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, + 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, + -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + -1, 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, -1, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, + 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 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, -1, -1, + 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, 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, 402, 403, 404, + 405, 406, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + -1, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, 512, 513, 514, 515, 516, 517, -1, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, + 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, 271, 272, + -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 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, -1, -1, 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, 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, 402, 403, 404, 405, 406, + -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, -1, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, 512, 513, 514, 515, 516, 517, -1, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 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, -1, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 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, -1, -1, + -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 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, -1, 329, 330, 331, + 332, 333, 334, -1, 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, 396, 397, 398, 399, 400, 401, 402, 403, -1, 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, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 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, -1, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 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, -1, -1, -1, -1, + -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, 329, 330, 331, 332, 333, + 334, -1, 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, 396, 397, 398, 399, 400, 401, 402, 403, -1, 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, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, -1, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 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, -1, 271, 272, -1, -1, -1, -1, -1, -1, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, -1, 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, 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, 402, 403, 404, 405, 406, -1, 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, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, -1, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, -1, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 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, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, 329, 330, 331, 332, 333, 334, -1, 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, 396, 397, + 398, 399, 400, 401, 402, 403, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 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, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, 329, 330, 331, 332, 333, 334, -1, 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, 396, 397, 398, 399, + 400, 401, 402, 403, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, + -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 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, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 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, -1, 329, 330, 331, 332, 333, 334, -1, 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, 396, 397, 398, 399, 400, 401, + 402, 403, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, 515, + 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, + 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 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, -1, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 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, -1, + 329, 330, 331, 332, 333, 334, -1, 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, 396, 397, 398, 399, 400, 401, 402, 403, -1, + 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, 515, 516, 517, -1, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 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, -1, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 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, + -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 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, -1, 329, 330, + 331, 332, 333, 334, -1, 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, 396, 397, 398, 399, 400, 401, 402, 403, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 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, -1, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 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, -1, -1, + -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 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, -1, 329, 330, 331, + 332, 333, 334, -1, 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, 396, 397, 398, 399, 400, 401, 402, 403, -1, 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, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 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, -1, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 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, -1, -1, -1, -1, + -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, 329, 330, 331, 332, 333, + 334, -1, 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, 396, 397, 398, 399, 400, 401, 402, 403, -1, 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, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 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, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 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, -1, -1, -1, -1, -1, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, 329, 330, 331, 332, 333, 334, -1, 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, 396, 397, 398, 399, 400, 401, 402, 403, -1, 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, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + -1, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 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, -1, 261, + 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, -1, 329, 330, 331, 332, 333, 334, -1, 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, + 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, 402, 403, -1, 405, 406, -1, 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, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, -1, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, -1, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, -1, 97, 98, 99, -1, 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, -1, 128, 129, 130, 131, + 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, -1, 261, 262, 263, 264, + 265, 266, 267, 268, 269, -1, 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, -1, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, -1, -1, 329, 330, 331, 332, 333, 334, -1, 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, -1, 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, 397, 398, + 399, 400, 401, 402, 403, -1, 405, 406, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, -1, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, -1, -1, + -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, -1, 532, + 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, -1, 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, -1, 128, 129, 130, 131, 132, 133, 134, 135, + -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, -1, 261, 262, 263, 264, 265, 266, 267, 268, + 269, -1, 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 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, -1, 329, 330, 331, 332, 333, 334, -1, 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, 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, 402, + 403, -1, 405, 406, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, -1, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, 515, 516, + 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, -1, 532, 533, 0, 1, 2, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, -1, + 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, + 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, -1, 128, 129, 130, 131, 132, 133, 134, 135, -1, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, + 272, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 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, -1, 329, + 330, 331, 332, 333, 334, -1, 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, 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, 402, 403, -1, 405, + 406, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, -1, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 81, 512, 81, -1, 515, 516, 517, 81, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 97, 532, 533, 97, 97, -1, -1, -1, 105, -1, + 105, -1, 105, -1, -1, -1, -1, -1, 81, -1, -1, -1, -1, -1, -1, 126, -1, 126, -1, -1, -1, -1, + 126, 130, -1, 130, -1, 130, -1, 140, 137, 140, 137, -1, 137, -1, 140, -1, -1, -1, -1, -1, -1, + -1, 155, 152, 155, 152, -1, 152, 161, 155, 161, 126, 165, -1, 165, 161, -1, 168, -1, 165, -1, + 174, 168, 174, -1, -1, -1, -1, 174, 180, -1, -1, 183, -1, 180, -1, -1, 183, -1, -1, 155, -1, + -1, -1, -1, -1, 161, -1, -1, -1, 165, -1, -1, -1, -1, -1, -1, -1, -1, 174, 213, -1, 213, -1, + 215, -1, -1, 213, -1, 215, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 234, -1, -1, -1, -1, -1, -1, -1, -1, -1, 250, -1, 250, -1, -1, -1, -1, 250, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 250, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 307, 312, 307, 312, 307, 316, -1, 316, 312, 316, 315, 322, 316, 322, -1, -1, -1, -1, 322, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 303, -1, -1, -1, -1, -1, -1, -1, -1, 312, -1, -1, + -1, 316, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 387, -1, 387, -1, -1, -1, -1, 387, -1, -1, -1, 398, + -1, 398, -1, 398, -1, 398, 398, 398, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 387, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 398, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 448, -1, 448, -1, -1, -1, -1, 448, -1, -1, -1, -1, -1, 423, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 471, -1, 471, -1, 471, -1, -1, -1, 483, -1, 483, 448, -1, -1, + 485, 483, 485, -1, 485, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 507, 510, + 509, 510, -1, 507, -1, 509, 510, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 510, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, 128, + 129, 130, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + -1, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 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, -1, 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, -1, 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, + 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, 402, 403, 404, 405, 406, -1, 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, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, -1, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, -1, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, 128, 129, 130, 131, + 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, -1, 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, 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, 402, 403, 404, 405, 406, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, -1, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, 512, + -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, -1, 532, + 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, -1, 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, -1, 128, 129, 130, 131, 132, 133, 134, 135, + -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, + 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, 261, 262, 263, 264, 265, 266, 267, 268, + 269, -1, 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 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, + -1, -1, 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, 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, 402, + 403, 404, 405, 406, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, -1, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, 512, -1, -1, 515, 516, 517, + -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, + 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, 128, 129, 130, 131, 132, 133, 134, 135, -1, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, 271, 272, + -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 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, -1, -1, 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, 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, 402, 403, 404, 405, 406, + -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, + 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, 128, 129, 130, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, -1, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 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, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, -1, -1, -1, -1, + -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, -1, 329, 330, 331, 332, 333, + 334, -1, 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, 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, 402, 403, -1, 405, 406, -1, 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, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, -1, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, -1, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, + 128, 129, 130, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, -1, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 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, -1, + 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, -1, 329, 330, 331, 332, 333, 334, -1, 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, 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, 402, 403, -1, 405, 406, -1, 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, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, -1, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, -1, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, 128, 129, 130, 131, + 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, 261, 262, 263, 264, + 265, 266, 267, 268, 269, -1, 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, -1, 329, 330, 331, 332, 333, 334, -1, 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, 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, 402, 403, -1, 405, 406, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, -1, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, 512, + -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, -1, 532, + 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, -1, 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, -1, 128, 129, 130, 131, 132, 133, 134, 135, + -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, + 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, 261, 262, 263, 264, 265, 266, 267, 268, + 269, -1, 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 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, + -1, -1, 329, 330, 331, 332, 333, 334, -1, 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, 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, 402, + 403, -1, 405, 406, -1, 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, 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, -1, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, -1, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, 512, -1, -1, 515, 516, 517, + -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, + 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, 128, 129, 130, 131, 132, 133, 134, 135, -1, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, + -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 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, -1, -1, 329, 330, + 331, 332, 333, 334, -1, 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, 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, 402, 403, -1, 405, 406, + -1, 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, 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, -1, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, -1, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, + 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, 128, 129, 130, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, -1, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 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, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, -1, -1, -1, -1, + -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, -1, 329, 330, 331, 332, 333, + 334, -1, 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, 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, 402, 403, -1, 405, 406, -1, 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, 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, -1, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, -1, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, -1, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, + 128, 129, 130, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, -1, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 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, -1, 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, -1, 329, 330, 331, 332, 333, 334, -1, 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, 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, 402, 403, -1, 405, 406, -1, 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, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, -1, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, -1, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, 128, 129, 130, 131, + 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, 261, 262, 263, 264, + 265, 266, 267, 268, 269, -1, 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, -1, 329, 330, 331, 332, 333, 334, -1, 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, 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, 402, 403, -1, 405, 406, -1, 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, 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, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, -1, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, 512, + -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, -1, 532, + 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, + -1, 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, -1, -1, 128, 129, 130, 131, 132, 133, 134, + 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, + -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, -1, 177, 178, 179, 180, -1, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, 243, 244, 245, 246, -1, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, -1, 303, 304, -1, 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, -1, 334, -1, 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, -1, -1, 363, + 364, 365, -1, 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, 397, -1, 399, 400, 401, + 402, 403, -1, 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, 446, 447, -1, -1, -1, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 475, 476, 477, + -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, 515, + 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, + 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, + -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + -1, 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, -1, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, + 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 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, -1, -1, + 329, 330, 331, 332, 333, 334, -1, 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, 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, 402, 403, -1, + 405, 406, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + -1, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, 512, -1, -1, 515, 516, 517, -1, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, + -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, + 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, + 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, + -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, + 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, + 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, + 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, + 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, + -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, + -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, + 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, + 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, + 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, + 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, + 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, + 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, -1, 454, 455, 456, 457, 458, + 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, + 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, + -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, + 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, + 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, + 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, + 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, + 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, + 123, 124, 125, 126, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, + -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, + 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, + -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, + 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, + 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, + 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, + -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, + 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, + 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, + 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, -1, 445, 446, -1, 448, -1, -1, -1, 452, -1, 454, 455, 456, 457, 458, + 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, + 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, + -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, + 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, + 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, + 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, + 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, + 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, + 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, + -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, + 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, + -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, + 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, + 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, + 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, + -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, + 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, + 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, + 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, -1, 454, 455, 456, 457, 458, + 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, + 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, + -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, + 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, + 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, + 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, + 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, + 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, + 123, 124, 125, 126, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, + -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, + 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, + -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, + 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, + 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, + 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, + 97, 344, 345, 346, 347, 348, 349, 350, 351, 352, 107, 354, 355, 356, 357, 358, 359, 360, -1, + -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, 126, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, 18, 399, + 400, 401, 402, 403, -1, 405, 406, 407, 408, 110, 410, 411, 412, 413, 414, -1, 416, 417, 418, + 419, 420, 41, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, 448, -1, 204, -1, 452, -1, 454, 455, 456, 457, + 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, 94, 475, 476, 477, + -1, 479, 480, 481, 482, 1, -1, 485, 486, 487, 488, 489, 81, -1, 492, 493, 494, 495, 496, 497, + 498, -1, 500, -1, 502, 503, 504, 505, 97, -1, 508, 210, -1, 511, 512, -1, -1, 515, 516, 517, + -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 95, 126, 97, -1, + -1, 293, -1, -1, -1, 297, -1, -1, -1, -1, -1, 140, -1, -1, 172, -1, -1, -1, -1, -1, -1, 260, + -1, -1, -1, 81, 155, -1, -1, -1, -1, -1, 161, -1, -1, -1, 165, -1, -1, 168, 198, 97, -1, 105, + -1, 174, -1, -1, -1, -1, -1, 180, 151, -1, 183, -1, -1, -1, -1, 298, 299, -1, -1, -1, -1, -1, + -1, -1, 130, -1, 126, -1, -1, -1, -1, 137, -1, 176, -1, -1, -1, -1, 181, -1, 213, -1, 215, -1, + -1, -1, 152, -1, -1, -1, -1, -1, -1, -1, -1, 155, -1, 259, -1, 165, -1, 161, 398, -1, 266, 165, + -1, -1, -1, 271, 97, -1, -1, -1, 174, -1, 219, 250, 105, 179, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 293, -1, -1, -1, -1, -1, -1, 97, -1, -1, -1, -1, 130, 247, -1, 105, -1, -1, -1, + 137, -1, 448, -1, -1, -1, -1, -1, 261, -1, -1, -1, -1, -1, -1, 152, 409, -1, 234, 331, -1, 130, + -1, -1, -1, -1, -1, 280, 137, 312, -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, 250, -1, -1, 152, + -1, 491, -1, -1, 301, -1, -1, -1, -1, -1, -1, -1, -1, -1, 451, -1, -1, 507, -1, -1, 510, 318, + -1, -1, -1, -1, -1, -1, 384, -1, -1, -1, -1, -1, -1, -1, 333, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 307, -1, -1, -1, 305, 489, 307, 410, 315, -1, -1, 312, 496, 387, -1, 316, -1, 361, 362, + -1, -1, -1, -1, -1, 398, -1, 510, -1, 431, -1, 514, -1, -1, -1, 234, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 398, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 365, -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, -1, -1, -1, -1, 307, -1, -1, -1, -1, 487, -1, + 387, -1, 316, -1, -1, 398, -1, -1, -1, -1, 397, 398, -1, -1, -1, -1, -1, -1, -1, 449, 450, 307, + -1, 483, -1, -1, -1, -1, -1, 315, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, 474, -1, -1, + 507, -1, 509, 510, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 448, 31, 32, 33, 34, 35, 36, 37, -1, + 39, 40, 41, 42, 43, 44, 45, -1, 471, 48, 49, 50, 51, 52, 398, 54, 55, 56, 57, 58, -1, 60, 485, + -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, 398, 82, 83, 84, + -1, 510, 87, 512, 89, -1, -1, 510, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, 105, + 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, + 471, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, 485, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, -1, -1, 153, 471, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, + 166, 167, 485, 169, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, + 186, -1, 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, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, + -1, 244, 245, 246, -1, 248, 249, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, -1, + -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, + -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, + 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, + 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, 453, 454, 455, 456, + 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, + 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, + 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, + 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, + 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, + 29, -1, 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, + -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, + 77, 78, 79, 80, -1, 82, 83, 84, -1, -1, 87, -1, 89, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, + 100, 101, 102, 103, 104, 105, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, + 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, + 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, -1, 156, 157, + 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, 177, + 178, 179, -1, -1, 182, -1, 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, -1, 214, -1, + 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, 249, -1, 251, 252, 253, -1, + -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, + -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, -1, 298, 299, 300, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, + 314, 315, 316, -1, 318, 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, + 334, 335, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, + -1, 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, 410, + 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, + -1, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, + 470, 471, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, + -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, + -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, + 21, 22, -1, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, + 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, -1, -1, 87, -1, 89, -1, -1, -1, + 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, 105, 106, -1, 108, 109, 110, 111, 112, + 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, + 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, + 153, 154, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, + 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 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, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, 249, -1, + 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, + 311, -1, 313, 314, 315, 316, -1, 318, 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, + 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, + 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, + 445, 446, -1, -1, -1, -1, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, + -1, 466, 467, 468, 469, 470, 471, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, + 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, + 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, + 13, 14, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, + 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, + -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, + -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, + -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, 126, + -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, + -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, + 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, + 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, + -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, + -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, -1, 326, + 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, + 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, + 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, + 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, + 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + -1, 445, 446, -1, 448, -1, -1, -1, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, + -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, + -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, + 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, + 13, 14, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, + 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, + -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, + -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, + -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, 126, + -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, + -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, + 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, + 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, + -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, + -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, 110, -1, 323, 324, -1, 326, + 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, 97, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 107, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, + -1, 367, 368, 369, 370, 371, 126, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, + 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, 210, 422, 423, + 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, + 443, 94, 445, 446, 97, 448, -1, 204, -1, 452, -1, 454, 455, 456, 457, 458, 459, 110, 461, 462, + 463, -1, 15, 466, 467, 468, 469, 470, 260, 472, 473, 24, 475, 476, 477, -1, 479, 480, 481, 482, + 33, -1, 485, 486, 487, 488, 489, -1, 18, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, + 503, 504, 505, -1, -1, 508, 59, 299, 511, 512, -1, 41, 515, 516, 517, 81, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 97, -1, -1, -1, -1, 293, -1, -1, -1, + 297, -1, 95, -1, 97, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 210, -1, -1, 126, -1, -1, + -1, 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 155, -1, -1, -1, -1, -1, 161, -1, -1, 151, 165, -1, -1, -1, -1, -1, -1, 398, 260, 174, + -1, -1, -1, -1, -1, 267, -1, -1, 409, -1, -1, -1, -1, -1, 176, -1, -1, 179, -1, 181, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 191, -1, -1, 398, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 448, -1, -1, 451, -1, -1, -1, -1, -1, 218, 219, 220, 198, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 250, -1, -1, -1, -1, -1, -1, 448, -1, -1, 247, -1, 249, 489, + -1, -1, -1, -1, -1, -1, 496, -1, -1, -1, 261, -1, -1, -1, -1, -1, -1, -1, -1, -1, 510, -1, -1, + -1, 514, -1, -1, -1, -1, 280, -1, 259, -1, -1, -1, -1, 491, -1, 266, 303, -1, -1, -1, 271, -1, + -1, -1, -1, 312, 300, 301, 302, 316, -1, -1, 510, -1, -1, 409, -1, -1, -1, -1, -1, -1, 293, -1, + 318, -1, -1, 321, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 333, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 451, -1, -1, 331, -1, -1, -1, -1, -1, -1, 361, 362, -1, + -1, 365, 366, -1, -1, -1, -1, -1, -1, -1, 387, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 398, -1, + -1, -1, 489, -1, -1, -1, -1, -1, -1, 496, 397, 398, -1, -1, -1, -1, -1, -1, -1, -1, 384, -1, + -1, 423, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 421, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 410, -1, 448, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, 449, 450, -1, -1, 17, 431, -1, 20, + 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 474, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, 510, -1, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 487, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, 105, 106, -1, 108, 109, 110, + 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, + 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, -1, 152, 153, 154, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, + 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 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, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, + 248, 249, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, -1, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, -1, + 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, -1, 344, + 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, + 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, -1, 451, 452, 453, 454, 455, 456, 457, 458, 459, + -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, 471, 472, 473, -1, 475, 476, 477, -1, 479, + 480, 481, 482, -1, 484, 485, 486, 487, 488, 489, 490, -1, 492, 493, 494, 495, 496, 497, 498, + -1, 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, 17, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, + 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, + 79, 80, -1, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, -1, 98, 99, 100, 101, + 102, 103, 104, 105, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, + 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, -1, 156, 157, 158, 159, 160, + -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, + -1, 182, -1, 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, -1, 214, -1, 216, 217, -1, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, 249, -1, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, -1, 302, 303, 304, -1, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, + 318, 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, + 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, -1, -1, + 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, + 471, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, 484, 485, 486, 487, 488, 489, + 490, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, + -1, 511, 512, -1, -1, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, 17, -1, -1, + 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, 105, 106, -1, 108, 109, 110, 111, 112, + 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, + 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, + 153, 154, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, + 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 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, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, 249, -1, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, -1, 306, 307, 308, + 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, + 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, + 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, + 443, -1, 445, 446, 447, -1, -1, -1, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, + 463, -1, -1, 466, 467, 468, 469, 470, 471, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, + -1, 484, 485, 486, 487, 488, 489, 490, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, + 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, + 11, 12, -1, -1, -1, -1, -1, 18, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, + -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, + -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, -1, + 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, + -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, + 125, 126, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, + -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, + 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, + 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, + 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, + -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, + 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, + 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, + 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, + 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, + 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, -1, 445, 446, -1, 448, -1, -1, -1, 452, -1, 454, 455, 456, 457, 458, + 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, + 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, 491, 492, 493, 494, 495, 496, 497, + 498, -1, 500, -1, 502, 503, 504, 505, -1, 507, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, + -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, + 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, + -1, 31, 32, -1, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, + 54, 55, 56, 57, -1, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, + 78, 79, 80, -1, 82, 83, 84, -1, -1, 87, -1, 89, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, + 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, + -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, + 141, 142, 143, 144, -1, 146, 147, 148, 149, -1, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, + -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, -1, -1, 179, -1, -1, + 182, -1, 184, 185, 186, -1, 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, -1, 214, -1, 216, 217, 218, 219, + 220, 221, 222, 223, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 234, 235, 236, 237, 238, 239, 240, + -1, -1, -1, 244, -1, 246, -1, 248, 249, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, + 262, 263, 264, 265, 266, 267, -1, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, -1, 296, -1, 298, 299, 300, -1, + -1, 303, -1, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, + 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, + 341, 342, -1, 344, 345, 346, -1, 348, -1, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, + -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, -1, 399, + 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, -1, 443, -1, 445, 446, -1, -1, -1, 450, -1, 452, 453, 454, 455, 456, 457, + 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, -1, 469, -1, -1, 472, 473, -1, 475, 476, 477, + -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, -1, 497, + 498, 499, 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 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, -1, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 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, -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, 267, 268, 269, 270, 271, 272, -1, -1, + -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 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, -1, 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, 396, 397, 398, 399, 400, 401, 402, 403, -1, 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, + 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, -1, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, 514, 515, 516, 517, -1, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, + 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, + 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, + -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, + 83, 84, -1, -1, 87, -1, 89, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, + 105, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, + 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, -1, 156, 157, 158, 159, 160, -1, 162, -1, + 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, + 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, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, + -1, -1, 244, 245, 246, -1, 248, 249, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, + -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, 316, -1, 318, 319, 320, + -1, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, + 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, + 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, 453, 454, 455, + 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, 471, 472, 473, -1, 475, + 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, + 496, 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, + 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, + 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, + 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, + 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, + 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, -1, -1, 87, -1, 89, -1, -1, -1, 93, 94, -1, -1, -1, 98, + 99, 100, 101, 102, 103, 104, 105, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, + 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, + 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, -1, 156, + 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, + 177, 178, 179, -1, -1, 182, -1, 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, -1, 214, + -1, 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, 249, -1, 251, 252, 253, + -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, + -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, -1, 298, 299, 300, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, + 314, 315, 316, -1, 318, 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, + 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, + -1, 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, 410, + 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, + -1, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, 464, -1, 466, 467, 468, 469, + 470, 471, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, + -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, + -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, + 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, + 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, + -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, + 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, + 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, + -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, + -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, + 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, + 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, + -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, + -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, + 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, + 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, + -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, + 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, + 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, + -1, -1, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, + 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, + -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, + -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, + 21, 22, -1, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, + 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, -1, -1, 87, -1, 89, -1, -1, -1, + 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, 105, 106, -1, 108, 109, 110, 111, 112, + 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, + 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, + 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 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, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, 249, + -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, -1, -1, 303, 304, -1, 306, -1, 308, 309, + 310, 311, -1, 313, 314, 315, 316, -1, 318, 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, + 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, + 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + -1, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + -1, 445, 446, -1, -1, -1, -1, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, + -1, -1, 466, 467, 468, 469, 470, 471, 472, 473, 1, 475, 476, 477, -1, 479, 480, 481, 482, -1, + -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, + 504, 505, -1, -1, 508, 3, 43, 511, 512, -1, 8, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, -1, -1, 43, -1, 3, -1, -1, -1, -1, 8, -1, -1, -1, + 80, -1, -1, -1, -1, -1, 47, 81, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, -1, 53, -1, 97, + -1, -1, 80, 59, -1, -1, -1, -1, -1, -1, -1, 47, 68, 78, -1, -1, -1, -1, 74, -1, -1, -1, 126, + -1, 60, -1, -1, -1, 126, -1, -1, -1, -1, 98, -1, -1, -1, -1, -1, -1, 97, 97, 78, -1, -1, 149, + -1, -1, 126, 105, 107, 107, -1, 105, -1, -1, -1, 155, 123, -1, -1, -1, 98, 161, -1, -1, -1, + 165, -1, 126, 126, 149, -1, -1, 139, -1, 174, -1, 130, -1, -1, 179, -1, 148, -1, 137, -1, 123, + -1, 193, -1, -1, -1, -1, -1, -1, -1, -1, 163, -1, 152, -1, -1, 139, -1, 170, -1, -1, -1, -1, + -1, -1, 148, -1, -1, 193, 172, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 163, -1, -1, -1, -1, -1, + -1, 170, 200, -1, -1, -1, 196, 244, -1, -1, -1, -1, -1, -1, 204, 204, -1, -1, -1, 250, -1, -1, + -1, -1, -1, -1, -1, -1, 97, -1, -1, 200, -1, 244, -1, -1, 105, -1, -1, -1, 238, -1, -1, -1, -1, + -1, -1, -1, -1, 234, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 297, 130, -1, -1, -1, -1, -1, 265, + 137, 238, -1, -1, -1, -1, 305, -1, 307, -1, -1, -1, -1, 312, -1, 152, -1, 316, 297, -1, -1, -1, + -1, -1, 97, -1, -1, -1, 265, 334, -1, -1, 105, -1, -1, 293, -1, -1, -1, 297, 297, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 307, -1, 318, -1, 307, 334, -1, 130, -1, -1, -1, -1, 315, 320, 137, -1, + 365, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 383, 152, 385, 318, -1, 388, -1, -1, -1, -1, + 387, -1, 356, 357, 397, -1, 360, -1, 353, -1, 397, 398, -1, -1, -1, 408, 383, -1, 385, -1, -1, + 388, -1, 416, -1, -1, -1, 372, -1, -1, 397, 356, 357, -1, -1, 360, 429, 391, -1, -1, 394, 408, + -1, -1, -1, 438, -1, -1, 402, 416, 443, -1, 398, 398, -1, 448, 410, 398, -1, 413, -1, 448, 429, + -1, -1, -1, 391, -1, -1, 394, -1, 438, -1, 234, -1, -1, 443, 402, -1, 433, -1, 448, 307, -1, + -1, 410, -1, 441, 413, -1, -1, 436, -1, -1, -1, -1, -1, 451, -1, -1, 454, -1, 448, 448, -1, + 459, -1, -1, 433, -1, -1, -1, 505, 467, -1, -1, 441, -1, -1, -1, -1, -1, 476, 510, -1, -1, 451, + -1, -1, 454, 471, -1, -1, -1, 459, -1, 490, -1, 505, 484, -1, -1, 467, -1, 485, 491, 307, -1, + -1, 503, -1, 476, -1, -1, 315, 0, 1, 2, 3, 4, 5, 6, 7, 8, 510, 10, 11, 12, -1, 510, -1, 512, + -1, 398, -1, 20, 21, 22, 503, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, + 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, + 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 398, 83, 84, -1, -1, + 87, -1, -1, -1, 471, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, 485, 106, -1, + 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, + 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, -1, -1, 153, -1, 471, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, -1, + -1, 485, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, + 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, + 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, + -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, + -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, -1, 326, + 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, + 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, + 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, + 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, + 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + -1, 445, 446, -1, -1, -1, -1, -1, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, + -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, + 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, + 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, + -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, -1, 31, 32, -1, 34, 35, 36, 37, -1, + 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, -1, -1, 60, -1, -1, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, -1, -1, + 87, -1, 89, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, + 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, + -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, -1, 146, 147, 148, + 149, -1, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, + 170, 171, 172, 173, -1, 175, -1, -1, -1, 179, -1, -1, 182, -1, 184, 185, 186, -1, 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, -1, 214, -1, 216, 217, 218, 219, 220, 221, 222, 223, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, -1, 246, -1, 248, 249, + -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, -1, 269, + 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, -1, -1, 296, -1, 298, 299, 300, -1, -1, 303, -1, -1, 306, -1, 308, 309, + 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, -1, + 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, 97, 344, 345, 346, -1, 348, -1, + 350, 351, 352, 107, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, + 369, 370, 371, 126, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, + 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, + 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, -1, 443, -1, + 445, 446, -1, -1, -1, 204, 1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, + 18, 466, 467, 18, 469, -1, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, + 485, 486, 487, 488, 489, 43, 44, 492, 493, 494, 495, -1, 497, 498, 499, 500, 501, 502, 503, + 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, -1, -1, -1, -1, 18, -1, -1, + 18, 80, -1, -1, 530, 531, 532, 533, -1, -1, -1, -1, -1, 293, -1, -1, -1, 297, 97, -1, 41, 97, + -1, -1, -1, 43, 44, -1, -1, 105, -1, -1, -1, 105, 113, -1, -1, -1, -1, 81, -1, -1, -1, -1, -1, + -1, -1, 126, -1, -1, -1, -1, -1, -1, 130, 97, -1, -1, 130, -1, 81, 137, 80, -1, -1, 137, -1, + -1, -1, -1, 149, -1, -1, 94, -1, -1, 152, -1, -1, 97, 152, -1, -1, -1, 126, -1, -1, -1, -1, + 168, -1, -1, -1, -1, -1, 113, -1, -1, 140, -1, 53, -1, -1, -1, -1, 126, 59, -1, 126, 127, -1, + -1, -1, 155, 193, -1, -1, -1, 398, 161, -1, 74, -1, 165, -1, -1, 168, -1, -1, -1, -1, 149, 174, + -1, -1, -1, -1, -1, 180, 53, 219, 183, -1, -1, 97, 59, -1, -1, -1, -1, 168, -1, 105, 174, 107, + -1, -1, -1, 234, -1, 74, -1, 234, -1, -1, 244, -1, -1, 448, -1, -1, 213, -1, 215, -1, 193, -1, + 198, -1, -1, -1, -1, -1, 97, -1, -1, -1, -1, -1, -1, -1, 105, -1, 107, -1, -1, -1, -1, -1, -1, + -1, 219, -1, -1, -1, -1, -1, -1, 250, -1, -1, 491, 126, -1, 293, -1, -1, -1, 297, 172, -1, -1, + -1, -1, 242, -1, 244, 507, -1, -1, 510, 307, -1, -1, -1, 307, -1, -1, 259, 315, -1, -1, 260, + 315, -1, 266, 322, -1, -1, -1, 271, 204, -1, 332, -1, 334, -1, -1, 172, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 312, -1, 293, -1, 316, 293, -1, -1, -1, 297, 322, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 204, -1, -1, -1, -1, -1, -1, -1, -1, -1, 379, -1, -1, -1, 383, -1, 385, -1, -1, + 388, 331, 387, -1, -1, 332, 387, 334, -1, 397, 398, -1, -1, 398, -1, -1, -1, 398, -1, -1, 408, + -1, -1, -1, -1, -1, -1, -1, 416, -1, -1, -1, -1, -1, -1, 297, 387, -1, -1, -1, -1, 429, -1, -1, + -1, 307, -1, 398, -1, -1, 438, -1, 379, -1, 384, 443, 383, -1, 385, -1, 448, 388, -1, -1, -1, + -1, -1, -1, -1, -1, 397, 398, -1, -1, 297, -1, 464, -1, -1, -1, 410, 408, -1, -1, 307, -1, 471, + -1, -1, 416, 471, 353, -1, -1, -1, -1, -1, 448, -1, -1, 485, 431, 429, -1, 485, -1, -1, -1, -1, + -1, 372, 438, -1, 464, -1, -1, 443, 505, 448, -1, -1, 448, -1, -1, -1, 510, -1, 512, -1, 510, + 353, 512, 483, -1, -1, -1, 398, 464, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 372, 10, 11, 12, -1, + -1, -1, 507, 487, 509, 510, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, 398, + 36, 37, 505, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + -1, -1, -1, 62, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, -1, + 484, 83, 84, 448, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, + 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, 484, 122, 123, + 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, 163, + 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, + 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, + -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, + -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, + 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, + 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, -1, + 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, + 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, + 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, -1, 454, 455, 456, 457, 458, + 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, + 479, 480, 481, 482, -1, 484, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, + 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, + 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, + 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, + 55, 56, 57, 58, -1, -1, -1, 62, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, + 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, + 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, + 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, + -1, 184, 185, 186, 187, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, + -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, + 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, + -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, + -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, + 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, + -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, + 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, + 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, -1, 454, 455, 456, 457, + 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, + -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, + 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, + 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, + 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, + 55, 56, 57, 58, -1, -1, -1, 62, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, + 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, + 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, + 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, + -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, + -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, + 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, + -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, + -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, + 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, + -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, + 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, + 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, -1, 454, 455, 456, 457, + 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, + -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, + 498, -1, 500, 5, 502, 503, 504, 505, -1, 11, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 18, -1, -1, -1, -1, + -1, -1, -1, -1, 105, -1, -1, -1, -1, 32, -1, -1, -1, -1, 57, 35, -1, -1, 41, -1, 43, 81, -1, + -1, -1, -1, 5, -1, -1, 130, -1, -1, 11, -1, -1, -1, 137, 97, -1, -1, -1, 5, -1, -1, -1, -1, -1, + 11, -1, -1, 73, 152, -1, -1, -1, -1, -1, 80, 81, -1, -1, -1, -1, 83, -1, -1, 126, -1, -1, -1, + 113, 94, -1, -1, 97, 118, -1, -1, 57, -1, 140, -1, 125, -1, 127, -1, -1, -1, 131, 97, -1, 111, + -1, 57, -1, 155, -1, 105, -1, -1, -1, 161, 145, 126, -1, 165, 126, -1, 168, 132, -1, -1, 132, + -1, 174, -1, -1, -1, 138, 162, 180, -1, 130, 183, -1, -1, 149, -1, -1, 137, -1, -1, -1, 234, + 113, -1, -1, -1, -1, 118, -1, -1, 162, -1, 152, 168, 125, 167, -1, -1, -1, 174, 131, 213, 118, + 215, -1, -1, -1, 202, -1, 125, -1, -1, 184, 188, -1, 131, -1, -1, 193, -1, -1, -1, -1, 198, -1, + -1, -1, -1, -1, -1, -1, 162, -1, -1, -1, -1, -1, -1, 250, -1, -1, 253, -1, -1, 219, -1, 162, + 242, -1, -1, -1, -1, -1, -1, 307, -1, -1, -1, -1, -1, -1, -1, 315, 238, -1, -1, -1, -1, -1, + 244, -1, 202, -1, -1, -1, -1, -1, -1, -1, -1, -1, 256, -1, -1, 259, -1, 202, -1, 260, -1, -1, + 266, -1, -1, -1, -1, 271, -1, 293, -1, 312, -1, 297, -1, 316, -1, -1, -1, -1, -1, 322, -1, -1, + -1, -1, 310, -1, -1, 293, -1, -1, -1, 297, -1, -1, 320, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 307, -1, 332, -1, -1, -1, -1, -1, -1, -1, 398, -1, 307, -1, -1, -1, -1, -1, -1, -1, -1, 331, + 332, -1, 334, -1, -1, 293, -1, -1, -1, 297, -1, -1, -1, -1, -1, -1, -1, -1, 387, -1, 293, -1, + 310, -1, 297, 342, -1, 379, -1, 398, 382, 383, 320, -1, 363, -1, -1, 310, -1, -1, -1, -1, -1, + -1, 332, -1, -1, 320, -1, -1, -1, 383, 384, 385, 386, -1, 388, -1, -1, 332, -1, 471, -1, -1, + 416, 397, 398, -1, -1, -1, -1, -1, -1, -1, -1, 485, 408, -1, 410, 448, -1, 398, -1, -1, 416, + -1, -1, -1, -1, -1, -1, 379, -1, 462, 382, 383, -1, 429, -1, 431, 510, -1, 512, -1, -1, -1, + 438, -1, -1, 382, 383, 443, -1, -1, 483, -1, 448, -1, -1, 448, -1, -1, 454, -1, -1, 457, -1, + -1, 416, -1, -1, -1, 464, -1, -1, 467, -1, -1, 507, -1, 509, 510, 494, 416, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 471, 487, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 485, 10, 11, 12, -1, 505, + -1, -1, -1, 509, 507, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, -1, 31, 32, -1, 34, 35, 36, 37, + -1, 39, 40, 41, 42, 43, 44, 45, -1, 494, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, -1, -1, 60, + -1, 494, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, + 84, -1, -1, 87, -1, 89, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, + 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, + -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, -1, + 146, 147, 148, 149, -1, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, + 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, -1, -1, 179, -1, -1, 182, -1, 184, 185, + 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, + 205, 206, -1, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, -1, + 246, -1, 248, 249, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, + 266, 267, -1, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, -1, 296, -1, 298, 299, 300, -1, -1, 303, -1, -1, + 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, 325, + -1, 327, 328, -1, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, + 346, -1, 348, -1, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, + -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, -1, 399, 400, 401, 402, 403, -1, + 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, -1, + 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, + 463, -1, -1, 466, 467, -1, 469, -1, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, + -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, -1, 497, 498, -1, 500, 501, 502, + 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, + -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, + 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, + 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, + 87, -1, -1, -1, -1, -1, 93, 94, 95, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, + 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, + -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, -1, -1, -1, + 170, 171, 172, 173, -1, 175, 176, 177, 178, 179, -1, 181, 182, -1, 184, 185, 186, -1, 188, 189, + 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, + 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, 247, 248, + -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, -1, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, -1, 303, 304, -1, 306, -1, 308, + 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, + 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, + 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, + 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, + 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, + 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + -1, 445, 446, -1, -1, 449, 450, -1, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, + -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, + -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, + 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, + -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, + 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, + -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, + -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, + -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, + -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, + -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, + 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, + 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, + -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, + -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, -1, 326, + 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, + 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, + 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, + 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, + 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + -1, 445, 446, -1, -1, -1, -1, -1, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, + -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, + 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, + 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, + -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, + 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, + 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, + 87, -1, 89, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, + 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, + -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, -1, -1, -1, + 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, + 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, + 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, + -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, + 309, 310, 311, -1, 313, 314, 315, -1, 317, 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, + 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, + 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, + 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, + 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, + 446, -1, -1, -1, -1, 451, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, + 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, + 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, + -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, + -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, + 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, + 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, + -1, 89, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, + 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, + 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, -1, -1, -1, + 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, + 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, + 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, + -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, + 309, 310, 311, -1, 313, 314, 315, -1, 317, 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, + 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, + 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, + 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, + 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, + 446, -1, -1, -1, -1, 451, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, + 466, 467, 468, 469, 470, -1, 472, 473, 6, 475, 476, 477, -1, 479, 480, 481, 482, 6, 18, 485, + 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, + 6, 41, 508, -1, -1, 511, 512, 81, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, -1, 35, -1, 15, -1, -1, -1, 73, -1, -1, 44, -1, 24, 81, + -1, -1, 73, -1, -1, -1, 81, 33, -1, -1, 126, -1, 94, -1, -1, 97, -1, -1, -1, -1, -1, -1, -1, + -1, 140, 73, 97, -1, -1, -1, 105, -1, -1, 59, -1, 83, -1, 18, -1, 155, -1, -1, -1, -1, 126, + 161, 126, -1, -1, 165, -1, 126, 168, 133, -1, 126, -1, -1, 174, -1, 41, -1, 133, 111, 180, -1, + -1, 183, -1, 95, 35, 97, 154, -1, -1, -1, -1, -1, 126, -1, -1, -1, -1, -1, 132, 133, 161, -1, + -1, -1, 138, -1, 174, -1, -1, -1, -1, 213, -1, 174, -1, -1, -1, -1, -1, 187, 154, -1, 188, -1, + -1, -1, -1, 94, 162, -1, 198, 188, 83, 167, 168, -1, 202, -1, -1, 151, -1, -1, -1, -1, -1, 202, + -1, -1, 250, -1, 184, -1, 218, 187, 188, -1, -1, -1, -1, -1, 111, 218, -1, -1, 176, -1, -1, -1, + 202, 181, -1, -1, -1, -1, -1, 126, -1, -1, -1, 191, -1, 132, -1, -1, 218, -1, -1, 138, -1, -1, + -1, 259, -1, -1, -1, -1, -1, -1, 266, -1, -1, -1, -1, 271, -1, -1, 218, 219, 220, -1, 312, 162, + 280, -1, 316, -1, 167, -1, -1, -1, 322, -1, 256, -1, -1, 293, 260, -1, -1, -1, -1, 198, -1, + 184, -1, 247, -1, 249, -1, -1, -1, -1, -1, -1, -1, -1, 280, -1, -1, 261, -1, -1, -1, -1, -1, + 316, -1, -1, -1, -1, -1, -1, -1, 331, -1, -1, -1, -1, 280, -1, -1, -1, -1, 307, -1, 341, -1, + -1, 339, -1, -1, -1, -1, -1, 341, 387, -1, -1, 300, 301, 302, -1, 259, -1, 362, -1, 398, -1, + 332, 266, -1, -1, -1, -1, 271, -1, 318, 341, -1, 321, 322, -1, -1, -1, -1, -1, 384, -1, -1, -1, + -1, 333, -1, -1, -1, 391, 293, -1, 362, 363, 398, -1, -1, -1, 391, -1, -1, -1, -1, -1, -1, -1, + 410, -1, -1, -1, 448, -1, 416, 361, 362, -1, -1, -1, -1, -1, 307, 391, -1, -1, -1, -1, -1, 431, + 331, -1, -1, -1, 402, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 445, 448, 483, 448, -1, -1, -1, + 398, 448, 445, -1, -1, 448, -1, 454, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 507, -1, 509, + 510, 421, -1, 445, 363, -1, 448, -1, 482, 384, -1, 487, 454, -1, -1, 457, 490, 482, -1, 493, + -1, -1, 491, 398, -1, 490, -1, -1, 493, 449, 450, -1, -1, -1, 510, 410, -1, -1, 514, -1, 482, + 510, -1, 512, -1, -1, -1, -1, 490, -1, -1, 493, -1, -1, 474, -1, 431, -1, -1, -1, 502, -1, -1, + -1, -1, 507, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, + 448, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, + 487, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, 62, 63, 64, 65, 66, 67, 68, + -1, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, -1, 507, 83, 84, -1, -1, 87, -1, -1, -1, -1, + -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, + 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, + 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, + 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, + 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, + 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, + 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, + -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, + 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, + 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, + 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, + -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, + 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, + -1, -1, -1, -1, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, 464, -1, 466, 467, + 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, + 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, + 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, + -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, + 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, -1, -1, 87, 88, 89, + -1, -1, 92, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, + 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, + 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, + 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 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, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, + 248, 249, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, -1, -1, 303, 304, -1, 306, -1, + 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, + 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, + 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, + 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, + 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, + 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, + -1, -1, 485, 486, 487, 488, 489, 490, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, + 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, + 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, + 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, + -1, -1, 62, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, + 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, + 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, + -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, + 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, + 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, + 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, + 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, + -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, + 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, + 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, + 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, + 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, + 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, + 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, -1, 454, 455, 456, 457, 458, + 459, -1, 461, 462, 463, 464, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, + 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, + -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 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, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 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, -1, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 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, -1, + -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 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, -1, 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, 396, 397, 398, 399, 400, 401, 402, 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, 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, -1, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, 514, 515, 516, 517, -1, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 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, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 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, -1, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 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, -1, -1, -1, -1, + -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, 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, 396, 397, 398, 399, 400, 401, 402, 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, 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, -1, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, -1, 514, 515, 516, 517, -1, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 15, -1, -1, -1, -1, -1, -1, -1, -1, 24, -1, + 18, -1, -1, -1, 97, -1, -1, 33, -1, 53, -1, -1, 105, -1, 32, 59, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 43, -1, 81, -1, -1, 74, -1, 5, 59, -1, -1, -1, 130, 11, -1, -1, -1, -1, 97, 137, -1, + -1, -1, -1, -1, -1, -1, -1, 97, -1, 73, -1, -1, -1, 152, -1, 105, 80, 107, -1, -1, -1, -1, -1, + 95, 96, -1, 126, -1, -1, -1, -1, -1, -1, 97, -1, -1, 126, -1, 57, -1, 140, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 155, -1, -1, -1, -1, -1, 161, 126, -1, -1, 165, -1, -1, + 132, -1, -1, -1, -1, -1, 174, -1, -1, -1, -1, 151, 180, -1, 172, 183, -1, 149, 53, -1, -1, -1, + -1, -1, 59, -1, -1, 234, -1, -1, -1, 118, -1, 68, -1, -1, 176, -1, 125, 74, -1, 181, -1, -1, + 131, 213, 204, -1, -1, -1, -1, 191, -1, -1, -1, -1, 188, -1, -1, -1, -1, 193, 97, -1, -1, -1, + -1, -1, -1, -1, 105, -1, 107, -1, -1, 162, -1, -1, 218, 219, 220, -1, 250, -1, -1, -1, -1, -1, + -1, -1, -1, 126, -1, -1, -1, -1, -1, -1, -1, -1, 307, -1, -1, -1, -1, -1, 238, 247, 315, 249, + -1, -1, 244, -1, -1, 202, -1, -1, -1, -1, -1, 261, -1, -1, 256, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 293, -1, 172, -1, 297, 280, -1, -1, -1, 312, -1, -1, -1, 316, 307, -1, -1, -1, -1, 322, + -1, -1, -1, -1, -1, 300, 301, 302, -1, -1, 297, -1, -1, -1, 204, -1, -1, -1, -1, -1, -1, -1, + -1, 318, -1, -1, 321, -1, -1, -1, -1, -1, -1, -1, -1, -1, 398, -1, 333, -1, 353, -1, -1, -1, + -1, 332, -1, 334, -1, -1, -1, 293, -1, -1, -1, 297, -1, -1, -1, 372, -1, -1, -1, -1, 387, -1, + 361, 362, 310, -1, -1, 366, -1, -1, -1, 398, -1, -1, 320, -1, -1, -1, -1, -1, -1, 398, -1, -1, + -1, -1, 332, -1, -1, -1, -1, -1, 383, -1, 385, 386, -1, 388, -1, -1, -1, -1, -1, 297, -1, 471, + 397, 398, -1, -1, -1, -1, -1, 307, -1, -1, -1, 408, -1, 485, -1, 448, 421, -1, -1, 416, 320, + -1, -1, -1, -1, 448, -1, 379, -1, -1, 382, 383, 429, -1, -1, -1, -1, -1, 510, -1, 512, 438, -1, + -1, 449, 450, 443, -1, -1, -1, 483, 448, -1, 353, -1, -1, -1, 454, -1, -1, 457, 484, -1, -1, + 416, -1, -1, -1, 491, 474, 467, -1, 372, -1, 507, -1, 509, 510, -1, -1, -1, -1, -1, -1, 507, + -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 398, 10, 11, 12, -1, -1, -1, -1, -1, -1, 505, 20, + 21, 22, 509, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, + 44, 45, -1, -1, 48, 49, 50, 51, 52, 494, 54, 55, 56, 57, 58, 448, 60, -1, -1, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, -1, -1, 87, -1, 89, -1, + -1, -1, 93, 94, 484, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, + 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, + 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, + -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, + 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 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, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, 249, + -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, -1, -1, 303, 304, -1, 306, -1, 308, 309, + 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, + 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, + 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, + 445, 446, -1, -1, -1, -1, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, + -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, + 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, + 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, + -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, + -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, + -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, + -1, 87, -1, 89, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, + 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, + 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, -1, -1, + -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, + 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, + 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, + 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, + 308, 309, 310, 311, -1, 313, 314, 315, -1, 317, 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, + -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, + 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, + 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, + 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, + 446, -1, -1, -1, -1, 451, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, + 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, + 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, + -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, + -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, + 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, + 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, + -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, + 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, 126, -1, 128, -1, + 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, -1, -1, -1, + 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, + 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, + 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, + -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, + 309, 310, 311, -1, 313, 314, 315, 316, -1, 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, + 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, + 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, + 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, + 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, + 446, -1, 448, -1, -1, -1, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, + 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, + 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, + -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, + -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, + 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, + 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, + -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, + 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, + 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, -1, -1, -1, + 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, + 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, + 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, + -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, + 309, 310, 311, -1, 313, 314, 315, 316, -1, 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, + 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, + 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, + 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, + 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, + 446, -1, -1, -1, -1, -1, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, + 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, + 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, + -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, + -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, + 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, + 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, + -1, -1, -1, -1, 93, 94, -1, -1, 97, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, + 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, 127, 128, -1, + 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, -1, 168, -1, + 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, + 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, + 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, 242, -1, 244, 245, -1, -1, 248, + -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, + 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, + 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, + 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, + 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, + 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, + 446, -1, -1, -1, -1, -1, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, 464, -1, + 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, + 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, + -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, + -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, -1, 39, + 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, -1, -1, 87, + -1, 89, -1, -1, -1, 93, 94, -1, -1, 97, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, + 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, 127, 128, -1, + 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, 168, + 169, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 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, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, 242, -1, 244, 245, + 246, -1, 248, 249, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, -1, -1, 303, 304, -1, + 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, + 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, + 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, + 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, 453, 454, 455, 456, 457, 458, 459, + -1, 461, 462, 463, 464, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, + 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, + 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, -1, -1, -1, -1, 17, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, 55, + 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, + 80, -1, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, + 103, 104, 105, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, 120, -1, + 122, 123, 124, 125, 126, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, -1, 164, -1, 166, 167, 168, 169, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, 180, + -1, 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, -1, 214, -1, 216, 217, -1, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, -1, 302, 303, 304, -1, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, -1, -1, + 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, + 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, 450, -1, + 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, + 471, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, 484, 485, 486, 487, 488, 489, + 490, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, 507, 508, + 509, -1, 511, 512, -1, -1, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, 261, 262, 263, + 264, 265, 266, 267, 268, 269, -1, 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, -1, 329, 330, 331, 332, 333, 334, -1, 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, 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, 402, 403, -1, 405, 406, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, -1, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, + 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, -1, + 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, 17, -1, -1, 20, 21, 22, + -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, 105, 106, -1, 108, 109, 110, 111, 112, 113, 114, + -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, + 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, + 154, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, + -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 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, + -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, 242, -1, 244, 245, 246, -1, 248, 249, -1, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, -1, 306, 307, 308, 309, + 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, + 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + -1, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, -1, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + -1, 445, 446, 447, -1, -1, -1, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, + -1, 15, 466, 467, 468, 469, 470, 471, 472, 473, 24, 475, 476, 477, -1, 479, 480, 481, 482, 33, + 484, 485, 486, 487, 488, 489, 490, 81, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, + 503, 504, 505, -1, 97, 508, 59, -1, 511, 512, -1, -1, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, -1, -1, 126, -1, -1, -1, -1, 5, -1, -1, + -1, 95, -1, 11, -1, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 26, -1, -1, 155, -1, + -1, -1, -1, -1, 161, -1, -1, -1, 165, 53, -1, -1, -1, -1, -1, 59, 53, 174, -1, -1, -1, -1, 59, + -1, 68, -1, 57, -1, -1, -1, 74, -1, -1, -1, 151, -1, -1, 74, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 97, -1, -1, 213, -1, -1, 176, 97, 105, -1, 107, 181, -1, -1, -1, + 105, -1, 107, -1, -1, -1, 191, -1, -1, -1, -1, -1, -1, -1, 126, -1, -1, 116, -1, 118, -1, -1, + -1, -1, -1, 250, 125, -1, -1, -1, -1, -1, 131, 218, 219, 220, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 172, -1, 247, 162, 249, -1, -1, + 172, -1, -1, -1, -1, -1, -1, -1, -1, 261, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 312, -1, -1, + -1, 316, 204, -1, -1, 280, -1, 322, -1, 204, -1, -1, -1, 202, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 300, 301, 302, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, -1, + -1, 321, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 333, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 387, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 398, -1, -1, 361, 362, -1, -1, -1, + -1, -1, -1, -1, 297, -1, -1, -1, -1, -1, -1, 297, -1, 293, 307, -1, -1, 297, -1, -1, -1, 307, + -1, -1, -1, -1, -1, 320, -1, -1, 310, -1, -1, -1, -1, -1, -1, -1, -1, -1, 320, -1, 448, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 332, -1, -1, 421, -1, -1, -1, -1, 353, -1, -1, -1, -1, -1, -1, 353, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 483, -1, 372, -1, -1, -1, 449, 450, -1, 372, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 379, -1, -1, 382, 383, 510, 398, -1, -1, 474, -1, -1, -1, + 398, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, 17, -1, 416, + 20, 21, 22, 506, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 448, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 484, 75, 76, 77, 78, 79, 80, 484, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, -1, -1, 494, 98, 99, 100, 101, 102, 103, 104, 105, 106, 510, 108, 109, 110, + 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, + 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, -1, 152, 153, 154, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, + 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 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, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, + 248, 249, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, -1, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, -1, + 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, -1, 344, + 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, + 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 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, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, -1, 451, 452, 453, 454, 455, 456, 457, 458, 459, + -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, 471, 472, 473, -1, 475, 476, 477, -1, 479, + 480, 481, 482, -1, 484, 485, 486, 487, 488, 489, 490, -1, 492, 493, 494, 495, 496, 497, 498, + -1, 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, 510, 511, 512, -1, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, + 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, 17, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, + 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, + 79, 80, -1, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, -1, 98, 99, 100, 101, + 102, 103, 104, 105, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, + 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, -1, 156, 157, 158, 159, 160, + -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, + -1, 182, -1, 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, -1, 214, -1, 216, 217, -1, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, 249, -1, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, -1, 302, 303, 304, -1, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, + 318, 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, + 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, + 375, 376, 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, 402, 403, 404, 405, 406, 407, 408, -1, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, -1, -1, + 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, 15, 466, 467, 468, 469, 470, + 471, 472, 473, 24, 475, 476, 477, -1, 479, 480, 481, 482, 33, 484, 485, 486, 487, 488, 489, + 490, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, -1, 508, 59, + -1, 511, 512, -1, -1, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, -1, -1, -1, -1, -1, -1, -1, -1, -1, 15, -1, 95, -1, 97, -1, -1, -1, + 97, 24, 81, -1, -1, -1, -1, -1, 105, -1, 33, -1, -1, -1, -1, -1, -1, -1, 97, -1, -1, -1, -1, + -1, -1, -1, 127, -1, -1, -1, -1, -1, -1, 130, -1, -1, 59, -1, -1, 140, 137, -1, -1, -1, -1, -1, + -1, 126, 145, -1, 151, -1, -1, -1, 155, 152, -1, -1, -1, -1, 161, 140, -1, -1, -1, -1, -1, -1, + 165, -1, -1, -1, 95, -1, 97, 176, 155, -1, -1, -1, 181, -1, 161, -1, -1, -1, 165, -1, -1, 168, + 191, -1, -1, -1, -1, 174, -1, -1, -1, -1, -1, 180, -1, -1, 183, -1, -1, -1, -1, -1, -1, -1, + 213, -1, -1, -1, -1, 218, 219, 220, -1, -1, -1, -1, -1, -1, -1, -1, 151, -1, -1, -1, -1, -1, + 213, -1, 215, 234, -1, -1, -1, 242, -1, -1, -1, -1, 247, -1, 249, 250, -1, -1, -1, 176, -1, -1, + -1, -1, 181, -1, 261, -1, -1, -1, -1, -1, -1, -1, 191, -1, -1, 250, -1, -1, -1, -1, -1, -1, -1, + 280, -1, 260, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, 219, 220, -1, 300, 301, + 302, -1, -1, -1, -1, -1, -1, -1, -1, 307, 312, -1, -1, -1, -1, -1, 318, 315, -1, 321, 322, -1, + -1, 247, -1, 249, -1, -1, -1, -1, -1, 333, 312, -1, -1, -1, 316, 261, -1, -1, -1, -1, 322, -1, + 342, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 280, -1, -1, 361, 362, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 300, 301, 302, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 318, -1, 398, 321, -1, -1, 398, -1, -1, -1, -1, -1, -1, 387, -1, 333, -1, -1, + -1, -1, -1, -1, -1, -1, 398, 421, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 361, 362, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, -1, -1, -1, 474, 471, 398, -1, -1, -1, -1, -1, -1, + 483, -1, -1, -1, -1, -1, 485, -1, -1, -1, -1, -1, -1, -1, -1, -1, 421, -1, -1, -1, -1, -1, 483, + -1, -1, -1, -1, -1, -1, -1, -1, 510, -1, 512, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, + 507, -1, 509, 510, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 474, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, 128, 129, 130, + 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, -1, 261, 262, 263, + 264, 265, 266, 267, 268, 269, -1, 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, -1, 329, 330, 331, 332, 333, 334, -1, 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, 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, 402, 403, -1, 405, 406, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, -1, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, + 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, -1, + 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, -1, 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, -1, 128, 129, 130, 131, 132, 133, 134, + 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + -1, 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, -1, 261, 262, 263, 264, 265, 266, 267, + 268, 269, -1, 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 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, -1, -1, 329, 330, 331, 332, 333, 334, -1, 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, 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, + 402, 403, -1, 405, 406, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, -1, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, 512, -1, -1, 515, 516, + 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, -1, 532, 533, 0, 1, 2, 3, + 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, 17, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, + 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, -1, 98, 99, + 100, 101, 102, 103, 104, 105, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, + 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, + 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, -1, 156, 157, + 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, 177, + 178, 179, -1, -1, 182, -1, 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, -1, 214, -1, + 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, 249, -1, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, + -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, -1, 306, 307, 308, 309, 310, 311, -1, + 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, + 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, + 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + -1, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, + 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, + 447, -1, -1, -1, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, + 467, 468, 469, 470, 471, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, 484, 485, + 486, 487, 488, 489, 490, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, 504, + 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, + -1, -1, 17, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, -1, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, + 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, + -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, -1, 152, 153, 154, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, + 169, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 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, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, + 246, -1, 248, 249, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, -1, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, -1, -1, 303, + 304, -1, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, + 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, -1, -1, 452, 453, 454, 455, 456, 457, + 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, 471, 472, 473, -1, 475, 476, 477, + -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, 490, -1, 492, 493, 494, 495, 496, 497, + 498, -1, 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, + 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, 17, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, + 54, 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, + 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, -1, 98, 99, 100, + 101, 102, 103, 104, 105, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, + -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, + -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, -1, 156, 157, 158, + 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, 177, 178, + 179, -1, -1, 182, -1, 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, -1, 214, -1, 216, + 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, 249, -1, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, + -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, -1, 306, 307, 308, 309, 310, 311, -1, 313, + 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, + -1, 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, + -1, -1, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, + 469, 470, 471, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, 484, 485, 486, 487, + 488, 489, 490, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, -1, + 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, 17, + -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, 105, 106, -1, 108, 109, 110, + 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, + 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, -1, 152, 153, 154, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, 168, 169, + 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 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, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, 243, 244, 245, 246, + -1, 248, 249, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, -1, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, + -1, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, -1, + 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, 362, + 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, -1, -1, 452, 453, 454, 455, 456, 457, 458, + 459, -1, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 475, 476, 477, -1, + 479, 480, 481, 482, -1, 484, 485, 486, 487, 488, 489, 490, -1, 492, 493, 494, 495, 496, 497, + 498, -1, 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, + 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, 17, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, + 54, 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, + 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, -1, 98, 99, 100, + 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, + -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, -1, 156, 157, 158, 159, + 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, + -1, -1, 182, -1, 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, -1, 214, -1, 216, 217, -1, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, 249, -1, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, + 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + -1, 298, 299, 300, -1, -1, 303, 304, -1, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, -1, + -1, 318, 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, 334, 335, 336, + 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, + 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, -1, -1, 452, + 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, 471, + 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, 490, -1, + 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, + 512, -1, -1, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 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, -1, 128, 129, 130, 131, 132, + 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, -1, 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, -1, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, -1, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, -1, 329, 330, 331, 332, 333, 334, -1, 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, 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, 402, 403, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, -1, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, 512, -1, -1, + 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, 17, -1, -1, 20, 21, 22, -1, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, + 118, 119, -1, -1, 122, 123, 124, 125, 126, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, -1, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + -1, 177, 178, 179, 180, -1, 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, -1, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, -1, 306, 307, 308, 309, 310, + 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, + 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, + 368, 369, 370, 371, -1, 373, 374, 375, 376, 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, 402, 403, 404, 405, + 406, 407, 408, -1, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + -1, 445, 446, 447, 448, -1, -1, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, + -1, -1, 466, 467, 468, 469, 470, 471, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, + 503, 504, 505, -1, 507, 508, 509, 510, 511, 512, -1, -1, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, + 11, 12, -1, -1, -1, -1, 17, -1, -1, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, + -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, 102, 103, 104, + -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, + 125, 126, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, -1, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, -1, 177, 178, 179, 180, -1, 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, -1, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, -1, -1, -1, 244, 245, 246, -1, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, + 299, 300, -1, -1, 303, 304, -1, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, + 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, + 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, + 376, 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, 402, 403, 404, 405, 406, 407, 408, -1, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, -1, -1, -1, + 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, + 471, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, 483, -1, 485, 486, 487, 488, 489, + 490, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, 507, 508, + 509, 510, 511, 512, -1, -1, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, + -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, + 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, + 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, 81, -1, 83, 84, -1, -1, 87, -1, -1, + -1, -1, -1, 93, 94, -1, -1, 97, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, + 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, 126, -1, 128, -1, 130, + 131, 132, 133, -1, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, -1, -1, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, -1, 164, 165, 166, -1, 168, -1, + 170, 171, 172, 173, 174, 175, -1, 177, 178, 179, 180, -1, 182, 183, 184, 185, 186, -1, 188, + 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, + 248, -1, 250, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, + 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, -1, 322, 323, 324, -1, 326, + 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, + 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, + 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, -1, + 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, + 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, + 443, -1, 445, 446, -1, 448, -1, -1, -1, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, + 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, + 483, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, + 503, 504, 505, -1, 507, 508, 509, 510, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 12, -1, -1, -1, 16, 17, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, + 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, 105, + 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, + -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, -1, 152, 153, 154, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, + 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 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, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, + -1, 244, 245, 246, -1, 248, 249, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, -1, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, + 302, 303, 304, -1, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, + -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, + 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, 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, -1, 445, 446, 447, -1, -1, -1, -1, 452, 453, 454, 455, + 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, 471, 472, 473, -1, 475, + 476, 477, -1, 479, 480, 481, 482, -1, 484, 485, 486, 487, 488, 489, 490, -1, 492, 493, 494, + 495, 496, 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, 16, 17, -1, -1, 20, 21, 22, -1, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, + 118, 119, -1, -1, 122, 123, 124, 125, 126, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, -1, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + -1, 177, 178, 179, 180, -1, 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, -1, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, -1, 306, 307, 308, 309, 310, + 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, + 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, + 368, 369, 370, 371, -1, 373, 374, 375, 376, 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, 402, 403, 404, 405, + 406, 407, 408, -1, 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, + -1, 445, 446, 447, 448, -1, -1, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, + -1, -1, 466, 467, 468, 469, 470, 471, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, + 503, 504, 505, -1, 507, 508, 509, 510, 511, 512, -1, -1, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 81, -1, -1, 5, -1, -1, -1, -1, -1, + 11, -1, -1, 53, -1, -1, -1, 97, -1, 59, -1, 81, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 74, -1, -1, -1, -1, -1, 120, -1, 122, -1, -1, -1, 126, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, + 97, -1, -1, 140, -1, -1, -1, -1, 105, 126, 107, -1, -1, -1, -1, 152, -1, -1, 155, -1, -1, -1, + -1, 140, 161, -1, -1, -1, 165, 126, -1, 168, -1, -1, -1, -1, -1, 174, 155, -1, -1, -1, -1, 180, + 161, -1, 183, -1, 165, -1, -1, -1, -1, -1, -1, -1, -1, 174, -1, -1, 118, -1, -1, 180, -1, -1, + 183, 125, -1, -1, -1, -1, -1, 131, -1, 172, 213, -1, 215, -1, -1, -1, -1, -1, -1, -1, 223, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 213, -1, -1, -1, -1, -1, -1, -1, 162, -1, -1, 204, -1, -1, -1, + -1, -1, 250, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 250, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 202, -1, -1, -1, -1, -1, -1, -1, 289, 290, 291, 292, + -1, -1, -1, 296, 297, -1, -1, -1, -1, -1, -1, -1, -1, -1, 307, -1, -1, -1, -1, 312, -1, -1, -1, + 316, -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, 312, -1, -1, -1, 316, 297, + -1, -1, -1, -1, 322, -1, -1, -1, -1, 307, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 320, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 293, -1, -1, -1, 297, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 387, -1, 310, -1, -1, -1, 353, -1, -1, -1, -1, 398, 320, -1, -1, -1, -1, -1, -1, + -1, 387, -1, -1, -1, 332, 372, -1, -1, -1, -1, -1, 398, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 398, -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 379, -1, -1, 382, 383, -1, -1, -1, -1, -1, 448, -1, -1, 471, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 483, -1, 485, -1, -1, 448, -1, -1, -1, -1, -1, -1, 416, -1, + -1, -1, -1, -1, -1, -1, 483, -1, -1, -1, 507, -1, 509, 510, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 484, -1, -1, 16, 17, 509, 510, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, + 58, -1, 60, -1, 494, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, + 124, 125, 126, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + -1, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, -1, 177, 178, 179, 180, -1, + 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, -1, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, -1, 302, 303, 304, -1, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + -1, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, + 355, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, + 374, 375, 376, 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, 402, 403, 404, 405, 406, 407, 408, -1, 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, -1, 445, 446, 447, 448, -1, + -1, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, + 470, 471, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, 507, + 508, 509, 510, 511, 512, -1, 81, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 81, -1, -1, 5, -1, -1, -1, -1, -1, 11, 97, -1, -1, -1, -1, + -1, 97, -1, 105, -1, -1, -1, -1, -1, -1, 126, 127, -1, -1, -1, 97, -1, 95, -1, 97, -1, -1, -1, + 105, 140, -1, -1, 105, 130, -1, 126, -1, -1, -1, -1, 137, -1, -1, -1, 155, 57, -1, -1, -1, 140, + 161, -1, -1, 130, 165, 152, -1, 168, -1, -1, 137, -1, -1, 174, 155, -1, -1, -1, -1, 180, 161, + -1, 183, -1, 165, 152, -1, 168, 151, -1, -1, -1, -1, 174, -1, -1, -1, -1, -1, 180, -1, -1, 183, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 213, 176, -1, -1, 118, -1, 181, -1, -1, -1, -1, 125, -1, + 188, -1, -1, -1, 131, -1, -1, 213, -1, 215, -1, -1, -1, -1, -1, -1, 242, -1, -1, -1, -1, -1, + 234, -1, 250, -1, -1, -1, -1, -1, -1, 219, -1, -1, -1, 162, -1, -1, -1, -1, -1, -1, 234, -1, + 250, -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, -1, -1, -1, -1, 247, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 261, -1, 202, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 312, -1, -1, -1, + 316, -1, 280, -1, -1, 307, 322, -1, -1, -1, -1, -1, -1, 315, -1, -1, 312, -1, -1, 297, 316, -1, + -1, 301, -1, 307, 322, -1, -1, 307, -1, -1, -1, 315, -1, -1, -1, -1, -1, -1, 318, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 333, -1, -1, -1, -1, 342, -1, -1, -1, 342, -1, -1, + -1, -1, -1, -1, 387, -1, -1, -1, -1, 293, -1, -1, -1, 297, -1, 398, 361, 362, -1, -1, -1, -1, + -1, -1, 387, -1, 310, -1, -1, 398, -1, -1, -1, -1, -1, 398, 320, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 332, 398, -1, -1, -1, 398, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, -1, + -1, -1, -1, -1, -1, -1, 456, -1, 458, -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 379, -1, -1, 382, 383, 483, -1, 471, -1, 449, 450, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 485, -1, -1, -1, 483, -1, 471, -1, 507, -1, 509, 510, -1, 474, -1, -1, 416, -1, + -1, -1, 485, -1, -1, -1, -1, 510, -1, 512, 507, -1, 509, 510, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 510, -1, 512, 16, 17, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, + 58, -1, 60, -1, 494, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, + -1, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, + 104, 105, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, + 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, -1, 156, 157, 158, 159, 160, -1, 162, -1, + 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, + 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, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, + -1, -1, 244, 245, 246, -1, 248, 249, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, -1, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + -1, 302, 303, 304, -1, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, + -1, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, + 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, 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, -1, 445, 446, 447, -1, -1, -1, -1, 452, 453, 454, + 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, 471, 472, 473, -1, + 475, 476, 477, -1, 479, 480, 481, 482, -1, 484, 485, 486, 487, 488, 489, 490, -1, 492, 493, + 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, + -1, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, -1, 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, -1, 128, 129, 130, 131, 132, 133, 134, 135, + -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, + 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, -1, 261, 262, 263, 264, 265, 266, 267, 268, + 269, -1, 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 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, + -1, -1, 329, 330, 331, 332, 333, 334, -1, 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, 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, 402, + 403, -1, 405, 406, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, -1, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, 512, -1, -1, 515, 516, 517, + -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, + 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, 128, 129, 130, 131, 132, 133, 134, 135, -1, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, + -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 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, -1, 329, 330, + 331, 332, 333, 334, -1, 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, 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, 402, 403, -1, 405, 406, + -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, -1, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, + 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, + 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, 47, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, + -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, + -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, + 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, + -1, 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, + 185, 186, -1, 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, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, -1, + -1, 244, 245, 246, -1, 248, 249, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, -1, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, -1, + -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, 317, 318, 319, 320, -1, + -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, + 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, + 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, + 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, -1, -1, 452, 453, 454, 455, 456, + 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, + 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, 490, -1, 492, 493, 494, 495, 496, + 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, + 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, -1, + 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, + 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, -1, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, 271, + 272, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 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, -1, -1, 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, 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, 402, 403, 404, 405, + 406, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, -1, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, 512, -1, -1, 515, 516, 517, -1, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, 55, 56, 57, + 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, 128, 129, 130, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, -1, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 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, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, -1, -1, -1, -1, + -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, -1, 329, 330, 331, 332, 333, + 334, -1, 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, 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, 402, 403, -1, 405, 406, -1, 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, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, -1, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, -1, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 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, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 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, -1, -1, -1, -1, -1, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, 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, 396, 397, 398, 399, 400, 401, 402, 403, -1, 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, 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, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 3, 514, 515, 516, 517, 8, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, -1, -1, -1, -1, -1, -1, 15, -1, 81, 18, -1, 53, -1, 15, -1, 24, + -1, 59, -1, -1, -1, -1, 24, -1, 33, -1, -1, -1, -1, -1, -1, 33, 74, -1, -1, -1, 60, -1, 62, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, 126, 78, 97, -1, 59, -1, -1, -1, -1, -1, + 105, -1, 107, -1, 140, -1, -1, -1, -1, -1, -1, 98, -1, -1, -1, -1, -1, -1, -1, 155, -1, 126, + -1, 95, -1, 161, -1, -1, -1, 165, 95, 96, 97, -1, -1, -1, 123, -1, 174, -1, -1, 35, -1, -1, + 180, -1, -1, 183, -1, -1, -1, -1, 139, -1, -1, -1, -1, -1, -1, -1, -1, 148, -1, -1, -1, -1, -1, + 172, -1, -1, -1, -1, -1, -1, -1, -1, 163, 213, -1, 151, -1, -1, -1, 170, -1, -1, 151, -1, -1, + 83, -1, -1, -1, -1, -1, -1, -1, -1, -1, 204, -1, -1, -1, 97, 176, -1, -1, -1, -1, 181, -1, 176, + -1, 200, 250, -1, 181, 111, -1, 191, -1, -1, -1, -1, -1, -1, 191, -1, -1, -1, -1, -1, 126, -1, + -1, -1, -1, -1, 132, -1, -1, -1, -1, -1, 138, -1, 218, 219, 220, -1, -1, 238, 239, 218, 219, + 220, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 162, -1, -1, -1, -1, 167, -1, 247, 312, + 249, 265, -1, 316, -1, 247, -1, 249, -1, 322, -1, -1, 261, 184, -1, 297, -1, -1, -1, 261, -1, + -1, -1, -1, -1, 307, -1, -1, -1, -1, -1, 280, -1, -1, -1, -1, -1, -1, 280, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 300, 301, 302, -1, -1, -1, -1, 300, 301, 302, -1, -1, -1, -1, -1, + -1, -1, -1, 318, -1, 353, 321, -1, 387, -1, 318, -1, -1, 321, -1, -1, -1, -1, 333, 398, -1, -1, + -1, -1, 372, 333, 356, 357, -1, -1, 360, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 361, 362, -1, -1, 398, -1, -1, 361, 362, -1, -1, -1, -1, -1, -1, 391, -1, -1, 394, -1, + -1, -1, -1, 448, 307, -1, 402, -1, -1, -1, -1, -1, -1, -1, 410, -1, -1, 413, -1, -1, -1, -1, + -1, -1, 398, -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, -1, -1, 433, 483, -1, 421, -1, -1, -1, + -1, 441, -1, 421, -1, -1, -1, -1, -1, -1, -1, 451, -1, -1, 454, -1, 363, -1, 507, 459, 509, + 510, -1, -1, 449, 450, 484, -1, -1, -1, -1, 449, 450, 491, -1, -1, 476, -1, -1, -1, 0, 1, 2, 3, + 4, 5, 6, 7, 8, 474, 10, 11, 12, -1, -1, -1, 474, -1, -1, -1, 20, 21, 22, 503, 24, 25, 26, 27, + -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, + 52, -1, 54, 55, 56, 57, 58, -1, -1, 448, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, + 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, + 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, + 119, 507, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, + 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, + 159, 160, -1, 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, + 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, + -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, + 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, + 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, + 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, + 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, + 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, + 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, + 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, + 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, 451, 452, -1, 454, + 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, + 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, + 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, + 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, 17, 18, -1, 20, 21, 22, -1, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, -1, + 98, 99, 100, 101, 102, 103, 104, 105, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, + 118, 119, -1, -1, 122, 123, 124, 125, 126, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, + 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, -1, 156, + 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, + 177, 178, 179, -1, -1, 182, -1, 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, -1, 214, + -1, 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, 249, -1, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, -1, 306, 307, 308, 309, 310, 311, + -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, + 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, + 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, -1, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, + 446, 447, 448, -1, -1, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, + 466, 467, 468, 469, 470, 471, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, 484, + 485, 486, 487, 488, 489, 490, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, + 504, 505, -1, -1, 508, 509, -1, 511, 512, -1, -1, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 18, -1, -1, -1, -1, -1, -1, 18, -1, -1, -1, + -1, 15, -1, 32, 18, -1, -1, -1, -1, -1, 32, -1, -1, -1, 43, -1, -1, -1, -1, -1, -1, 43, -1, 15, + -1, -1, -1, -1, -1, -1, 18, -1, 24, -1, -1, -1, 53, -1, -1, 53, -1, 33, 59, -1, -1, 59, -1, -1, + -1, -1, -1, 80, -1, -1, -1, -1, -1, 74, 80, -1, 74, -1, -1, -1, -1, -1, -1, 59, 97, -1, -1, -1, + -1, -1, -1, 97, -1, -1, -1, -1, 97, 95, -1, 97, -1, -1, -1, -1, 105, 81, 107, 105, -1, 107, -1, + -1, -1, 126, -1, -1, -1, -1, -1, 95, 126, 97, -1, 95, -1, 126, -1, -1, 126, -1, -1, -1, -1, -1, + -1, -1, 149, -1, -1, -1, -1, -1, -1, 149, -1, -1, -1, -1, -1, -1, 126, -1, -1, 151, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 172, -1, -1, 172, 151, -1, -1, 176, + 151, 193, -1, -1, 181, -1, 161, -1, 193, -1, 165, 188, -1, -1, -1, -1, -1, -1, -1, 174, -1, + 176, -1, -1, 204, 176, 181, 204, -1, -1, 181, -1, -1, -1, -1, -1, 191, -1, -1, -1, -1, 218, + 219, -1, -1, -1, 238, -1, -1, -1, -1, -1, 244, 238, -1, -1, -1, -1, -1, 244, -1, -1, -1, 218, + 219, 220, -1, -1, 219, -1, 247, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 261, -1, + -1, -1, -1, -1, -1, -1, 247, -1, 249, -1, 247, -1, -1, -1, -1, -1, -1, 280, -1, 297, 261, -1, + -1, -1, 261, -1, 297, -1, -1, -1, -1, 297, -1, -1, 297, -1, -1, -1, 301, 280, -1, 307, -1, 280, + 307, -1, -1, -1, -1, -1, -1, -1, -1, -1, 320, 318, 334, -1, -1, 300, 301, 302, -1, 334, 301, + -1, -1, -1, -1, -1, 333, 312, -1, -1, -1, 316, -1, 318, -1, 342, 321, 318, -1, -1, -1, -1, -1, + 353, -1, -1, 353, -1, 333, -1, -1, -1, 333, -1, 361, 362, -1, -1, -1, -1, -1, 383, 372, 385, + 386, 372, 388, -1, 383, -1, 385, 386, -1, 388, -1, 397, 361, 362, -1, -1, 361, 362, 397, -1, + -1, -1, 408, -1, 398, -1, -1, 398, -1, 408, 416, -1, -1, -1, -1, -1, -1, 416, 387, -1, -1, -1, + -1, 429, -1, -1, -1, -1, -1, 398, 429, -1, 438, -1, -1, -1, -1, 443, -1, 438, -1, -1, 448, -1, + 443, -1, -1, -1, -1, 448, -1, -1, 421, -1, 448, -1, -1, 448, 449, 450, -1, 467, -1, -1, -1, -1, + -1, -1, 467, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, -1, 474, 449, 450, -1, -1, + -1, -1, 484, -1, -1, 484, -1, -1, -1, -1, -1, 505, -1, -1, -1, 509, -1, 474, 505, -1, -1, 474, + 509, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, 13, 14, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, + 25, 26, 27, -1, 29, 510, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, + 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, + 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, + -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, + 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, 126, -1, 128, -1, 130, 131, 132, 133, -1, 135, + -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, + 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, + -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, + 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, + 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, + -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, + -1, -1, 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, + 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, + 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, + 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, + 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, 448, -1, -1, -1, + 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, + 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, + 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, + 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, 17, -1, -1, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, + 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, + -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, + 154, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, + -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 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, + -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, 249, -1, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, -1, -1, 303, 304, -1, 306, 307, 308, 309, 310, + 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, + 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, + 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, -1, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, -1, -1, -1, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, + -1, 466, 467, 468, 469, 470, 471, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, + 485, 486, 487, 488, 489, 490, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, + 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, 81, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 18, 15, -1, -1, -1, 19, -1, -1, -1, -1, 24, 81, 126, 127, 32, -1, -1, -1, -1, 33, -1, + -1, -1, -1, -1, 43, 140, -1, -1, -1, -1, -1, -1, -1, -1, 15, -1, -1, -1, -1, -1, 155, -1, -1, + 24, 59, -1, 161, -1, -1, -1, 165, -1, 33, 168, -1, 126, -1, -1, -1, 174, -1, 80, -1, -1, -1, + 180, 81, -1, 183, 140, -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, 95, -1, 97, -1, 155, -1, -1, -1, + -1, -1, 161, -1, -1, -1, 165, -1, -1, 168, 213, -1, 115, -1, -1, 174, -1, -1, -1, 126, -1, 180, + -1, 126, 183, -1, 95, 96, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 242, -1, -1, 149, -1, -1, + -1, -1, 250, 151, -1, -1, -1, 155, -1, 213, -1, -1, -1, 161, -1, -1, -1, 165, -1, -1, -1, -1, + -1, -1, -1, -1, 174, -1, 176, -1, -1, 179, -1, 181, -1, -1, -1, 151, -1, -1, -1, 193, -1, 191, + -1, -1, 250, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 176, -1, 312, -1, -1, + 181, 316, -1, 218, 219, 220, -1, 322, -1, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, 238, -1, -1, + -1, -1, -1, 244, -1, -1, -1, -1, -1, -1, 247, -1, 249, 250, -1, 218, 219, 220, -1, 312, -1, -1, + -1, 316, 261, -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 280, + 247, -1, 249, -1, -1, -1, 387, -1, -1, -1, -1, -1, 297, -1, 261, -1, -1, 398, -1, 300, 301, + 302, -1, -1, 305, -1, 307, -1, -1, -1, -1, 312, -1, 280, -1, 316, -1, 318, -1, -1, 321, -1, -1, + -1, -1, -1, -1, -1, -1, 334, 387, -1, 333, 300, 301, 302, -1, -1, -1, -1, -1, 398, -1, -1, -1, + -1, -1, 448, -1, -1, -1, 318, -1, -1, 321, 456, -1, 458, -1, -1, 361, 362, -1, -1, 365, -1, + 333, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 383, -1, -1, 386, 483, 388, -1, -1, 387, -1, + -1, -1, -1, 448, 397, -1, 361, 362, 397, 398, -1, -1, -1, -1, -1, 408, -1, -1, 507, -1, 509, + 510, -1, 416, -1, -1, -1, -1, -1, -1, -1, -1, 421, -1, -1, -1, 429, -1, 483, -1, -1, -1, -1, + -1, -1, 438, -1, -1, -1, -1, 443, -1, -1, -1, -1, 448, -1, -1, -1, 448, 449, 450, 507, -1, 509, + 510, 421, -1, -1, -1, -1, -1, -1, -1, 467, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 474, -1, -1, + -1, -1, -1, -1, -1, -1, 449, 450, -1, -1, -1, -1, -1, -1, 491, 0, 1, 2, 3, 4, 5, 6, 7, 8, 505, + 10, 11, 12, 509, -1, -1, 474, 17, 510, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, 55, 56, + 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, + -1, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, + 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, + 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, -1, 156, 157, 158, 159, 160, -1, 162, -1, + 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, + 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, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, + -1, -1, 244, 245, 246, -1, 248, 249, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, -1, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, + -1, -1, 303, 304, -1, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, + -1, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, 334, 335, 336, 337, 338, 339, + 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, + 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, -1, -1, 452, 453, 454, + 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, 471, 472, 473, -1, + 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, 490, -1, 492, 493, 494, + 495, 496, 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, 17, -1, -1, 20, 21, 22, -1, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, -1, + 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, + 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, + 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, -1, 156, + 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, + 177, 178, 179, -1, -1, 182, -1, 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, -1, 214, + -1, 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, 249, -1, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, -1, 298, 299, 300, -1, -1, 303, 304, -1, 306, 307, 308, 309, 310, 311, -1, + 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, + 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, + 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + -1, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, + 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, + 447, -1, -1, -1, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, + 467, 468, 469, 470, 471, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, + 487, 488, 489, 490, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, 504, 505, + -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, + -1, 17, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, -1, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, 105, 106, -1, 108, + 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, + -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, -1, 152, 153, 154, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, + 169, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 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, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, + 246, -1, 248, 249, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, -1, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, + 304, -1, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, + 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, -1, -1, 452, 453, 454, 455, 456, 457, + 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, 471, 472, 473, -1, 475, 476, 477, + -1, 479, 480, 481, 482, -1, 484, 485, 486, 487, 488, 489, 490, -1, 492, 493, 494, 495, 496, + 497, 498, -1, 500, 501, 502, 503, 504, 505, 35, -1, 508, -1, -1, 511, 512, 18, 19, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 15, -1, + -1, -1, -1, -1, -1, -1, 15, 24, -1, -1, -1, -1, -1, -1, -1, 24, 33, -1, 83, -1, -1, -1, -1, -1, + 33, -1, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 81, -1, 59, -1, -1, -1, 111, + 112, -1, -1, 59, -1, -1, -1, -1, -1, 97, -1, -1, -1, 97, 126, -1, -1, 81, -1, -1, 132, 105, -1, + -1, -1, 81, 138, 115, -1, -1, 53, 95, -1, -1, -1, -1, 59, -1, 126, 95, -1, -1, -1, -1, -1, -1, + 130, -1, -1, -1, 162, 74, -1, 137, -1, 167, -1, -1, -1, -1, -1, -1, 126, -1, -1, -1, -1, -1, + 152, -1, 126, -1, 184, -1, 97, -1, -1, -1, -1, -1, -1, -1, 105, -1, 107, -1, 174, 151, -1, -1, + -1, 155, -1, -1, -1, 151, -1, 161, -1, 155, -1, 165, -1, 126, -1, 161, -1, -1, -1, 165, 174, + -1, 176, -1, -1, -1, -1, 181, 174, -1, 176, -1, -1, -1, -1, 181, -1, 191, -1, -1, -1, -1, -1, + -1, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, 172, 234, -1, -1, -1, 218, + 219, 220, -1, -1, -1, -1, -1, 218, 219, 220, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 204, -1, 247, -1, 249, 250, -1, -1, -1, -1, 247, -1, 249, 250, 307, -1, 261, + -1, -1, -1, -1, -1, -1, -1, 261, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 280, 305, -1, -1, -1, + -1, -1, 307, 280, -1, -1, -1, 316, -1, -1, 315, -1, -1, -1, -1, 300, 301, 302, -1, 263, -1, -1, + -1, 300, 301, 302, -1, 312, -1, -1, 363, 316, -1, 318, -1, -1, 321, -1, -1, 316, -1, 318, -1, + -1, 321, -1, -1, -1, 333, -1, -1, -1, -1, 297, -1, -1, 333, -1, -1, -1, -1, -1, -1, 307, -1, + -1, -1, -1, -1, -1, -1, -1, 316, -1, -1, -1, 361, 362, -1, -1, -1, -1, 387, -1, 361, 362, -1, + -1, -1, 398, -1, -1, -1, 398, -1, -1, -1, -1, -1, -1, -1, -1, 387, -1, -1, -1, -1, -1, -1, 353, + 387, -1, -1, 398, -1, 448, -1, -1, -1, 396, 397, 398, -1, -1, -1, -1, -1, -1, 372, -1, -1, -1, + -1, -1, -1, -1, 421, -1, -1, 448, -1, -1, -1, -1, 421, 454, -1, -1, -1, -1, -1, -1, -1, -1, + 398, -1, -1, -1, 491, -1, -1, -1, -1, 448, 449, 450, 471, -1, -1, -1, -1, 448, 449, 450, 507, + -1, -1, 510, -1, -1, 485, 514, -1, -1, -1, -1, -1, -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, + 474, 507, -1, -1, 510, -1, -1, 448, 510, -1, 512, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, + 11, 12, -1, -1, 510, -1, -1, -1, -1, 20, 21, 22, 510, 24, 25, 26, 27, 28, 29, 484, 31, 32, -1, + 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, + -1, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, + 82, 83, 84, -1, -1, 87, -1, 89, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, + 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, + 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, + 144, -1, 146, 147, 148, 149, -1, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, + 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, -1, -1, 179, -1, -1, 182, -1, 184, + 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + -1, 205, 206, -1, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, -1, + 246, -1, 248, 249, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, + 266, 267, -1, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, -1, -1, 296, -1, 298, 299, 300, -1, -1, 303, -1, -1, + 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, 325, + -1, 327, 328, -1, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, + 346, -1, 348, -1, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, + -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, -1, 399, 400, 401, 402, 403, -1, + 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, -1, + 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, + 463, -1, -1, 466, 467, -1, 469, -1, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, + -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, -1, 497, 498, -1, 500, 501, 502, + 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, + -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, -1, 31, 32, -1, 34, 35, 36, 37, -1, + 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, -1, -1, 60, -1, -1, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, -1, -1, + 87, -1, 89, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, + 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, + -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, -1, 146, 147, 148, + 149, -1, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, + 170, 171, 172, 173, -1, 175, -1, -1, -1, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, 206, -1, 208, + 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, -1, 246, -1, 248, 249, -1, + 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, -1, 269, 270, + 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, -1, -1, 296, -1, 298, 299, 300, -1, -1, 303, -1, -1, 306, -1, 308, 309, 310, + 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, -1, 330, + 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, -1, 348, -1, 350, + 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, + 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, + 390, 391, 392, 393, 394, 395, -1, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, + 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, -1, 443, -1, 445, 446, -1, -1, + -1, -1, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, -1, + 469, -1, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, + 489, -1, -1, 492, 493, 494, 495, -1, 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, -1, 508, + -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 530, + 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, + 22, -1, 24, 25, 26, 27, 28, 29, -1, 31, 32, -1, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, + -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, -1, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, -1, -1, 87, -1, 89, -1, -1, -1, 93, + 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, + 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, + -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, -1, 146, 147, 148, 149, -1, -1, -1, 153, + -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, + -1, 175, -1, -1, -1, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, 206, -1, 208, 209, 210, 211, 212, + -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, -1, 246, -1, 248, 249, -1, 251, 252, 253, + -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, -1, 269, 270, 271, 272, -1, + -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + -1, -1, 296, -1, 298, 299, 300, -1, -1, 303, -1, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, + 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, 325, -1, 327, 328, -1, 330, 331, 332, -1, 334, + -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, -1, 348, -1, 350, 351, 352, -1, 354, + 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, + 394, 395, -1, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, + 414, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, -1, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, + 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, -1, 469, -1, -1, 472, + 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, + 493, 494, 495, -1, 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, + -1, -1, 515, 516, 517, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 530, 531, 532, 533, 0, + 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, + 27, 28, 29, -1, 31, 32, -1, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, + 51, 52, -1, 54, 55, 56, 57, -1, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, + 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, -1, -1, 87, -1, 89, -1, -1, -1, 93, 94, -1, -1, -1, 98, + 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, + 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, + 139, -1, 141, 142, 143, 144, -1, 146, 147, 148, 149, -1, -1, -1, 153, -1, -1, 156, 157, 158, + 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, -1, -1, + 179, -1, -1, 182, -1, 184, 185, 186, -1, 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, -1, 214, -1, 216, 217, + 218, 219, 220, 221, 222, 223, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 234, 235, 236, 237, 238, + 239, 240, -1, -1, -1, 244, -1, 246, -1, 248, 249, -1, 251, 252, 253, -1, -1, 256, 257, 258, + 259, -1, -1, 262, 263, 264, 265, 266, 267, -1, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, + 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, -1, 296, -1, 298, + 299, 300, -1, -1, 303, -1, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, + 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, -1, 334, -1, 336, 337, 338, + 339, 340, 341, 342, -1, 344, 345, 346, -1, 348, -1, 350, 351, 352, -1, 354, 355, 356, 357, 358, + 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, + -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, -1, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, 453, 454, 455, 456, + 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 5, 469, -1, -1, 472, 473, 11, 475, 476, + 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 18, + 497, 498, 499, 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, 32, 511, 512, -1, -1, 515, 516, + 517, 81, 82, 57, 43, 53, 81, -1, -1, -1, -1, 59, -1, 530, 531, 532, 533, 97, -1, -1, -1, -1, + -1, -1, -1, -1, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, + 126, -1, -1, 97, -1, 126, -1, -1, -1, -1, -1, 105, 97, 107, 140, -1, -1, -1, 118, 140, 105, -1, + -1, -1, -1, 125, -1, -1, -1, 155, -1, 131, 126, -1, 155, 161, -1, -1, -1, 165, 161, 126, -1, + 169, 165, -1, -1, -1, 174, -1, -1, -1, -1, 174, 180, -1, -1, 183, -1, -1, -1, -1, 162, -1, 149, + -1, 151, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 172, -1, 206, -1, -1, -1, -1, -1, -1, 213, + -1, -1, -1, -1, 213, -1, -1, -1, 222, -1, -1, -1, -1, -1, 202, 35, -1, -1, -1, -1, 193, -1, + 204, -1, -1, -1, -1, -1, -1, -1, -1, -1, 246, -1, -1, -1, 250, -1, -1, -1, -1, 250, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 83, -1, 238, -1, -1, + -1, -1, 284, 244, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 111, -1, -1, -1, -1, -1, -1, 312, -1, -1, -1, 316, 312, -1, 293, 126, 316, 322, 297, -1, -1, + 132, 322, -1, 297, -1, -1, 138, -1, -1, -1, 310, -1, 297, 307, -1, -1, -1, -1, -1, -1, 320, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 162, -1, 332, -1, -1, 167, -1, 322, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 334, -1, -1, 184, -1, -1, -1, -1, -1, -1, 353, -1, 387, -1, -1, 390, -1, 387, + -1, -1, -1, -1, -1, 398, -1, -1, -1, -1, 398, 372, 379, -1, -1, 382, 383, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 383, -1, -1, 386, -1, 388, 398, -1, -1, -1, -1, -1, -1, -1, + 397, 398, -1, -1, 416, -1, -1, -1, -1, -1, 448, 408, -1, -1, -1, 448, 260, -1, -1, 416, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 429, -1, -1, -1, -1, -1, -1, -1, -1, 438, 448, -1, -1, + 483, 443, -1, -1, -1, 483, 448, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 307, -1, -1, -1, + -1, -1, 507, 467, 509, 510, -1, -1, -1, 509, 510, 484, -1, -1, -1, 494, -1, -1, 491, -1, -1, + -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, 510, -1, 17, -1, 505, 20, 21, 22, 509, + 24, 25, 26, 27, 28, 29, 363, 31, 32, -1, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, + -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, -1, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, -1, -1, 87, -1, 89, -1, -1, -1, 93, 94, + -1, -1, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, -1, 108, 109, 110, 111, 112, 113, 114, + 448, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, -1, + 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, -1, 146, 147, 148, 149, -1, 151, -1, 153, -1, + -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, 507, + 175, -1, 510, -1, 179, -1, 514, 182, -1, 184, 185, 186, -1, 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, -1, + 214, -1, 216, 217, 218, 219, 220, 221, 222, 223, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 234, + 235, 236, 237, 238, 239, 240, -1, 242, -1, 244, -1, 246, -1, 248, 249, -1, 251, 252, 253, -1, + -1, 256, 257, 258, 259, 260, -1, 262, 263, 264, 265, 266, 267, -1, 269, 270, 271, 272, -1, -1, + -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, + -1, 296, -1, 298, 299, 300, -1, -1, 303, -1, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, + 315, -1, -1, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, -1, 334, + -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, -1, 348, -1, 350, 351, 352, -1, 354, + 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, + 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, + 413, 414, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, -1, 443, -1, 445, 446, -1, -1, -1, -1, -1, + 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, -1, 469, -1, -1, + 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, + 492, 493, 494, 495, -1, 497, 498, 499, 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, + 512, -1, -1, 515, 516, 517, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 530, 531, 532, 533, + 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, + 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, + 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, + -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, + 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, + 118, 119, -1, -1, 122, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, + 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, -1, 153, -1, -1, 156, 157, + 158, 159, 160, -1, 162, -1, 164, -1, 166, -1, 168, -1, 170, 171, 172, 173, -1, 175, -1, 177, + 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, + -1, -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, + 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, + 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, + 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, + 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, + 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, + 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, + 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, + 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, -1, 454, + 455, 456, 457, 458, 459, -1, 461, 462, 463, 464, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, + 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, + 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, + 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, + 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, + 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, -1, -1, 87, -1, 89, -1, -1, -1, 93, 94, -1, -1, -1, + 98, 99, 100, 101, 102, 103, 104, 105, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, + 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, + 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, -1, 156, + 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, + 177, 178, 179, -1, -1, 182, -1, 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, -1, 214, + -1, 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, 249, -1, 251, 252, 253, + -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, + -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, -1, 298, 299, 300, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, + 314, 315, 316, -1, 318, 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, + 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, + -1, 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, 410, + 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, + -1, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, + 470, 471, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, + -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, + -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, + 21, 22, -1, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, + 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, -1, -1, 87, -1, 89, -1, -1, -1, + 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, 105, 106, -1, 108, 109, 110, 111, 112, + 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, + 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, + 153, 154, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, + 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 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, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, 249, -1, + 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, + 311, -1, 313, 314, 315, 316, -1, 318, 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, + 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, + 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, + 445, 446, -1, -1, -1, -1, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, + -1, 466, 467, 468, 469, 470, 471, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, + 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, + 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, + -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, + 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, + -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, + -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, 95, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, + -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, + -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, + -1, -1, -1, 170, 171, 172, 173, -1, 175, 176, 177, 178, 179, -1, 181, 182, -1, 184, 185, 186, + -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, + 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, + 247, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, -1, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, 301, -1, 303, 304, -1, 306, + -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, -1, 326, + 327, -1, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, + 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, + 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, + 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 442, 443, -1, 445, 446, -1, -1, 449, 450, -1, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, + 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, + 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, + 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, + 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, + -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, + -1, -1, -1, 62, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, -1, + 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, + -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, + 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, + -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, + 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, + 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, + 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, + -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, + 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, + 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, + 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, + 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, + 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, + 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, -1, 454, 455, 456, 457, 458, + 459, -1, 461, 462, 463, 464, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, + 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, + -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, + 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, + 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, + 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, + 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, + 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, + 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, + -1, 164, -1, 166, -1, 168, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, + 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, + -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, + 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, + 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, + 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, + 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, + -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, + 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, -1, 454, 455, 456, 457, + 458, 459, -1, 461, 462, 463, 464, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, + -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, + 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, + 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, + 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, + 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, + 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, + 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, + 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, + 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, + -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, + -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, + 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, + -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, + -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, + 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, + -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, + 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, + 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, -1, 454, 455, 456, 457, + 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, + -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, + 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, + 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, -1, + 31, 32, -1, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, -1, 59, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, -1, 82, 83, 84, -1, -1, 87, -1, 89, -1, -1, -1, 93, 94, -1, -1, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, + -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, + 141, 142, 143, 144, -1, 146, 147, 148, 149, -1, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, + -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, -1, -1, 179, -1, -1, + 182, -1, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, -1, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, 219, 220, + 221, 222, 223, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 234, 235, 236, 237, 238, 239, 240, -1, + -1, -1, 244, -1, 246, -1, 248, 249, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, 260, -1, + 262, 263, 264, 265, 266, 267, -1, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, -1, 296, 297, 298, 299, 300, + -1, -1, 303, -1, -1, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, + -1, -1, 323, 324, 325, -1, 327, 328, -1, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, + 341, 342, -1, 344, 345, 346, -1, 348, -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, + 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, -1, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, 453, 454, 455, + 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, -1, 469, -1, -1, 472, 473, -1, 475, + 476, 477, -1, 479, 480, 481, 482, -1, 484, 485, 486, 487, 488, 489, -1, 491, 492, 493, 494, + 495, -1, 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, 510, 511, 512, -1, -1, + 515, 516, 517, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 530, 531, 532, 533, 0, 1, 2, 3, + 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, + 29, -1, 31, 32, -1, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, + -1, 54, 55, 56, 57, -1, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, + 77, 78, 79, 80, -1, 82, 83, 84, -1, -1, 87, -1, 89, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, + 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, + 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, + 139, -1, 141, 142, 143, 144, -1, 146, 147, 148, 149, -1, -1, -1, 153, -1, -1, 156, 157, 158, + 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, -1, -1, + 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, -1, 205, 206, -1, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, + 219, 220, 221, 222, 223, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 234, 235, 236, 237, 238, 239, + 240, -1, -1, -1, 244, -1, 246, -1, 248, 249, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, + -1, 262, 263, 264, 265, 266, 267, -1, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, -1, 296, 297, 298, 299, + 300, -1, -1, 303, -1, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, + 320, -1, -1, 323, 324, 325, -1, 327, 328, -1, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, + 340, 341, 342, -1, 344, 345, 346, -1, 348, -1, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, + 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, -1, + 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, -1, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, 453, 454, 455, 456, + 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, -1, 469, -1, -1, 472, 473, -1, 475, 476, + 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, -1, + 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, + 517, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, + 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, + 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, + 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, + 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, + 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, + 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, + 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, + -1, 184, 185, 186, 187, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, + -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, + 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, + -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, + -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, + 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, + -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, + 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, + 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, -1, 454, 455, 456, 457, + 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, + -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, + 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, + 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, + 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, + 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, + 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, + 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, + 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, + 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, + -1, 184, 185, 186, 187, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, + -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, + 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, + -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, + -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, + 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, + -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, + 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, + 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, -1, 454, 455, 456, 457, + 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, + -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, + 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, + 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, + 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, + 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, + 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, + 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, + 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, + -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, + -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, + 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, + -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, + -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, + 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, + -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, + 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, + 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, -1, 454, 455, 456, 457, + 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, + -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, 490, -1, 492, 493, 494, 495, 496, 497, + 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, + 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, + 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, + 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, + 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, + 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, + 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, + -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, + -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, + 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, + -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, + -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, + 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, + -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, + 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, + 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, -1, 454, 455, 456, 457, + 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, + -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, 490, -1, 492, 493, 494, 495, 496, 497, + 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, -1, 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, -1, -1, 128, 129, 130, 131, 132, 133, 134, 135, -1, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, -1, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, -1, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, -1, 177, + 178, 179, 180, -1, 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, 243, 244, 245, 246, -1, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, -1, -1, 303, 304, -1, 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, -1, 334, -1, 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, -1, -1, 363, 364, 365, -1, 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, 397, -1, 399, 400, 401, 402, 403, -1, 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, 446, 447, -1, -1, -1, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, + 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, + 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, + 58, -1, -1, -1, 62, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, + -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, + 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, + 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, + 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, + 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, + -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, + -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, + 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, + 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, + 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, + 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, + 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, + 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, -1, 454, 455, 456, 457, 458, + 459, -1, 461, 462, 463, 464, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, + 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, + -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, + 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, + 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, + 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, + 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, + 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, + 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, + -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, + 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, + -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, + 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, + 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, + 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, + -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, + 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, + 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, + 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, -1, 445, 446, 5, -1, -1, -1, -1, 452, 11, 454, 455, 456, 457, 458, + 459, 18, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, + 479, 480, 481, 482, 41, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, + 57, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, -1, -1, 94, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 53, -1, -1, -1, 118, -1, 59, + -1, -1, -1, -1, 125, -1, -1, -1, -1, -1, 131, -1, -1, -1, 74, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 97, -1, -1, -1, 162, -1, -1, -1, 105, + -1, 107, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 126, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 198, -1, -1, -1, 202, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 172, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 259, -1, -1, -1, -1, -1, 204, 266, -1, -1, -1, -1, 271, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 293, -1, -1, -1, 297, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 310, -1, -1, -1, -1, -1, -1, -1, -1, -1, 320, 260, -1, -1, 263, -1, -1, -1, + -1, -1, -1, 331, 332, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 297, -1, -1, -1, -1, -1, -1, -1, -1, -1, 307, -1, -1, -1, -1, -1, + -1, -1, -1, 316, -1, 379, -1, -1, 382, 383, 384, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 410, -1, -1, -1, 353, -1, 416, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 431, -1, 372, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 398, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, 487, 17, -1, -1, + 20, 21, 22, 494, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 448, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 484, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, 105, 106, -1, 108, 109, 110, + 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, + 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, -1, 152, 153, 154, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, + 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 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, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, + 248, 249, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, -1, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, -1, + 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, -1, 344, + 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, + 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, -1, -1, 452, 453, 454, 455, 456, 457, 458, 459, + -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, 471, 472, 473, -1, 475, 476, 477, -1, 479, + 480, 481, 482, -1, 484, 485, 486, 487, 488, 489, 490, -1, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, + 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, 17, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, + 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, + 79, 80, -1, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, -1, 98, 99, 100, 101, + 102, 103, 104, 105, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, + 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, -1, 156, 157, 158, 159, 160, + -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, + -1, 182, -1, 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, -1, 214, -1, 216, 217, -1, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, 249, -1, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, -1, 302, 303, 304, -1, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, + 318, 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, + 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, -1, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, -1, -1, + 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, + 471, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, 484, 485, 486, 487, 488, 489, + 490, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, + -1, 511, 512, -1, -1, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, + 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, + 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, + 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, + -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, + 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, + 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, + 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, + 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, + 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, + 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, + -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, + 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, + 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, + 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, + -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, + 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, + -1, -1, -1, -1, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, + 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, + 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, + 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, + -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, + 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, + 66, 67, 68, -1, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, + -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, + 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, + 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, 163, 164, -1, 166, -1, -1, -1, 170, + 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, + -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, + 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, 249, + -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, + 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, + 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, + 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, -1, 405, + 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, + 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + -1, 445, 446, -1, -1, -1, -1, -1, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, + -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, 484, + 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, + 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, + -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, + 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, + 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, + 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, + 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, + -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, -1, -1, -1, + 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, + 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, + 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, + -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, + 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, + 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, + 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, + 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, + 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, + 446, -1, -1, -1, -1, -1, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, + 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, + 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, + -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, + -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, + 41, 42, 43, 44, 45, -1, 47, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, + 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, + 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, + 169, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 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, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, + 246, -1, 248, 249, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, -1, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, -1, -1, 303, + 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, + -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, + 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, + 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, -1, -1, 452, 453, 454, 455, 456, 457, 458, + 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, + 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, 490, -1, 492, 493, 494, 495, 496, 497, + 498, -1, 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, + -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, + 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, + -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, + 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, + 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, + 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, + -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, + -1, 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, + 182, -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, + 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, + -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, + 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, + -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, + 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, + 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, + 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, + 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, -1, 454, 455, + 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, + 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, + 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, + 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, + 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, + 27, 28, 29, -1, 31, 32, -1, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, + 51, 52, -1, 54, 55, 56, 57, -1, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, + 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, -1, -1, 87, -1, 89, -1, -1, -1, 93, 94, -1, -1, -1, 98, + 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, + 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, + 139, -1, 141, 142, 143, 144, -1, 146, 147, 148, 149, -1, -1, -1, 153, -1, -1, 156, 157, 158, + 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, -1, -1, + 179, -1, -1, 182, -1, 184, 185, 186, -1, 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, -1, 214, -1, 216, 217, + 218, 219, 220, 221, 222, 223, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 234, 235, 236, 237, 238, + 239, 240, -1, -1, -1, 244, -1, 246, -1, 248, 249, -1, 251, 252, 253, -1, -1, 256, 257, 258, + 259, -1, -1, 262, 263, 264, 265, 266, 267, -1, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, + 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, -1, 296, -1, 298, + 299, 300, -1, -1, 303, -1, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, + 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, -1, 334, -1, 336, 337, 338, + 339, 340, 341, 342, -1, 344, 345, 346, -1, 348, -1, 350, 351, 352, -1, 354, 355, 356, 357, 358, + 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, + -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, -1, 443, -1, 445, 446, -1, -1, -1, 450, -1, 452, 453, 454, 455, 456, + 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, -1, 469, -1, -1, 472, 473, -1, 475, 476, + 477, 18, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 18, + 497, 498, 499, 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, 32, 511, 512, 53, -1, 515, 516, + 517, -1, 59, -1, 43, -1, -1, -1, -1, -1, -1, -1, -1, 530, 531, 532, 533, 74, 53, -1, -1, 53, + -1, -1, 59, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 74, 97, 80, 74, -1, -1, -1, + 81, -1, 105, -1, 107, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 97, 95, -1, 97, -1, -1, -1, + 126, 105, -1, 107, 105, -1, 107, -1, -1, -1, 53, -1, -1, -1, -1, -1, 59, -1, 126, -1, -1, -1, + 126, -1, -1, 126, -1, -1, -1, -1, -1, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, 149, 168, -1, -1, + -1, 172, -1, -1, -1, 151, -1, -1, -1, 97, -1, -1, -1, -1, -1, -1, -1, 105, -1, 107, -1, -1, -1, + 172, -1, 174, 172, -1, -1, -1, 176, -1, -1, 204, -1, 181, -1, -1, 126, -1, 193, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 204, -1, -1, 204, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 219, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 172, 238, -1, -1, -1, -1, -1, + 244, 263, -1, -1, -1, -1, -1, -1, -1, -1, 247, -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, -1, -1, + -1, 261, 204, -1, -1, -1, -1, -1, 293, -1, -1, -1, 297, -1, -1, -1, -1, -1, -1, -1, 280, -1, + 307, -1, -1, -1, -1, -1, -1, -1, 297, 316, -1, -1, 297, -1, -1, 297, -1, -1, -1, 301, -1, -1, + 307, -1, -1, 307, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, -1, -1, -1, -1, -1, -1, -1, -1, + 334, 353, -1, -1, -1, -1, 333, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 372, -1, -1, + 353, -1, -1, 353, -1, 297, -1, -1, -1, -1, -1, 361, 362, -1, -1, 307, -1, -1, -1, 372, -1, -1, + 372, 398, -1, -1, 383, -1, -1, 386, -1, 388, -1, -1, -1, -1, -1, -1, -1, -1, 397, -1, -1, -1, + -1, 398, -1, -1, 398, -1, -1, 408, -1, -1, -1, -1, -1, -1, -1, 416, -1, 353, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 429, 448, -1, -1, -1, -1, -1, 454, 372, 438, -1, -1, -1, -1, 443, -1, + -1, 464, -1, 448, -1, -1, -1, 448, -1, -1, 448, 449, 450, 454, -1, -1, -1, -1, 398, -1, -1, + 484, 467, -1, -1, -1, -1, -1, 491, -1, -1, -1, -1, -1, -1, -1, 474, -1, -1, -1, -1, -1, -1, + 484, 507, -1, 484, 510, -1, 512, 491, 0, 1, 2, 3, 4, 5, 6, 7, 8, 505, 10, 11, 12, 509, -1, 507, + -1, 448, 510, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, -1, + 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, 484, 54, 55, 56, 57, 58, -1, 60, -1, + -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, -1, + -1, 87, 88, 89, -1, -1, 92, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, + 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, + 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, + -1, 169, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, 180, -1, 182, -1, 184, 185, 186, -1, + 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, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, + 245, 246, -1, 248, 249, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, -1, -1, 303, + 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, + -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, + 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, + 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, 453, 454, 455, 456, 457, 458, + 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, + 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, + -1, 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 1, -1, -1, -1, -1, + -1, -1, -1, 1, -1, -1, 18, -1, -1, 15, -1, -1, 18, -1, -1, -1, -1, 15, 24, -1, -1, -1, -1, -1, + -1, -1, 24, 33, -1, 41, -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 59, -1, -1, 68, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, -1, 99, -1, 95, 18, 97, -1, 105, -1, -1, + -1, 95, -1, 97, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 127, -1, -1, -1, -1, -1, 147, -1, -1, -1, -1, -1, -1, 140, + -1, -1, 151, -1, -1, -1, -1, -1, -1, -1, 151, -1, -1, -1, 155, -1, 165, 172, -1, -1, 161, -1, + -1, -1, 165, -1, 97, 176, -1, -1, -1, -1, 181, -1, 105, 176, -1, -1, -1, -1, 181, -1, 191, 198, + -1, -1, -1, -1, -1, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, 130, -1, 132, -1, -1, -1, -1, 137, + -1, -1, 218, 219, 220, 213, -1, -1, -1, -1, 218, 219, 220, -1, 152, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 247, 35, 249, 242, -1, -1, 259, 260, 247, -1, 249, 250, -1, + 266, 261, -1, -1, -1, 271, -1, 15, -1, 261, -1, -1, -1, -1, -1, 15, 24, -1, -1, -1, 280, -1, + -1, -1, 24, 33, -1, 293, 280, -1, -1, 297, -1, 33, -1, -1, 83, -1, -1, -1, 300, 301, 302, -1, + -1, -1, -1, 307, 300, 301, 302, 59, 234, -1, -1, 307, -1, -1, 318, 59, 312, 321, 322, -1, 111, + 331, 318, -1, -1, 321, 322, -1, -1, 333, -1, -1, -1, -1, -1, 126, -1, 333, -1, -1, -1, 132, -1, + 95, 96, 97, -1, 138, -1, -1, -1, 95, -1, -1, -1, -1, -1, 361, 362, -1, -1, -1, -1, -1, -1, 361, + 362, 63, -1, -1, -1, 162, -1, -1, 384, -1, 167, -1, -1, -1, -1, 307, -1, 387, -1, -1, -1, -1, + -1, 315, -1, 387, -1, 184, 398, -1, 322, -1, -1, 151, 410, 97, 398, -1, -1, -1, -1, 151, -1, + 105, -1, -1, -1, -1, -1, -1, 342, 421, -1, -1, -1, 431, -1, 433, 176, 421, 436, -1, -1, 181, + -1, -1, 176, -1, 130, -1, -1, 181, -1, 191, -1, 137, -1, -1, -1, 449, 450, 191, -1, -1, -1, -1, + -1, 449, 450, 15, 152, -1, -1, -1, -1, 387, -1, -1, 24, -1, 218, 219, 220, 260, 474, -1, 398, + 33, 218, 219, 220, 487, 474, -1, 81, -1, -1, -1, -1, -1, -1, 483, -1, -1, -1, -1, -1, -1, -1, + 247, -1, 249, -1, 59, -1, -1, -1, 247, -1, 249, 510, -1, 512, 261, -1, -1, -1, -1, -1, -1, 307, + 261, -1, -1, -1, -1, -1, -1, -1, 126, -1, -1, 280, -1, -1, -1, -1, -1, -1, 95, 280, 97, 234, + 140, -1, -1, -1, -1, -1, 471, -1, -1, 300, 301, 302, -1, -1, -1, 155, -1, 300, 301, 302, 485, + 161, -1, -1, -1, 165, -1, 318, -1, -1, 321, -1, -1, 363, 174, 318, -1, -1, 321, -1, -1, -1, + 333, 183, -1, 510, -1, 512, -1, 15, 333, -1, 151, -1, -1, -1, -1, -1, 24, -1, -1, -1, -1, -1, + -1, -1, -1, 33, -1, -1, 361, 362, 307, 213, -1, -1, -1, 176, 361, 362, 315, -1, 181, -1, -1, + -1, -1, -1, -1, 18, -1, -1, 191, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, 32, -1, -1, -1, 398, + -1, -1, 250, -1, -1, -1, 43, 398, -1, -1, 448, 218, 219, 220, -1, -1, -1, -1, -1, -1, -1, 95, + 421, 97, -1, -1, -1, -1, -1, -1, 421, -1, -1, -1, -1, -1, -1, -1, -1, -1, 247, -1, 249, 80, + 387, -1, -1, -1, -1, -1, 449, 450, -1, -1, 261, 398, -1, -1, 449, 450, -1, -1, -1, 100, 312, + -1, -1, -1, 316, 507, -1, -1, 510, 280, 322, 474, 514, 151, -1, 15, -1, -1, -1, 474, -1, -1, + -1, -1, 24, 126, -1, -1, -1, 300, 301, 302, -1, 33, 497, -1, -1, -1, 176, -1, -1, -1, -1, 181, + -1, -1, -1, 318, 149, -1, 321, -1, -1, 191, -1, -1, -1, -1, -1, 59, -1, -1, 333, -1, 471, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 387, -1, -1, 485, -1, 218, 219, 220, -1, -1, 186, 398, -1, + -1, -1, 361, 362, 193, -1, -1, 95, 18, 97, -1, -1, -1, -1, -1, 510, -1, 512, -1, -1, -1, 247, + 32, 249, -1, -1, -1, -1, -1, -1, -1, -1, -1, 43, -1, 261, -1, 35, -1, 398, -1, -1, -1, -1, -1, + -1, -1, -1, 448, 238, -1, -1, 53, -1, 280, 244, -1, -1, 59, -1, -1, -1, 421, 151, -1, -1, -1, + -1, -1, -1, 80, -1, -1, 74, 300, 301, 302, -1, -1, -1, -1, 270, -1, 483, -1, 83, -1, -1, 176, + 278, 449, 450, 318, 181, -1, 321, 97, -1, -1, 15, -1, -1, 18, 191, 105, -1, 107, 333, 297, 509, + 510, -1, -1, 111, 112, 474, 126, -1, -1, -1, -1, -1, -1, -1, 40, 126, -1, -1, 126, -1, 218, + 219, 220, -1, 132, 361, 362, 53, -1, 149, 138, -1, -1, 59, -1, 334, -1, 63, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 74, 247, -1, 249, -1, -1, 162, -1, -1, -1, -1, 167, -1, 172, -1, 261, -1, + -1, -1, -1, -1, 95, -1, 97, -1, 193, -1, -1, 184, -1, -1, 105, -1, 107, 280, -1, 383, 421, 385, + 386, -1, 388, -1, -1, -1, 204, -1, -1, -1, -1, 397, -1, 126, 127, 300, 301, 302, -1, -1, -1, + 407, 408, -1, -1, -1, 449, 450, -1, -1, 416, 238, -1, 318, -1, -1, 321, 244, 151, -1, -1, -1, + -1, 429, -1, -1, -1, -1, 333, -1, -1, 474, 438, -1, -1, -1, -1, 443, 343, 172, -1, -1, 448, + 176, -1, 260, -1, -1, 181, -1, -1, -1, -1, -1, -1, 188, 361, 362, -1, -1, -1, 467, -1, -1, -1, + -1, -1, -1, -1, -1, 297, 204, -1, -1, -1, 293, -1, -1, -1, 297, -1, -1, -1, -1, -1, 218, 219, + -1, -1, 307, -1, -1, 307, 398, -1, -1, -1, -1, -1, 505, -1, -1, -1, 509, -1, -1, -1, 334, -1, + 242, -1, -1, -1, -1, 247, -1, 421, -1, -1, -1, -1, -1, -1, -1, -1, 531, -1, 260, 261, -1, -1, + -1, -1, -1, -1, 353, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, -1, 280, 363, -1, -1, -1, -1, + -1, 372, -1, 383, -1, -1, 386, -1, 388, -1, -1, 297, -1, -1, -1, 301, 474, 397, -1, -1, -1, + 307, -1, -1, -1, -1, -1, 398, 408, -1, -1, -1, 318, -1, -1, -1, 416, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 333, -1, 429, -1, -1, -1, -1, 340, -1, 342, -1, 438, -1, -1, -1, -1, 443, -1, + -1, -1, 353, 448, -1, -1, -1, -1, -1, -1, 361, 362, 448, -1, -1, 448, -1, -1, -1, -1, -1, 372, + 467, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 398, 484, -1, -1, -1, -1, -1, -1, -1, -1, -1, 491, -1, 505, -1, -1, -1, 509, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 507, -1, -1, 510, -1, -1, -1, 514, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, 484, 0, 1, 2, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, + -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + -1, 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, -1, 128, 129, 130, 131, 132, 133, 134, 135, -1, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, + 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 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, -1, 328, + 329, 330, 331, 332, 333, 334, -1, 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, 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, 402, 403, -1, + 405, 406, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + -1, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, 512, -1, -1, 515, 516, 517, -1, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 15, 532, 533, -1, -1, 53, -1, -1, 53, + 24, -1, 59, -1, -1, 59, -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, 74, -1, -1, 74, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, 97, -1, -1, 97, -1, -1, -1, -1, + 105, -1, 107, 105, -1, 107, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 126, + -1, 95, 126, 97, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 172, + -1, -1, 172, -1, -1, -1, -1, -1, -1, -1, -1, 151, -1, -1, -1, -1, -1, -1, -1, -1, -1, 161, -1, + -1, -1, -1, -1, -1, 168, -1, -1, 204, -1, -1, 204, -1, 176, -1, -1, -1, -1, 181, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, 219, 220, -1, -1, -1, -1, -1, -1, 260, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 247, -1, 249, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 261, -1, -1, 297, -1, -1, 297, -1, -1, -1, -1, -1, -1, 307, -1, -1, + 307, -1, -1, 280, -1, -1, -1, -1, -1, 316, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 300, 301, 302, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, -1, 353, 321, + -1, 353, -1, -1, -1, -1, -1, -1, -1, -1, -1, 333, -1, -1, -1, -1, -1, 372, -1, -1, 372, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 361, 362, -1, -1, 398, -1, -1, + 398, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 398, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 448, -1, -1, 448, -1, -1, 421, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, + 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, 449, 450, 484, -1, 17, 484, -1, 20, 21, 22, -1, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 474, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, + -1, 98, 99, 100, 101, 102, 103, 104, 105, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, + 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, + 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, -1, + 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, 168, 169, 170, 171, 172, 173, -1, 175, + -1, 177, 178, 179, -1, -1, 182, -1, 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, -1, 214, + -1, 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, 249, -1, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, -1, 306, 307, 308, 309, 310, 311, + -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, + 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, + 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, -1, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, + 446, 447, -1, -1, -1, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, 15, + 466, 467, 468, 469, 470, 471, 472, 473, 24, 475, 476, 477, -1, 479, 480, 481, 482, 33, 484, + 485, 486, 487, 488, 489, 490, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, + 504, 505, -1, -1, 508, 59, -1, 511, 512, -1, -1, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, -1, -1, -1, -1, -1, -1, 15, -1, -1, 18, -1, + 95, -1, 97, -1, 24, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 151, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 168, -1, 95, -1, 97, -1, -1, -1, 176, -1, -1, -1, -1, 181, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 218, 219, 220, -1, -1, -1, -1, -1, 151, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 247, -1, 249, -1, 176, -1, -1, -1, -1, 181, -1, + -1, -1, -1, 261, -1, -1, -1, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 280, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, 219, 220, -1, -1, -1, -1, 300, 301, 302, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, -1, -1, 321, 247, -1, 249, -1, + -1, -1, -1, -1, -1, -1, -1, 333, -1, -1, 261, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 280, -1, -1, -1, -1, -1, 361, 362, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 300, 301, 302, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, -1, + -1, 321, -1, 398, -1, -1, -1, -1, -1, -1, -1, -1, -1, 333, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 421, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 361, 362, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 398, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 421, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, 449, 450, -1, -1, 17, -1, -1, 20, 21, 22, -1, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 474, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, + -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, + 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, + 154, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, + -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 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, + -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, 249, -1, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, -1, -1, 303, 304, -1, 306, 307, 308, 309, 310, + 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, + 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, + 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, -1, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, + 445, 446, 447, -1, -1, -1, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, + -1, 466, 467, 468, 469, 470, 471, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, + 485, 486, 487, 488, 489, 490, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, + 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, + -1, 128, 129, 130, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, -1, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 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, -1, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, -1, -1, -1, -1, -1, -1, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, -1, 329, 330, 331, 332, 333, 334, -1, 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, 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, 402, 403, -1, 405, 406, -1, 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, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, -1, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, -1, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, 128, 129, 130, + 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, -1, 152, 153, -1, 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, -1, 177, 178, 179, 180, -1, 182, 183, 184, 185, -1, -1, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, 243, 244, 245, + 246, -1, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, -1, -1, 262, 263, 264, + 265, 266, 267, 268, 269, -1, 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 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, -1, -1, 329, 330, 331, 332, 333, 334, -1, 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, 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, 402, 403, -1, 405, 406, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, -1, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, 512, + -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, -1, 532, + 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, -1, 31, 32, -1, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, -1, 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, -1, 128, 129, 130, 131, 132, 133, 134, 135, + -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, + 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, 188, 189, 190, -1, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, -1, 243, 244, 245, 246, 247, 248, -1, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, -1, 261, 262, 263, 264, 265, 266, 267, 268, + 269, -1, 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, -1, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + -1, -1, 329, 330, 331, 332, 333, 334, -1, 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, 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, 402, + 403, -1, 405, 406, -1, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, -1, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, -1, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, 512, -1, -1, 515, 516, 517, + -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, + 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, 128, 129, 130, 131, 132, 133, 134, 135, -1, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, + -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 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, -1, -1, 329, 330, + 331, 332, 333, 334, -1, 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, 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, 402, 403, -1, 405, 406, + -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, -1, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, + 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, 128, 129, 130, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, -1, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 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, -1, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, -1, -1, -1, -1, + -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, -1, 329, 330, 331, 332, 333, + 334, -1, 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, 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, 402, 403, -1, 405, 406, -1, 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, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, -1, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, -1, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, -1, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, + 128, 129, 130, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, -1, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + -1, 243, 244, 245, 246, 247, 248, -1, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, -1, + 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, -1, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, -1, -1, 329, 330, 331, 332, 333, 334, -1, 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, 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, 402, 403, -1, 405, 406, -1, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, -1, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, -1, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, 128, 129, 130, 131, + 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, -1, 261, 262, 263, 264, + 265, 266, 267, 268, 269, -1, 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, -1, 329, 330, 331, 332, 333, 334, -1, 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, 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, 402, 403, -1, 405, 406, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, -1, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, 512, + -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, -1, 532, + 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, 17, -1, -1, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, + -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, + 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, + 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, -1, + 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, + -1, 177, 178, 179, -1, -1, 182, -1, 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, -1, 214, + -1, 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, 249, -1, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, -1, 298, 299, 300, -1, -1, 303, 304, -1, 306, 307, 308, 309, 310, 311, -1, + 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, + 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, + 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + -1, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, + 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, -1, -1, -1, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, + 467, 468, 469, 470, 471, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, + 487, 488, 489, 490, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, 504, 505, + -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, + 128, 129, 130, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, -1, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 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, + -1, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, -1, + 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, -1, 329, 330, 331, 332, 333, 334, -1, 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, 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, 402, 403, -1, 405, 406, -1, 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, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, -1, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, -1, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, 128, 129, 130, 131, + 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, -1, 261, 262, 263, 264, + 265, 266, 267, 268, 269, -1, 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, -1, 329, 330, 331, 332, 333, 334, -1, 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, 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, 402, 403, -1, 405, 406, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, -1, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, 512, + -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, -1, 532, + 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, 18, 19, 20, 21, 22, -1, 24, + 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, + 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, 59, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, + 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, + 97, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, -1, -1, 122, 123, 124, 125, 126, 127, 128, -1, 130, 131, 132, 133, -1, 135, -1, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, 155, + 156, 157, 158, 159, 160, 161, 162, -1, 164, 165, 166, -1, 168, 169, 170, 171, 172, 173, 174, + 175, -1, 177, 178, 179, 180, -1, 182, 183, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, -1, 216, 217, -1, -1, -1, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, -1, 242, -1, 244, 245, 246, -1, 248, -1, 250, 251, 252, 253, + -1, -1, 256, 257, 258, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, + -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, 305, 306, -1, 308, 309, 310, 311, 312, 313, + 314, 315, 316, -1, 318, 319, 320, -1, 322, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, + 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, + -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, + 373, 374, 375, 376, 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, 402, 403, -1, 405, 406, 407, 408, -1, 410, + 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, 448, + -1, 450, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, + 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, 483, -1, 485, 486, 487, 488, + 489, -1, 491, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, 507, 508, + 509, 510, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, + 18, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, + 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, + 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, -1, -1, 87, -1, -1, + -1, -1, -1, 93, 94, -1, -1, 97, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, + 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, 126, 127, 128, -1, 130, + 131, 132, 133, -1, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, -1, -1, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, -1, 164, 165, 166, -1, -1, 169, + 170, 171, 172, 173, 174, 175, -1, 177, 178, 179, 180, -1, 182, 183, 184, 185, 186, -1, 188, + 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, -1, 216, 217, -1, -1, -1, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, 242, -1, 244, 245, 246, + -1, 248, -1, 250, 251, 252, 253, -1, -1, 256, 257, 258, 259, 260, -1, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, + -1, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, -1, 322, 323, 324, -1, 326, + 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, + 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, + 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 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, 402, 403, -1, + 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, + 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, + 443, -1, 445, 446, -1, 448, -1, 450, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, + 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, + 483, -1, 485, 486, 487, 488, 489, -1, 491, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, + 503, 504, 505, -1, 507, 508, 509, 510, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, + 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, + 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, 47, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, + 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, + 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, + -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, + 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, + 186, -1, 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, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, + -1, 244, 245, 246, -1, 248, 249, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, -1, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, -1, + -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, + -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, + 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, + 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, + 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, -1, -1, 452, 453, 454, 455, 456, + 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, + 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, 490, -1, 492, 493, 494, 495, 496, + 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, + 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, + 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, + 29, -1, 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, 47, 48, 49, 50, 51, 52, + -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, + 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, -1, 98, 99, + 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, + 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, + 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, + 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, 177, 178, + 179, -1, -1, 182, -1, 184, 185, 186, -1, 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, -1, 214, -1, 216, 217, -1, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, -1, -1, 244, 245, 246, -1, 248, 249, -1, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, + 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + -1, 298, 299, 300, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, + 317, 318, 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, 334, -1, 336, + 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, + 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, -1, 451, 452, + 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, + 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, 490, -1, 492, + 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, 510, 511, 512, + -1, 514, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, 18, -1, 20, 21, 22, + -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, + -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, + 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, + -1, -1, 97, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, + -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, 126, 127, 128, -1, 130, 131, 132, 133, -1, + 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, + 155, 156, 157, 158, 159, 160, 161, 162, -1, 164, 165, 166, -1, 168, 169, 170, 171, 172, 173, + 174, 175, -1, 177, 178, 179, 180, -1, 182, 183, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, -1, 216, 217, -1, -1, -1, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, -1, 242, -1, 244, 245, 246, -1, 248, -1, 250, 251, 252, + 253, -1, -1, 256, 257, 258, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, + 312, 313, 314, 315, 316, -1, 318, 319, 320, -1, 322, 323, 324, -1, 326, 327, -1, 329, 330, 331, + 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, + 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, + 371, -1, 373, 374, 375, 376, 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, 402, 403, -1, 405, 406, 407, 408, + -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, + 448, -1, 450, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, + 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, 483, -1, 485, 486, 487, + 488, 489, -1, 491, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, 507, + 508, 509, 510, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, + -1, 18, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, + 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, + 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, -1, -1, 87, -1, + -1, -1, -1, -1, 93, 94, -1, -1, 97, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, + 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, 126, 127, 128, -1, + 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, -1, -1, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, -1, 164, 165, 166, -1, -1, + 169, 170, 171, 172, 173, 174, 175, -1, 177, 178, 179, 180, -1, 182, 183, 184, 185, 186, -1, + 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, -1, 216, 217, -1, -1, -1, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, 242, -1, 244, 245, + 246, -1, 248, -1, 250, 251, 252, 253, -1, -1, 256, 257, 258, 259, 260, -1, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, + 306, -1, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, -1, 322, 323, 324, -1, + 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, + 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, + 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 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, 402, + 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, + 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 442, 443, -1, 445, 446, -1, 448, -1, 450, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, + 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, + 482, 483, -1, 485, 486, 487, 488, 489, -1, 491, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, + 502, 503, 504, 505, -1, 507, 508, 509, 510, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, + 11, 12, -1, -1, -1, -1, -1, 18, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, + -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, + -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, 97, 98, 99, 100, 101, 102, 103, 104, + -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, + 125, 126, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, -1, 164, + 165, 166, -1, -1, 169, 170, 171, 172, 173, 174, 175, -1, 177, 178, 179, 180, -1, 182, 183, 184, + 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + -1, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, -1, 216, 217, -1, -1, -1, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, + -1, 244, 245, 246, -1, 248, -1, 250, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, + 303, 304, -1, 306, -1, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, -1, 322, + 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, + -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, + 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 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, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, + 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, -1, 445, 446, -1, 448, -1, -1, -1, 452, -1, 454, 455, 456, 457, 458, + 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, + 479, 480, 481, 482, 483, -1, 485, 486, 487, 488, 489, -1, 491, 492, 493, 494, 495, 496, 497, + 498, -1, 500, -1, 502, 503, 504, 505, -1, 507, 508, 509, 510, 511, 512, -1, -1, 515, 516, 517, + -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 81, 82, -1, -1, + 53, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, 97, -1, -1, -1, -1, -1, -1, -1, -1, 74, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 126, -1, -1, 97, -1, -1, + -1, -1, -1, -1, -1, 105, -1, 107, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 155, -1, 53, 126, -1, -1, 161, -1, 59, -1, 165, -1, -1, -1, 169, -1, -1, -1, -1, 174, -1, -1, + -1, 74, -1, 180, -1, -1, 183, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 97, -1, -1, 172, -1, 206, -1, -1, 105, -1, 107, -1, 213, -1, -1, -1, -1, -1, -1, -1, -1, + 222, -1, -1, -1, -1, -1, -1, -1, 126, -1, -1, -1, -1, -1, 204, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 246, -1, -1, -1, 250, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 172, -1, -1, -1, -1, -1, -1, -1, 284, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 204, -1, -1, -1, 312, -1, + -1, -1, 316, -1, -1, -1, -1, -1, 322, -1, -1, 293, -1, -1, -1, 297, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 307, -1, -1, -1, -1, -1, -1, -1, -1, 316, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 353, -1, 387, -1, -1, 390, -1, -1, -1, -1, -1, -1, 293, 398, -1, -1, 297, -1, -1, 372, -1, + -1, -1, -1, -1, -1, 307, -1, -1, -1, -1, -1, -1, -1, -1, 316, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 398, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, -1, -1, -1, + -1, -1, -1, -1, -1, 353, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 372, -1, -1, -1, 448, -1, -1, 483, -1, -1, -1, -1, -1, -1, -1, 491, -1, 0, 1, 2, 3, 4, 5, + 6, 7, 8, 398, 10, 11, 12, -1, 507, -1, 509, 510, 18, -1, 20, 21, 22, 484, 24, 25, 26, 27, -1, + 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, + -1, 54, 55, 56, 57, 58, 448, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, 484, -1, 97, 98, + 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, + 119, -1, -1, 122, 123, 124, 125, 126, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, 155, 156, 157, + 158, 159, 160, 161, 162, -1, 164, 165, 166, -1, -1, 169, 170, 171, 172, 173, 174, 175, -1, 177, + 178, 179, 180, -1, 182, 183, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, -1, + 216, 217, -1, -1, -1, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, -1, 250, 251, 252, 253, -1, + -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, + -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, 312, 313, 314, + 315, 316, -1, 318, 319, 320, -1, 322, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, + -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, + 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, + 374, 375, 376, 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, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, + 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, 448, -1, -1, + -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, + -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, 483, -1, 485, 486, 487, 488, 489, -1, + 491, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, 507, 508, 509, + 510, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, 18, -1, + 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, + 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, + 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, -1, -1, 87, -1, -1, -1, -1, + -1, 93, 94, -1, -1, 97, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, + 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, 126, -1, 128, -1, 130, 131, 132, + 133, -1, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, + 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, -1, 164, 165, 166, -1, -1, 169, 170, 171, 172, + 173, 174, 175, -1, 177, 178, 179, 180, -1, 182, 183, 184, 185, 186, -1, 188, 189, 190, -1, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, -1, 216, 217, -1, -1, -1, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, -1, 250, 251, + 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, + 312, 313, 314, 315, 316, -1, 318, 319, 320, -1, 322, 323, 324, -1, 326, 327, -1, 329, 330, 331, + 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, + 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, + 371, -1, 373, 374, 375, 376, 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, 402, 403, -1, 405, 406, 407, 408, + -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, + 448, -1, -1, -1, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, + 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, 483, -1, 485, 486, 487, + 488, 489, -1, 491, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, 507, + 508, 509, 510, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, + -1, 18, 19, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, + 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, 59, -1, -1, -1, 63, 64, + 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, -1, -1, 87, -1, + -1, -1, -1, -1, 93, 94, -1, -1, 97, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, 126, -1, 128, -1, + 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, -1, -1, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, -1, 164, 165, 166, -1, 168, + 169, 170, 171, 172, 173, 174, 175, -1, 177, 178, 179, 180, -1, 182, 183, 184, 185, 186, -1, + 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, -1, 216, 217, -1, -1, -1, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, + 246, -1, 248, -1, 250, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, 305, + 306, -1, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, -1, 322, 323, 324, -1, + 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, + 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, + 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 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, 402, + 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, + 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 442, 443, -1, 445, 446, -1, 448, -1, -1, -1, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, + 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, + 482, 483, -1, 485, 486, 487, 488, 489, -1, 491, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, + 502, 503, 504, 505, -1, 507, 508, 509, 510, 511, 512, -1, 514, 515, 516, 517, -1, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, + 10, 11, 12, -1, -1, -1, -1, -1, 18, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, + 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, + 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, 97, 98, 99, 100, 101, 102, 103, + 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, + 124, 125, 126, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, -1, + 164, 165, 166, -1, -1, 169, 170, 171, 172, 173, 174, 175, -1, 177, 178, 179, 180, -1, 182, 183, + 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, -1, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, -1, 216, 217, -1, -1, -1, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, + -1, -1, 244, 245, 246, -1, 248, -1, 250, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, + -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, + -1, 322, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, + 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, + 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 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, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, + 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, 448, -1, -1, -1, 452, -1, 454, 455, 456, + 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, + 477, -1, 479, 480, 481, 482, 483, -1, 485, 486, 487, 488, 489, -1, 491, 492, 493, 494, 495, + 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, 507, 508, 509, 510, 511, 512, -1, 514, 515, + 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, + 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, 18, -1, 20, 21, 22, -1, 24, 25, 26, + 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, + 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, 97, 98, + 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, + 119, -1, -1, 122, 123, 124, 125, 126, 127, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, 155, 156, 157, + 158, 159, 160, 161, 162, -1, 164, 165, 166, -1, -1, 169, 170, 171, 172, 173, 174, 175, -1, 177, + 178, 179, 180, -1, 182, 183, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, -1, + 216, 217, -1, -1, -1, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, -1, 242, -1, 244, 245, 246, -1, 248, -1, 250, 251, 252, 253, -1, + -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, + -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, 312, 313, 314, + 315, 316, -1, 318, 319, 320, -1, 322, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, + -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, + 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, + 374, 375, 376, 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, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, + 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, 448, -1, + 450, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, + 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, 483, -1, 485, 486, 487, 488, 489, + -1, 491, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, 507, 508, 509, + 510, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, 128, 129, 130, 131, + 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, 261, 262, 263, 264, + 265, 266, 267, 268, 269, -1, 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, -1, 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, 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, 402, 403, 404, 405, 406, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, -1, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, 512, + 513, 514, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, -1, + 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, -1, 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, -1, 128, 129, 130, 131, 132, 133, 134, + 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + -1, 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, 261, 262, 263, 264, 265, 266, 267, + 268, 269, -1, 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 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, -1, -1, 329, 330, 331, 332, 333, 334, -1, 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, 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, + 402, 403, -1, 405, 406, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, -1, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, 512, -1, -1, 515, 516, + 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, -1, 532, 533, 0, 1, 2, 3, + 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, + 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, + -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, + 77, 78, 79, 80, 81, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, + 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, + 119, -1, -1, 122, 123, 124, 125, 126, 127, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, 155, 156, 157, + 158, 159, 160, 161, 162, -1, 164, 165, 166, -1, 168, -1, 170, 171, 172, 173, 174, 175, -1, 177, + 178, 179, 180, -1, 182, 183, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, 213, 214, -1, + 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, -1, 242, -1, 244, 245, -1, -1, 248, -1, 250, 251, 252, 253, -1, -1, + 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, + -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, 312, 313, 314, 315, + 316, -1, 318, 319, 320, -1, 322, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, + 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, + 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, -1, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, + 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, 448, -1, -1, 451, + 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, + 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, 483, -1, 485, 486, 487, 488, 489, -1, -1, + 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, 507, 508, 509, 510, + 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, + 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, + 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, + -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, 81, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, + 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, + 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, 126, 127, 128, -1, 130, 131, 132, 133, + -1, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, + -1, 155, 156, 157, 158, 159, 160, 161, 162, -1, 164, 165, 166, -1, 168, -1, 170, 171, 172, 173, + 174, 175, -1, 177, 178, 179, 180, -1, 182, 183, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, + 213, 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, -1, 242, -1, 244, 245, -1, -1, 248, -1, 250, 251, 252, + 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, 312, + 313, 314, 315, 316, -1, 318, 319, 320, -1, 322, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, + -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, + 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, + -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, -1, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, + 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, + 448, -1, -1, 451, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, + 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, 483, -1, 485, 486, 487, + 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, 507, + 508, 509, 510, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, + -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, + 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, + 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, 81, -1, 83, 84, -1, -1, 87, -1, + -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, + 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, 126, 127, 128, -1, + 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, -1, -1, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, -1, 164, 165, 166, -1, 168, + -1, 170, 171, 172, 173, 174, 175, -1, 177, 178, 179, 180, -1, 182, 183, 184, 185, 186, -1, 188, + 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, + 208, 209, 210, 211, 212, 213, 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, 242, -1, 244, 245, -1, -1, + 248, -1, 250, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, + 308, 309, 310, 311, 312, 313, 314, 315, 316, -1, 318, 319, 320, -1, 322, 323, 324, -1, 326, + 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, + 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, + 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, -1, + 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, + 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, + 443, -1, 445, 446, -1, 448, -1, -1, 451, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, + 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, + 483, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, + 503, 504, 505, -1, 507, 508, 509, 510, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, + 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, + 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, + 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, + 84, -1, -1, 87, -1, 89, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, + 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, + -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, -1, 152, 153, 154, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, + 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 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, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, + -1, 244, 245, 246, -1, 248, 249, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, -1, + -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, 316, -1, 318, 319, 320, -1, + -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, + 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, + 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, 453, 454, 455, + 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, 471, 472, 473, -1, 475, + 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, + 496, 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, + 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, + 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, + 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, + 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, + 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, + 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, + 119, -1, -1, 122, 123, 124, 125, 126, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, + 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, + 159, 160, -1, 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, + 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, + -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, + 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, + 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, + 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, + 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, + 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, + 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, + 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, + 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, 448, -1, -1, -1, 452, -1, 454, + 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, + 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, 81, 492, 493, 494, + 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, 97, 508, -1, -1, 511, 512, -1, -1, + 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 15, -1, 126, -1, -1, -1, -1, -1, 15, 24, -1, -1, -1, 53, -1, -1, 140, 24, 33, 59, -1, -1, -1, + -1, -1, -1, 33, -1, -1, -1, -1, 155, -1, -1, 74, -1, -1, 161, -1, -1, -1, 165, -1, -1, 59, -1, + -1, -1, -1, -1, 174, -1, 59, -1, -1, -1, -1, 97, -1, 183, -1, -1, -1, -1, -1, 105, 81, 107, -1, + -1, -1, -1, -1, -1, 81, -1, -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, 126, -1, 95, 213, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 126, -1, -1, -1, + -1, -1, -1, -1, 126, -1, -1, -1, -1, -1, -1, 250, -1, -1, -1, -1, -1, 172, -1, -1, -1, 151, -1, + -1, -1, 155, -1, -1, -1, 151, -1, 161, -1, 155, -1, 165, -1, -1, -1, 161, -1, -1, -1, 165, 174, + -1, 176, -1, -1, 204, -1, 181, 174, -1, 176, -1, -1, -1, -1, 181, -1, 191, -1, -1, -1, -1, -1, + -1, -1, 191, -1, -1, -1, 312, -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, 218, + 219, 220, -1, -1, -1, -1, -1, 218, 219, 220, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 247, -1, 249, 250, -1, -1, -1, -1, 247, -1, 249, 250, -1, -1, 261, -1, + -1, -1, -1, -1, -1, -1, 261, -1, -1, 297, -1, -1, -1, -1, -1, 387, -1, 280, 306, 307, -1, -1, + -1, -1, -1, 280, 398, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 300, 301, 302, -1, -1, -1, -1, + -1, 300, 301, 302, -1, -1, -1, -1, -1, 316, -1, 318, -1, -1, 321, -1, -1, 316, -1, 318, -1, + 353, 321, -1, -1, -1, 333, -1, -1, -1, -1, -1, 448, -1, 333, -1, -1, -1, -1, -1, 372, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 361, 362, -1, -1, -1, -1, -1, -1, 361, 362, -1, -1, + 398, 483, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 387, -1, -1, -1, -1, -1, -1, -1, 387, + 396, 397, 398, -1, 509, 510, -1, -1, 396, 397, 398, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 421, -1, 448, -1, -1, -1, -1, -1, 421, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, -1, -1, -1, -1, -1, 448, 449, 450, 484, -1, -1, -1, + -1, -1, -1, 491, -1, -1, -1, -1, -1, -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, 474, -1, -1, 510, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, 510, -1, + -1, -1, -1, 20, 21, 22, 510, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, + 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, + 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, + -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, + 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, + 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, -1, -1, -1, + 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, + 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, + 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, + -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, + 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, + 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, + 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, + 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, + -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, + 445, 446, -1, -1, -1, -1, 451, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, + -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, + 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, + 505, -1, -1, 508, -1, 510, 511, 512, -1, 514, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 17, 18, -1, -1, -1, -1, -1, 17, 18, -1, -1, -1, + 15, -1, -1, 32, -1, -1, -1, -1, -1, 24, 32, -1, -1, -1, 43, -1, -1, -1, 33, -1, -1, 43, -1, -1, + -1, -1, 81, 82, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 97, -1, 59, -1, -1, -1, + -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, -1, -1, 97, -1, -1, + 126, -1, -1, -1, 97, 105, -1, -1, -1, 95, -1, 97, 105, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 126, 127, -1, 155, -1, -1, -1, 126, 127, 161, -1, -1, -1, 165, 126, -1, -1, 169, + -1, -1, -1, -1, 174, 149, -1, 151, -1, -1, 180, -1, 149, 183, 151, -1, -1, -1, -1, -1, -1, 151, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 206, -1, -1, -1, -1, -1, -1, 213, -1, + -1, 176, -1, -1, 193, -1, 181, 222, -1, -1, -1, 193, -1, -1, -1, -1, 191, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 246, -1, -1, -1, 250, -1, -1, -1, -1, -1, -1, -1, 218, 219, + 220, -1, -1, -1, 238, -1, -1, -1, 242, -1, 244, 238, -1, -1, -1, 242, -1, 244, -1, -1, -1, -1, + -1, -1, 284, -1, 260, 247, -1, 249, -1, -1, -1, 260, -1, -1, -1, -1, -1, -1, -1, 261, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 312, -1, -1, -1, 316, -1, -1, -1, 280, -1, 322, 297, -1, -1, + -1, -1, -1, -1, 297, -1, -1, -1, -1, -1, -1, -1, -1, -1, 300, 301, 302, -1, -1, -1, -1, -1, + 322, -1, -1, -1, -1, -1, -1, 322, -1, -1, 318, -1, 334, 321, -1, -1, -1, -1, -1, 334, -1, -1, + -1, -1, -1, 333, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 387, -1, -1, 390, -1, -1, + -1, 361, -1, -1, -1, 398, -1, -1, 361, 362, -1, -1, -1, -1, -1, -1, 383, -1, -1, 386, -1, 388, + -1, 383, -1, -1, 386, -1, 388, -1, 397, 398, -1, -1, -1, -1, -1, 397, 398, -1, -1, 408, -1, -1, + -1, -1, -1, -1, 408, 416, -1, -1, -1, -1, -1, 448, 416, -1, -1, -1, 453, -1, 429, -1, -1, -1, + -1, -1, 421, 429, -1, 438, -1, -1, -1, -1, 443, -1, 438, -1, -1, 448, -1, 443, -1, -1, -1, -1, + 448, -1, 483, -1, -1, -1, -1, 448, 449, 450, 491, -1, 467, -1, -1, -1, -1, -1, -1, 467, -1, -1, + -1, -1, -1, -1, 507, -1, 509, 510, -1, -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 505, -1, -1, -1, 509, -1, -1, 505, -1, -1, -1, 509, 0, 1, 2, 3, 4, 5, 6, 7, + 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, -1, 31, + 32, -1, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, + 56, 57, -1, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, + 80, -1, 82, 83, 84, -1, -1, 87, -1, 89, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, + 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, + 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, + 143, 144, -1, 146, 147, 148, 149, -1, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, + -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, -1, -1, 179, -1, -1, 182, -1, + 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, -1, 205, 206, -1, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, + 223, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, + 244, -1, 246, -1, 248, 249, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, + 264, 265, 266, 267, -1, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, -1, 296, 297, 298, 299, 300, -1, -1, 303, + -1, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, + 324, 325, -1, 327, 328, -1, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, + 344, 345, 346, -1, 348, -1, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, + 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, -1, 399, 400, 401, + 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, -1, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, 453, 454, 455, 456, 457, 458, 459, + -1, 461, 462, 463, -1, -1, 466, 467, -1, 469, -1, -1, 472, 473, -1, 475, 476, 477, -1, 479, + 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, -1, 497, 498, -1, + 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, -1, 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, -1, -1, 128, 129, 130, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, -1, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, -1, 177, 178, 179, 180, -1, + 182, 183, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 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, -1, 243, 244, 245, 246, -1, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, + 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, -1, -1, 303, 304, -1, 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, -1, 334, + -1, 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, -1, -1, 363, 364, 365, -1, 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, 397, -1, 399, 400, 401, 402, 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, 445, 446, 447, -1, + -1, -1, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, -1, 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, -1, + -1, 128, 129, 130, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, -1, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + -1, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, -1, 177, 178, 179, 180, -1, 182, 183, + 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 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, -1, 243, 244, 245, 246, -1, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, + -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, -1, -1, 303, 304, -1, 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, -1, 334, -1, 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, -1, -1, 363, 364, 365, -1, 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, 397, -1, 399, 400, 401, 402, 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, 445, 446, 447, -1, -1, -1, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, -1, -1, -1, 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, -1, -1, 128, + 129, 130, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, -1, 152, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, -1, 177, 178, 179, 180, -1, 182, 183, 184, 185, + 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 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, -1, + 243, 244, 245, 246, -1, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, -1, -1, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + -1, -1, 303, 304, -1, 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, -1, 334, -1, 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, -1, -1, 363, 364, 365, -1, 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, 397, -1, 399, 400, 401, 402, 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, 445, 446, 447, -1, -1, -1, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, + 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, + 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, + 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, + -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, 105, 106, -1, 108, 109, 110, 111, 112, + 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, + 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, + 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, + 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, + 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, + 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, + -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, + 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, + 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, + 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, + -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, + 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, + -1, -1, -1, -1, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, + 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, + 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, + 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, + -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, + 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, 62, 63, 64, 65, + 66, 67, 68, -1, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, + -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, + 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, + 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, -1, -1, -1, 170, + 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, + -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, + 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, -1, + -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, + 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, + 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, + 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, + 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, + 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, + 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, + 446, -1, -1, -1, -1, -1, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, 464, -1, + 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, + 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, + -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, + -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, + 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, 62, 63, + 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, + -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, + 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, + 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, -1, -1, -1, + 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, + 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, + 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, + -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, + 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, + 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, + 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, + 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, + 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, + 446, -1, -1, -1, -1, -1, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, 464, 15, + 466, 467, 468, 469, 470, -1, 472, 473, 24, 475, 476, 477, -1, 479, 480, 481, 482, 33, -1, 485, + 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, + -1, -1, 508, 59, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, -1, -1, -1, 53, -1, -1, -1, -1, -1, 59, -1, 95, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 97, -1, -1, -1, -1, -1, -1, -1, 105, -1, 107, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 151, -1, -1, -1, -1, -1, -1, -1, -1, 126, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 176, -1, -1, -1, -1, 181, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 172, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 218, 219, 220, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 204, -1, -1, -1, -1, -1, -1, -1, -1, 247, -1, 249, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 261, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 280, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 300, 301, 302, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, -1, -1, 321, -1, -1, -1, -1, -1, 293, -1, + -1, -1, 297, -1, 333, -1, -1, -1, -1, -1, -1, -1, 307, -1, -1, -1, -1, -1, -1, -1, -1, 316, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 361, 362, -1, -1, -1, 366, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 353, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 372, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 421, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 398, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, + 10, 11, 12, 449, 450, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, + 33, 34, -1, 36, 37, 474, 39, 40, 41, 42, 43, 44, 45, 448, -1, 48, 49, 50, 51, 52, -1, 54, 55, + 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, + 80, -1, 484, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, + 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, + 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, + -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, + 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, 219, -1, 221, -1, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, + -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, + 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, + 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, + 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, + -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, + 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, + 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, + 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, -1, 454, 455, 456, 457, 458, + 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, + 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, + -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, + 32, -1, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, -1, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, -1, 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, -1, -1, 128, 129, 130, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, + 141, 142, 143, 144, -1, 146, 147, 148, 149, -1, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, -1, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, -1, -1, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 234, 235, 236, 237, + 238, 239, 240, 241, -1, 243, 244, -1, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, -1, 261, 262, 263, 264, 265, 266, 267, -1, 269, 270, 271, 272, -1, -1, -1, -1, + -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, -1, + 296, 297, 298, 299, 300, 301, -1, 303, -1, -1, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, -1, 327, 328, -1, 330, 331, 332, 333, + 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, -1, 348, -1, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 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, -1, 399, 400, 401, 402, 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, -1, 443, 444, 445, 446, 447, + -1, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, -1, 469, -1, 471, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, -1, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, -1, -1, 515, 516, 517, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, + -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, -1, 31, 32, -1, 34, 35, 36, 37, -1, 39, 40, 41, + 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, -1, -1, 60, -1, -1, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, -1, -1, 87, -1, 89, + -1, -1, -1, 93, 94, -1, -1, 97, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, + 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, + 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, -1, 146, 147, 148, 149, -1, + -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, + 171, 172, 173, -1, 175, -1, -1, -1, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, 206, -1, 208, 209, + 210, 211, 212, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, -1, 246, -1, 248, 249, -1, 251, + 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, -1, 269, 270, 271, + 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, -1, -1, 296, -1, 298, 299, 300, -1, -1, 303, -1, -1, 306, -1, 308, 309, 310, 311, -1, + 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, 325, -1, 327, 328, -1, 330, 331, 332, + -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, -1, 348, -1, 350, 351, 352, + -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, + 392, 393, 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, + 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, -1, 443, -1, 445, 446, -1, -1, -1, + -1, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, -1, 469, + -1, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, + -1, -1, 492, 493, 494, 495, -1, 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, + -1, 511, 512, -1, -1, 515, 516, 517, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 530, 531, + 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, 17, -1, -1, 20, 21, 22, + -1, 24, 25, 26, 27, 28, 29, -1, 31, 32, -1, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, + -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, -1, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, -1, -1, 87, -1, 89, -1, -1, -1, 93, 94, + -1, -1, 97, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, + -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, -1, + 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, -1, 146, 147, 148, 149, -1, 151, -1, 153, -1, + -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, -1, + 175, -1, -1, -1, 179, -1, -1, 182, -1, 184, 185, 186, -1, 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, -1, + 214, -1, 216, 217, 218, 219, 220, 221, 222, 223, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 234, + 235, 236, 237, 238, 239, 240, -1, 242, -1, 244, -1, 246, -1, 248, 249, -1, 251, 252, 253, -1, + -1, 256, 257, 258, 259, 260, -1, 262, 263, 264, 265, 266, 267, -1, 269, 270, 271, 272, -1, -1, + -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, + -1, 296, -1, 298, 299, 300, -1, -1, 303, -1, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, + 315, -1, -1, 318, 319, 320, -1, 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, -1, 334, + -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, -1, 348, -1, 350, 351, 352, -1, 354, + 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, + 394, 395, -1, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, + 413, 414, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, -1, 443, -1, 445, 446, -1, -1, -1, -1, -1, + 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, -1, 469, -1, -1, + 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, + 492, 493, 494, 495, -1, 497, 498, 499, 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, + 512, -1, -1, 515, 516, 517, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 530, 531, 532, 533, + 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, + 26, 27, 28, 29, -1, 31, 32, -1, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, + 50, 51, 52, -1, 54, 55, 56, 57, -1, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, -1, -1, 87, -1, 89, -1, -1, -1, 93, 94, -1, -1, -1, + 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, + 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, + 138, 139, -1, 141, 142, 143, 144, -1, 146, 147, 148, 149, -1, -1, -1, 153, -1, -1, 156, 157, + 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, -1, + -1, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, -1, 205, 206, -1, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, + -1, 219, 220, 221, 222, 223, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 234, 235, 236, 237, 238, + 239, 240, -1, -1, -1, 244, -1, 246, -1, 248, 249, -1, 251, 252, 253, -1, -1, 256, 257, 258, + 259, -1, -1, 262, 263, 264, 265, 266, 267, -1, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, + 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, -1, -1, 296, -1, 298, + 299, 300, -1, -1, 303, -1, -1, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, + 319, 320, -1, -1, 323, 324, 325, -1, 327, 328, -1, 330, 331, 332, -1, 334, -1, 336, 337, 338, + 339, 340, 341, 342, -1, 344, 345, 346, -1, 348, -1, 350, 351, 352, -1, 354, 355, 356, 357, 358, + 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, + -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, -1, 443, -1, 445, 446, -1, -1, -1, -1, 451, 452, 453, 454, 455, 456, + 457, 458, 459, -1, 461, 462, 463, -1, 15, 466, 467, -1, 469, -1, -1, 472, 473, 24, 475, 476, + 477, -1, 479, 480, 481, 482, 33, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, -1, + 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, -1, 508, 59, 15, 511, 512, -1, -1, 515, 516, + 517, -1, 24, -1, -1, -1, 15, -1, -1, 18, -1, 33, -1, 530, 531, 532, 533, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 95, -1, -1, -1, -1, 18, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, 53, -1, + -1, 32, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, 43, -1, -1, -1, -1, -1, 1, 74, -1, -1, -1, -1, + -1, -1, -1, 95, -1, 97, -1, -1, -1, -1, -1, 18, -1, -1, 151, -1, 95, -1, 97, -1, -1, -1, -1, + -1, -1, 80, 105, -1, 107, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 176, -1, -1, 97, -1, 181, -1, + -1, 126, -1, -1, -1, -1, -1, -1, 191, -1, -1, -1, -1, 151, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 126, 151, -1, -1, -1, -1, -1, -1, -1, -1, 218, 219, 220, 176, -1, -1, -1, -1, 181, 97, + -1, -1, 172, 149, -1, -1, 176, 105, 191, -1, -1, 181, -1, -1, -1, -1, -1, -1, 188, 247, -1, + 249, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 130, 261, 204, 218, 219, 220, -1, 137, -1, -1, -1, + -1, -1, -1, -1, 193, 218, 219, 15, -1, 280, 18, 152, -1, -1, -1, -1, -1, -1, -1, -1, -1, 247, + -1, 249, -1, -1, -1, -1, -1, 300, 301, 302, -1, -1, 247, 261, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 53, -1, 318, 261, 238, 321, 59, -1, -1, 280, 244, -1, -1, -1, -1, -1, -1, 333, -1, -1, -1, + 74, 280, -1, -1, -1, -1, -1, -1, 300, 301, 302, -1, -1, -1, -1, -1, -1, -1, 297, -1, -1, 95, + 301, 97, 361, 362, 318, 234, 307, 321, -1, 105, -1, 107, -1, -1, -1, -1, -1, 318, -1, 333, 297, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 126, -1, 333, -1, -1, -1, -1, -1, -1, -1, -1, 342, -1, -1, + -1, -1, -1, 361, 362, -1, -1, -1, 353, -1, -1, 151, -1, 334, -1, -1, 361, 362, 421, -1, -1, -1, + -1, -1, -1, -1, -1, 372, -1, -1, -1, -1, 172, -1, 307, -1, 176, -1, -1, -1, 398, 181, 315, -1, + -1, -1, 449, 450, 188, 322, -1, -1, -1, 398, -1, -1, -1, 460, -1, -1, -1, -1, 383, 421, 204, + 386, -1, 388, -1, 342, -1, 474, -1, -1, -1, -1, 397, -1, 218, 219, -1, -1, -1, -1, -1, -1, -1, + 408, -1, -1, -1, 449, 450, -1, -1, 416, -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, -1, 247, + 429, -1, -1, -1, -1, -1, 387, -1, 474, 438, -1, -1, -1, 261, 443, -1, -1, 398, -1, 448, -1, + 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, 484, 280, -1, -1, -1, -1, -1, 467, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 297, -1, -1, -1, 301, -1, -1, -1, -1, -1, 307, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 318, -1, -1, -1, -1, -1, 505, -1, -1, -1, 509, -1, -1, -1, -1, 333, -1, -1, -1, -1, + 471, -1, -1, -1, 342, -1, -1, -1, -1, -1, -1, -1, -1, -1, 485, 353, -1, -1, -1, -1, -1, -1, -1, + 361, 362, -1, -1, -1, -1, -1, -1, -1, -1, -1, 372, -1, -1, -1, -1, 510, -1, 512, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 398, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 474, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 484, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, 128, + 129, 130, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + -1, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 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, -1, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, -1, 261, + 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, 328, 329, 330, 331, 332, 333, 334, -1, 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, + 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, 402, 403, -1, 405, 406, -1, 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, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, -1, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, -1, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, 17, -1, -1, 20, + 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, 105, 106, -1, 108, 109, 110, 111, 112, + 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, + 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, + 153, 154, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, + 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 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, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, 249, -1, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, -1, 306, 307, 308, + 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, + 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, + 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, + 443, -1, 445, 446, 447, -1, -1, -1, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, + 463, 464, -1, 466, 467, 468, 469, 470, 471, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, + 482, -1, 484, 485, 486, 487, 488, 489, 490, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, + 501, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, + 10, 11, 12, -1, -1, -1, -1, 17, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, + 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, + 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, + 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, -1, 156, 157, 158, 159, 160, -1, 162, -1, + 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, + 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, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, + -1, -1, 244, 245, 246, -1, 248, 249, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, -1, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, + -1, -1, 303, 304, -1, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, + -1, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, 334, 335, 336, 337, 338, 339, + 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, + 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, -1, -1, 452, 453, 454, 455, + 456, 457, 458, 459, -1, 461, 462, 463, -1, 15, 466, 467, 468, 469, 470, 471, 472, 473, 24, 475, + 476, 477, -1, 479, 480, 481, 482, 33, -1, 485, 486, 487, 488, 489, 490, -1, 492, 493, 494, 495, + 496, 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, -1, 508, 59, -1, 511, 512, -1, -1, 515, + 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 151, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 176, -1, -1, + -1, -1, 181, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, 219, 220, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 247, + -1, 249, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 261, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 280, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 300, 301, 302, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 318, -1, -1, 321, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 333, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 352, -1, -1, -1, -1, -1, -1, -1, -1, 361, 362, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 398, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 421, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 440, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, -1, -1, -1, -1, -1, + -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 474, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, -1, 31, 32, -1, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, -1, 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, -1, 128, 129, 130, 131, 132, 133, 134, 135, + -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, + 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, 188, 189, 190, -1, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, -1, 243, 244, 245, 246, 247, 248, -1, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, -1, 261, 262, 263, 264, 265, 266, 267, 268, + 269, -1, 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, -1, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + -1, -1, 329, 330, 331, 332, 333, 334, -1, 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, 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, 402, + 403, -1, 405, 406, -1, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, -1, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, -1, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, 512, -1, -1, 515, 516, 517, + -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, + 31, 32, -1, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, + 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, 128, 129, 130, 131, 132, 133, 134, 135, -1, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, -1, 243, 244, 245, 246, 247, 248, -1, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, + -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, -1, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, -1, -1, 329, 330, + 331, 332, 333, 334, -1, 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, 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, 402, 403, -1, 405, 406, + -1, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, -1, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, -1, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, + 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, 128, 129, 130, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, -1, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, -1, 243, 244, 245, 246, 247, 248, -1, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, -1, -1, -1, -1, + -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, -1, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, -1, -1, 329, 330, 331, 332, 333, + 334, -1, 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, 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, 402, 403, -1, 405, 406, -1, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, -1, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, -1, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, + -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, + 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, + 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, + 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, + 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, + -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, -1, -1, -1, + 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, + 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, + 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, + -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, + 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, 322, 323, 324, -1, 326, 327, -1, + 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, + 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, + 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, -1, 405, + 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, + 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + -1, 445, 446, -1, -1, -1, -1, -1, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, + -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, + 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, + 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, + -1, -1, -1, 18, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, + 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, + 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, -1, -1, + 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, + 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, + -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, -1, -1, 153, -1, 155, 156, 157, 158, 159, 160, 161, 162, -1, 164, -1, 166, -1, + -1, 169, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, + 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, -1, 216, 217, -1, -1, -1, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, + 246, -1, 248, -1, 250, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, + 306, -1, 308, 309, 310, 311, 312, 313, 314, 315, -1, -1, 318, 319, 320, -1, 322, 323, 324, -1, + 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, + 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, + 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, + 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, + 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, + 482, 483, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, + 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, + 11, 12, -1, -1, -1, -1, 17, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, + -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, + -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, + 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, + -1, 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 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, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, + -1, 244, 245, 246, -1, 248, 249, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, -1, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, -1, + -1, 303, 304, -1, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, + -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, + 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, + 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, -1, -1, 452, 453, 454, 455, 456, + 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, 471, 472, 473, -1, 475, 476, + 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, 490, -1, 492, 493, 494, 495, 496, + 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 81, 82, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 81, 82, -1, -1, 97, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 97, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 126, -1, 15, -1, + -1, -1, 15, -1, -1, -1, -1, 24, 126, -1, 140, 24, -1, -1, -1, -1, 33, -1, -1, -1, 33, -1, 140, + -1, -1, 155, -1, -1, -1, -1, -1, 161, -1, -1, -1, 165, -1, 155, -1, 169, -1, -1, 59, 161, 174, + -1, 59, 165, -1, -1, 180, 169, -1, 183, -1, -1, 174, -1, -1, -1, -1, -1, 180, -1, -1, 183, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 206, -1, 95, -1, -1, -1, 95, 213, -1, -1, -1, -1, 206, -1, + -1, -1, 222, -1, -1, 213, -1, 81, 82, -1, -1, -1, -1, -1, 222, -1, -1, -1, -1, -1, -1, -1, -1, + 97, -1, -1, 246, 134, -1, -1, 250, -1, -1, -1, -1, -1, -1, -1, 246, -1, 260, -1, 250, -1, 151, + -1, -1, -1, 151, -1, -1, -1, 126, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 284, -1, 140, -1, + -1, 176, -1, -1, -1, 176, 181, -1, 284, -1, 181, -1, -1, 155, -1, -1, 191, -1, -1, 161, 191, + -1, -1, 165, 312, -1, -1, 169, 316, -1, -1, -1, 174, -1, 322, -1, 312, -1, 180, -1, 316, 183, + -1, 218, 219, 220, 322, 218, 219, 220, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 206, -1, -1, -1, -1, -1, -1, 213, 247, -1, 249, -1, 247, -1, 249, -1, 222, -1, -1, -1, -1, -1, + 261, -1, -1, -1, 261, -1, -1, -1, -1, -1, -1, -1, -1, 387, -1, -1, 390, -1, 246, 280, -1, -1, + 250, 280, 398, 387, -1, -1, 390, -1, -1, -1, 260, -1, -1, -1, 398, -1, -1, 300, 301, 302, -1, + 300, 301, 302, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 284, 318, -1, -1, 321, 318, -1, -1, 321, + -1, -1, -1, -1, -1, -1, -1, 333, -1, 448, -1, 333, -1, -1, 453, -1, -1, -1, -1, 312, -1, 448, + -1, 316, -1, -1, 453, -1, -1, 322, -1, -1, -1, -1, -1, 361, 362, -1, -1, 361, 362, -1, -1, -1, + 483, -1, -1, -1, -1, -1, -1, -1, 491, -1, -1, -1, 483, -1, -1, -1, -1, -1, -1, -1, 491, -1, -1, + -1, 507, -1, 509, 510, -1, -1, -1, -1, 398, -1, -1, -1, 507, -1, 509, 510, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 387, 421, -1, 390, -1, 421, -1, -1, -1, -1, -1, 398, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, -1, -1, 449, 450, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 474, -1, -1, -1, 474, -1, -1, 448, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 483, -1, -1, -1, -1, -1, -1, -1, 491, -1, 0, 1, 2, 3, 4, 5, + 6, 7, 8, -1, 10, 11, 12, -1, 507, -1, 509, 510, 18, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, + -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, + 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, 97, 98, 99, 100, + 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, + -1, 122, 123, 124, 125, 126, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, 155, 156, 157, 158, 159, + 160, 161, 162, -1, 164, 165, 166, -1, -1, 169, 170, 171, 172, 173, 174, 175, -1, 177, 178, 179, + 180, -1, 182, 183, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, -1, 216, 217, + -1, -1, -1, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, -1, 250, 251, 252, 253, -1, -1, 256, + 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, + -1, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, 312, 313, 314, 315, + 316, -1, 318, 319, 320, -1, 322, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, + 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, + 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, + 375, 376, 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, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, + 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, 448, -1, -1, -1, + 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, + 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, 483, -1, 485, 486, 487, 488, 489, -1, 491, + 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, 507, 508, 509, 510, + 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, 18, -1, 20, + 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, + 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, + -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, + 93, 94, -1, -1, 97, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, + 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, 126, 127, 128, -1, 130, 131, 132, 133, + -1, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, + -1, 155, 156, 157, 158, 159, 160, 161, 162, -1, 164, 165, 166, -1, -1, 169, 170, 171, 172, 173, + 174, 175, -1, 177, 178, 179, 180, -1, 182, 183, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, -1, 216, 217, -1, -1, -1, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, -1, 242, -1, 244, 245, 246, -1, 248, -1, 250, 251, 252, + 253, -1, -1, 256, 257, 258, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, + 312, 313, 314, 315, 316, -1, 318, 319, 320, -1, 322, 323, 324, -1, 326, 327, -1, 329, 330, 331, + 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, + 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, + 371, -1, 373, 374, 375, 376, 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, 402, 403, -1, 405, 406, 407, 408, + -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, + 448, -1, 450, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, + 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, 483, -1, 485, 486, 487, + 488, 489, -1, 491, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, 507, + 508, 509, 510, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 15, -1, -1, -1, -1, -1, 15, -1, -1, 24, -1, -1, -1, 15, -1, + 24, -1, -1, 33, -1, -1, -1, 24, -1, 33, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, 53, -1, -1, -1, + -1, -1, 59, -1, -1, 59, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, 74, 59, -1, -1, -1, -1, -1, + -1, -1, -1, 81, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 97, 95, -1, -1, -1, -1, -1, 95, + 105, -1, 107, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 121, -1, 126, -1, + -1, 126, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 126, 140, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 151, -1, -1, -1, 155, -1, 151, -1, -1, -1, 161, -1, -1, 151, 165, -1, -1, -1, 172, + -1, -1, -1, -1, 174, -1, 176, -1, -1, -1, 180, 181, 176, 183, -1, -1, -1, 181, -1, 176, -1, + 191, -1, -1, 181, -1, -1, 191, -1, -1, -1, 204, -1, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, + 213, -1, -1, -1, -1, 218, 219, 220, -1, -1, -1, 218, 219, 220, -1, -1, -1, -1, 218, 219, 220, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 247, -1, 249, 250, -1, -1, 247, -1, 249, + -1, -1, -1, -1, 247, 261, 249, -1, -1, -1, -1, 261, -1, -1, -1, -1, -1, -1, 261, -1, -1, -1, + -1, -1, 280, -1, -1, -1, -1, -1, 280, -1, -1, -1, 293, -1, -1, 280, 297, -1, -1, -1, -1, -1, + 300, 301, 302, -1, 307, -1, 300, 301, 302, -1, -1, -1, 312, 300, 301, 302, 316, -1, 318, -1, + -1, 321, 322, -1, 318, -1, -1, 321, -1, -1, -1, 318, -1, 333, 321, -1, -1, -1, -1, 333, -1, -1, + -1, -1, -1, -1, 333, -1, -1, -1, 353, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 361, 362, -1, -1, + -1, -1, 361, 362, 372, -1, -1, -1, -1, 361, 362, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 387, -1, -1, -1, -1, -1, -1, -1, 398, -1, -1, 398, -1, 387, -1, -1, -1, 398, -1, -1, -1, -1, + -1, -1, 398, -1, -1, -1, -1, -1, -1, -1, -1, -1, 421, -1, -1, -1, -1, -1, 421, -1, -1, -1, -1, + -1, -1, 421, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, -1, -1, 448, 449, 450, -1, -1, -1, + -1, 449, 450, -1, -1, -1, -1, 448, 449, 450, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 474, -1, + -1, -1, -1, -1, 474, 484, -1, 483, -1, -1, -1, 474, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, + 10, 11, 12, -1, -1, -1, -1, -1, 509, 510, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, + 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, + 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, + -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, + 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, + 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, + 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, + 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, + -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, + -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, + 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, + 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, + 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, + 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, + 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, + 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, 451, 452, -1, 454, 455, 456, 457, 458, + 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, + 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, + -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, + 8, -1, 10, 11, 12, -1, -1, -1, -1, 17, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, 55, + 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, + 80, -1, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, + 103, 104, 105, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, + 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, -1, 156, 157, 158, 159, 160, -1, + 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, + 182, -1, 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, -1, 214, -1, 216, 217, -1, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, -1, -1, -1, 244, 245, 246, -1, 248, 249, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, -1, 302, 303, 304, -1, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, + 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, + 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, -1, -1, 452, + 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, 471, + 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, 484, 485, 486, 487, 488, 489, 490, 81, + 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, 97, 508, -1, -1, 511, + 512, -1, -1, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 17, 18, 126, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 32, 140, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 43, -1, -1, -1, -1, 155, -1, -1, -1, -1, -1, 161, -1, -1, -1, 165, + -1, -1, -1, -1, -1, -1, -1, -1, 174, -1, -1, -1, -1, -1, -1, -1, -1, 183, -1, -1, -1, 80, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 97, -1, -1, -1, -1, -1, -1, -1, + 105, 213, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 126, 127, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 250, -1, -1, -1, -1, -1, 149, -1, + 151, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 193, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 312, -1, -1, -1, 316, -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 238, -1, -1, -1, 242, + -1, 244, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 387, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 398, -1, -1, -1, -1, -1, 297, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 334, + -1, -1, -1, -1, -1, -1, 448, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 361, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 483, -1, -1, -1, -1, + -1, -1, 383, -1, -1, 386, -1, 388, -1, -1, -1, -1, -1, -1, -1, -1, 397, 398, -1, -1, -1, 509, + 510, -1, -1, -1, -1, 408, -1, -1, -1, -1, -1, -1, -1, 416, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, + 8, 429, 10, 11, 12, -1, -1, -1, -1, -1, 438, -1, 20, 21, 22, 443, 24, 25, 26, 27, 448, 29, -1, + 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, 467, 48, 49, 50, 51, 52, -1, + 54, 55, 56, 57, 58, -1, -1, -1, 62, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, + 78, 79, 80, -1, -1, 83, 84, 505, -1, 87, -1, 509, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, + 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, + -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, + -1, 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, + 182, -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, + 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, + -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, + 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, + -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, + 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, + 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, + 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, + -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, + 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, -1, 454, 455, 456, + 457, 458, 459, -1, 461, 462, 463, 464, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, + 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, + 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, + 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, + 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, + 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, + -1, 54, 55, 56, 57, 58, -1, -1, -1, 62, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, + 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, + 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, + 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, + 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, + 159, 160, -1, 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, + 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, + -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, + 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, + 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, + 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, + 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, + 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, + 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, + 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, + 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, -1, 454, + 455, 456, 457, 458, 459, -1, 461, 462, 463, 464, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, + 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, + 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, + 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, -1, 31, 32, -1, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, -1, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, -1, + 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, -1, -1, 128, 129, 130, 131, 132, 133, 134, 135, + -1, 137, 138, 139, 140, 141, 142, 143, 144, -1, 146, 147, 148, 149, -1, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, -1, -1, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, -1, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 234, 235, 236, 237, 238, 239, 240, 241, -1, 243, 244, -1, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, -1, 261, 262, 263, 264, 265, 266, 267, -1, 269, 270, + 271, 272, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, -1, 296, 297, 298, 299, 300, 301, -1, 303, -1, -1, 306, 307, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, -1, 327, 328, -1, + 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, -1, 348, + -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 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, -1, 399, 400, 401, 402, 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, -1, 443, + 444, 445, 446, 447, -1, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, -1, 469, -1, 471, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, -1, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, 515, 516, 517, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, + -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, + 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, + -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, + -1, -1, 87, -1, 89, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, + -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, + -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, + -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, + 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, + 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, + -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, + -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, -1, 326, + 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, + 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, + 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, + 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, + 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + -1, 445, 446, -1, -1, -1, -1, -1, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, + -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, + 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, + 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, + -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, + 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, -1, -1, -1, + 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, + 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, + 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, + -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, 163, 164, -1, 166, -1, -1, -1, + 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, + 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, + 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, + 249, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, + 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, + 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, + 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, + 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, + 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + -1, 445, 446, -1, -1, -1, -1, -1, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, + -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, 484, + 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, + 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, + -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, + 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, -1, -1, -1, -1, + 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, + 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, + 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, + -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, 163, 164, -1, 166, -1, -1, -1, + 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, + 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, + 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, + -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, + 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, + 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, + 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, + 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, + 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + -1, 445, 446, -1, -1, -1, -1, -1, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, + -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, 484, + 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, + 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 18, 15, -1, -1, -1, -1, -1, -1, -1, 53, 24, -1, + -1, -1, 32, 59, -1, -1, -1, 33, -1, 53, -1, -1, -1, 43, -1, 59, -1, -1, 74, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 74, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, 97, -1, -1, -1, -1, -1, -1, + -1, 105, 80, 107, -1, 97, -1, -1, -1, -1, -1, -1, -1, 105, -1, 107, -1, -1, -1, 97, -1, 95, + 126, -1, -1, -1, -1, -1, -1, -1, -1, 105, -1, -1, 126, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 126, -1, -1, -1, -1, -1, -1, -1, 130, -1, -1, -1, -1, -1, -1, 137, -1, -1, -1, -1, + 172, -1, -1, 149, -1, -1, -1, -1, -1, 151, 152, -1, 172, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 204, -1, 176, -1, -1, -1, -1, 181, -1, -1, -1, -1, 204, + -1, -1, 193, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 218, 219, 220, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 238, -1, -1, -1, -1, -1, 244, -1, 260, -1, -1, -1, -1, 247, -1, 249, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 261, -1, 293, -1, -1, -1, 297, -1, -1, -1, -1, -1, -1, -1, 293, -1, + 307, -1, 297, 280, -1, -1, -1, -1, -1, -1, -1, -1, 307, -1, -1, -1, 297, -1, -1, -1, -1, 316, + -1, 300, 301, 302, -1, -1, -1, -1, 307, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, -1, -1, + 321, -1, 353, -1, -1, -1, -1, -1, -1, 334, -1, -1, 333, -1, 353, -1, -1, -1, -1, 340, -1, 372, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 372, -1, -1, -1, -1, -1, -1, 361, 362, -1, -1, -1, + -1, -1, 398, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 383, 398, -1, 386, -1, 388, -1, -1, -1, + -1, -1, -1, -1, -1, 397, -1, -1, -1, -1, 398, -1, -1, -1, -1, -1, 408, -1, -1, -1, -1, -1, -1, + -1, 416, -1, -1, -1, -1, -1, 448, -1, -1, 421, -1, -1, -1, 429, -1, -1, -1, -1, 448, -1, -1, + -1, 438, -1, -1, -1, -1, 443, -1, -1, -1, -1, 448, -1, -1, -1, -1, 449, 450, -1, -1, -1, 484, + -1, -1, -1, -1, -1, -1, -1, -1, 467, -1, -1, 484, -1, -1, -1, -1, 471, -1, -1, 474, -1, -1, + 507, -1, -1, -1, -1, -1, -1, -1, 485, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 505, -1, -1, -1, 509, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, 128, 129, 130, 131, + 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, -1, 261, 262, 263, 264, + 265, 266, 267, 268, 269, -1, 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 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, -1, -1, 329, 330, 331, 332, 333, 334, -1, 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, 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, 402, 403, -1, 405, 406, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, -1, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, 512, + -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, -1, 532, + 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, -1, 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, -1, 128, 129, 130, 131, 132, 133, 134, 135, + -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, + 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, -1, 261, 262, 263, 264, 265, 266, 267, 268, + 269, -1, 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 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, + -1, -1, 329, 330, 331, 332, 333, 334, -1, 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, 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, 402, + 403, -1, 405, 406, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, -1, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, 512, -1, -1, 515, 516, 517, + -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 15, 532, 533, -1, 15, -1, -1, + -1, -1, 24, -1, -1, -1, 24, -1, -1, -1, 15, 33, -1, 18, -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, + 53, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 74, -1, -1, + -1, 95, -1, -1, -1, 95, -1, -1, -1, -1, -1, 105, -1, -1, -1, 105, -1, -1, 95, -1, 97, -1, -1, + -1, -1, -1, -1, -1, 105, -1, 107, -1, -1, -1, -1, -1, 130, -1, -1, -1, 130, -1, -1, 137, -1, + -1, -1, 137, -1, 126, -1, -1, -1, -1, -1, -1, -1, 151, 152, -1, -1, 151, 152, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 176, -1, -1, -1, 176, 181, -1, -1, + -1, 181, -1, -1, -1, 172, -1, 191, -1, -1, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, 188, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, 219, 220, 204, 218, 219, 220, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 234, 218, 219, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 247, -1, 249, + -1, 247, -1, 249, -1, -1, -1, -1, -1, -1, -1, 261, -1, -1, -1, 261, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 280, -1, -1, -1, 280, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 280, -1, -1, 300, 301, 302, -1, 300, 301, 302, 307, -1, -1, -1, 307, -1, -1, 297, 315, -1, + -1, 318, -1, -1, 321, 318, -1, 307, 321, -1, -1, -1, -1, -1, -1, -1, 333, -1, 318, -1, 333, -1, + -1, 340, -1, -1, -1, 340, -1, -1, -1, -1, -1, 333, -1, -1, -1, -1, -1, -1, -1, -1, 342, -1, + 361, 362, -1, -1, 361, 362, -1, -1, -1, 353, -1, -1, -1, -1, -1, -1, -1, 361, 362, -1, -1, -1, + -1, -1, -1, -1, 387, -1, 372, -1, 387, -1, -1, -1, -1, -1, -1, 398, -1, -1, -1, 398, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 398, -1, -1, -1, -1, -1, 421, -1, -1, -1, 421, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, + -1, -1, 449, 450, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, -1, -1, -1, 471, -1, + -1, 474, 471, -1, -1, 474, -1, -1, -1, -1, -1, -1, 485, -1, -1, -1, 485, -1, 474, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 484, -1, -1, -1, -1, -1, -1, -1, -1, 510, -1, 512, 0, 1, 2, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, + 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, 128, 129, 130, 131, 132, 133, 134, 135, -1, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, + -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 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, -1, 328, 329, 330, + 331, 332, 333, 334, -1, 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, 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, 402, 403, -1, 405, 406, + -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, -1, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 15, 532, 533, -1, -1, -1, -1, 15, -1, 24, 18, -1, + -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 59, 53, -1, -1, -1, -1, -1, 59, -1, -1, -1, 63, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 95, -1, -1, -1, + -1, -1, -1, 95, -1, 97, -1, -1, -1, -1, -1, -1, -1, 105, -1, 107, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 126, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 15, -1, 151, 18, -1, -1, -1, -1, -1, 151, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 168, -1, -1, -1, -1, -1, -1, -1, 176, -1, -1, 172, -1, 181, -1, 176, -1, -1, -1, 53, 181, -1, + -1, 191, -1, 59, -1, 188, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 74, -1, -1, 204, -1, + -1, -1, -1, -1, -1, 218, 219, 220, -1, -1, -1, -1, 218, 219, -1, -1, 95, -1, 97, -1, -1, -1, + -1, -1, -1, -1, 105, -1, 107, -1, -1, -1, -1, -1, 247, -1, 249, -1, -1, -1, -1, 247, -1, -1, + -1, -1, -1, 126, 261, -1, -1, -1, -1, -1, -1, 261, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 280, -1, -1, -1, -1, 151, -1, 280, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 300, 301, + 302, -1, 297, -1, 172, -1, 301, -1, 176, -1, -1, -1, 307, 181, -1, -1, 318, -1, -1, 321, 188, + -1, -1, 318, -1, 15, -1, -1, 18, -1, -1, 333, -1, -1, -1, -1, 204, -1, 333, -1, -1, -1, -1, -1, + -1, 340, -1, 342, -1, -1, 218, 219, -1, -1, -1, -1, -1, -1, 353, 361, 362, -1, -1, 53, -1, -1, + 361, 362, -1, 59, -1, -1, -1, -1, -1, -1, -1, 372, -1, 247, 15, -1, -1, -1, 74, -1, -1, -1, -1, + 24, -1, -1, -1, 261, -1, -1, -1, -1, 33, -1, -1, 396, 397, 398, -1, 95, -1, 97, -1, -1, -1, -1, + 280, -1, -1, 105, -1, 107, -1, 421, -1, -1, -1, -1, 59, -1, -1, -1, -1, 297, -1, -1, -1, 301, + -1, -1, 126, -1, -1, 307, -1, -1, -1, -1, -1, -1, -1, 449, 450, -1, 318, -1, -1, 448, 449, 450, + -1, -1, -1, -1, 95, 151, -1, -1, -1, 333, -1, -1, -1, -1, -1, -1, 474, -1, 342, -1, -1, -1, -1, + 474, -1, -1, 172, -1, -1, 353, 176, -1, -1, 484, -1, 181, -1, 361, 362, -1, -1, -1, 188, -1, + -1, -1, -1, -1, 372, -1, -1, -1, -1, -1, -1, -1, -1, -1, 204, -1, 151, 18, 15, -1, -1, -1, -1, + -1, -1, -1, -1, 24, 218, 219, 398, 32, -1, 168, -1, -1, 33, -1, -1, -1, -1, 176, 43, -1, -1, + -1, 181, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, 247, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, + -1, -1, -1, 261, -1, -1, -1, -1, -1, -1, -1, 80, 448, 449, 450, 218, 219, 220, -1, -1, -1, -1, + 280, -1, -1, -1, -1, -1, 97, -1, 95, -1, -1, -1, -1, -1, -1, -1, 474, 297, -1, -1, -1, 301, + 247, 15, 249, -1, 484, 307, -1, -1, -1, -1, 24, -1, -1, 126, 261, -1, 318, -1, -1, 33, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 333, -1, 280, -1, -1, 149, -1, -1, -1, 342, -1, 151, -1, + -1, 59, -1, -1, -1, -1, -1, 353, 161, 300, 301, 302, -1, -1, -1, 361, 362, -1, -1, -1, -1, -1, + -1, 176, -1, -1, 372, 318, 181, -1, 321, -1, -1, -1, -1, -1, 193, 95, 191, -1, -1, -1, 333, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 398, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, 219, + 220, -1, -1, 361, 362, -1, -1, -1, -1, -1, -1, -1, -1, 138, 238, -1, -1, -1, -1, -1, 244, -1, + -1, -1, -1, -1, 151, 247, -1, 249, -1, -1, -1, -1, -1, 448, 449, 450, -1, -1, 398, 261, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 176, -1, -1, -1, -1, 181, -1, -1, -1, 280, 474, -1, 421, -1, -1, + 191, -1, -1, -1, -1, 484, -1, 297, -1, -1, -1, -1, -1, -1, 300, 301, 302, -1, -1, -1, -1, -1, + -1, -1, -1, 449, 450, 218, 219, 220, -1, -1, 318, -1, -1, 321, -1, -1, -1, -1, -1, -1, -1, -1, + 334, -1, -1, 333, -1, -1, 474, -1, -1, -1, -1, -1, 247, -1, 249, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 261, -1, -1, -1, -1, 361, 362, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 280, -1, -1, -1, 383, -1, -1, 386, -1, 388, -1, -1, -1, -1, -1, -1, -1, -1, 397, -1, 300, 301, + 302, 398, -1, -1, -1, -1, -1, 408, -1, -1, -1, -1, -1, -1, -1, 416, 318, -1, -1, 321, -1, -1, + -1, -1, 421, -1, -1, -1, 429, -1, -1, 333, -1, -1, -1, -1, -1, 438, -1, -1, -1, -1, 443, -1, + -1, -1, -1, 448, -1, -1, -1, -1, 449, 450, -1, -1, -1, -1, -1, 361, 362, -1, -1, -1, -1, -1, + 467, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 505, -1, -1, -1, 509, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 421, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, + 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, 449, 450, -1, -1, 17, -1, -1, 20, 21, 22, -1, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 474, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, -1, + 98, 99, 100, 101, 102, 103, 104, 105, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, + 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, + 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, -1, 156, + 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, + 177, 178, 179, -1, -1, 182, -1, 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, -1, 214, + -1, 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, 249, -1, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, -1, 306, 307, 308, 309, 310, 311, + -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, + 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, + 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, -1, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, + 446, 447, -1, -1, -1, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, + 466, 467, 468, 469, 470, 471, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, 484, + 485, 486, 487, 488, 489, 490, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, + 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, + -1, -1, -1, -1, 17, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, -1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, + -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, 105, 106, + -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, + -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, -1, 152, 153, 154, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, + 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 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, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, + 244, 245, 246, -1, 248, 249, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, -1, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, + 302, 303, 304, -1, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, + -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, + 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, -1, -1, 452, 453, 454, 455, + 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, 471, 472, 473, -1, 475, + 476, 477, -1, 479, 480, 481, 482, -1, 484, 485, 486, 487, 488, 489, 490, -1, 492, 493, 494, + 495, 496, 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, -1, 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, -1, 128, 129, 130, 131, 132, 133, 134, 135, + -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, + 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, -1, 261, 262, 263, 264, 265, 266, 267, 268, + 269, -1, 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 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, + -1, -1, 329, 330, 331, 332, 333, 334, -1, 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, 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, 402, + 403, -1, 405, 406, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, -1, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, 512, -1, -1, 515, 516, 517, + -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, + 31, 32, -1, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, + 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, 128, 129, 130, 131, 132, 133, 134, 135, -1, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, -1, 243, 244, 245, 246, 247, 248, -1, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, + -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, -1, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, -1, -1, 329, 330, + 331, 332, 333, 334, -1, 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, 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, 402, 403, -1, 405, 406, + -1, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, -1, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, + 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, 128, 129, 130, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, -1, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + -1, -1, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, -1, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, -1, -1, -1, -1, + -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, -1, 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, -1, -1, 329, 330, 331, 332, 333, + 334, -1, 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, 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, 402, 403, -1, 405, 406, -1, 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, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, -1, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, -1, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, -1, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, + 128, 129, 130, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, -1, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + -1, 243, 244, 245, 246, 247, 248, -1, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, -1, + 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, -1, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, -1, -1, 329, 330, 331, 332, 333, 334, -1, 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, 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, 402, 403, -1, 405, 406, -1, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, -1, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, -1, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, 16, 17, -1, -1, + 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, 105, 106, -1, 108, 109, 110, 111, 112, + 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, + 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, + 153, 154, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, + 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 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, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, 249, -1, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, -1, 306, 307, 308, + 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, + 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, + 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, -1, 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, -1, 445, 446, 447, -1, -1, -1, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, + 463, -1, -1, 466, 467, 468, 469, 470, 471, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, + -1, 484, 485, 486, 487, 488, 489, 490, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, + 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, + 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, + 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, 47, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, + -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, + -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, + 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, + -1, 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, + 185, 186, -1, 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, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, + -1, 244, 245, 246, -1, 248, 249, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, -1, -1, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, -1, + -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, + -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, + 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, + 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, + 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, -1, -1, 452, 453, 454, 455, 456, + 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, + 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, 490, -1, 492, 493, 494, 495, 496, + 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, + 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 81, 82, 15, + -1, -1, -1, -1, -1, -1, -1, -1, 24, 81, 82, -1, -1, 97, -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, + -1, 97, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 126, 59, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 126, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 140, -1, + -1, 155, -1, -1, -1, -1, -1, 161, -1, 95, -1, 165, -1, 155, -1, 169, -1, -1, -1, 161, 174, -1, + -1, 165, -1, -1, 180, 169, -1, 183, -1, -1, 174, -1, -1, -1, -1, -1, 180, -1, 126, 183, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 206, -1, -1, -1, -1, -1, -1, 213, -1, -1, -1, -1, 206, 151, -1, + -1, 222, -1, -1, 213, -1, -1, -1, -1, -1, -1, -1, -1, 222, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 176, -1, 246, -1, -1, 181, 250, -1, -1, -1, -1, -1, -1, -1, 246, 191, 260, -1, 250, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 260, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 284, -1, 218, 219, + 220, -1, -1, -1, -1, -1, -1, -1, 284, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 312, -1, -1, 247, 316, 249, -1, -1, -1, -1, 322, -1, 312, -1, -1, -1, 316, 261, -1, -1, -1, + -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 280, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 300, 301, 302, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 318, 387, -1, 321, 390, -1, -1, -1, -1, -1, -1, -1, 398, 387, -1, + 333, 390, -1, -1, -1, -1, -1, -1, -1, 398, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 361, 362, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 448, -1, -1, -1, -1, 453, -1, -1, -1, -1, -1, -1, 448, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 483, -1, -1, -1, -1, -1, 421, -1, 491, -1, + -1, -1, 483, -1, -1, -1, -1, -1, -1, -1, 491, -1, -1, -1, 507, -1, 509, 510, -1, -1, -1, -1, + -1, 448, 449, 450, 507, -1, 509, 510, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, + 17, -1, 474, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, -1, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, 105, 106, -1, 108, + 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, 120, -1, 122, 123, 124, 125, -1, -1, 128, + -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, -1, 152, 153, 154, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, + 169, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 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, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, + 246, -1, 248, 249, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, -1, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, + 304, -1, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, + 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, -1, -1, 452, 453, 454, 455, 456, 457, + 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, 471, 472, 473, -1, 475, 476, 477, + -1, 479, 480, 481, 482, -1, 484, 485, 486, 487, 488, 489, 490, -1, 492, 493, 494, 495, 496, + 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, + -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + -1, 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, -1, 128, 129, 130, 131, 132, 133, 134, 135, -1, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, + 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 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, -1, + 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, 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, 402, 403, 404, + 405, 406, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + -1, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, -1, -1, 515, 516, 517, -1, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 15, 532, 533, -1, 15, -1, -1, -1, -1, + 24, -1, -1, -1, 24, -1, -1, -1, -1, 33, -1, -1, -1, 33, -1, -1, -1, 81, 82, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 97, -1, 59, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 126, -1, -1, -1, -1, -1, -1, -1, -1, + 95, -1, -1, -1, 95, 140, 97, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 155, -1, -1, + -1, -1, -1, 161, -1, -1, -1, 165, 126, 127, -1, 169, 126, -1, -1, -1, 174, -1, -1, -1, -1, -1, + 180, -1, -1, 183, -1, -1, -1, -1, -1, -1, -1, 151, -1, -1, -1, 151, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 206, -1, -1, -1, -1, -1, 168, 213, -1, -1, 176, -1, -1, -1, 176, 181, 222, -1, -1, + 181, -1, -1, -1, -1, -1, 191, -1, -1, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 246, -1, + -1, -1, 250, -1, -1, -1, -1, -1, -1, -1, 218, 219, 220, -1, 218, 219, 220, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 242, -1, 284, -1, -1, 247, -1, 249, -1, 247, + -1, 249, -1, -1, -1, -1, -1, -1, 260, 261, -1, -1, -1, 261, -1, -1, -1, -1, -1, -1, 312, -1, + -1, -1, 316, -1, -1, -1, 280, -1, 322, -1, 280, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 300, 301, 302, -1, 300, 301, 302, -1, -1, -1, 310, -1, -1, -1, -1, -1, -1, -1, 318, + -1, -1, 321, 318, -1, -1, 321, -1, -1, -1, -1, -1, -1, -1, 333, -1, 335, -1, 333, -1, -1, 380, + -1, -1, -1, -1, -1, -1, 387, -1, -1, 390, -1, -1, -1, -1, -1, -1, -1, 398, -1, -1, 361, 362, + -1, -1, 361, 362, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 387, -1, -1, -1, 387, -1, -1, -1, -1, -1, -1, 398, -1, -1, -1, 398, -1, 404, -1, -1, -1, + 448, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 421, -1, -1, -1, 421, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 483, -1, -1, -1, -1, 448, 449, 450, 491, 448, + 449, 450, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 507, -1, 509, 510, -1, -1, -1, 474, + -1, -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, + 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, 506, 507, 19, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, + 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, + 55, 56, 57, 58, 59, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, + 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, 97, 98, 99, 100, 101, + 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, -1, + 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, + 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, + -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, + -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, + 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, + -1, 303, 304, 305, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, + -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, + 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, + -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, + 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, -1, 454, 455, 456, 457, + 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, + -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, + 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, 510, 511, 512, -1, -1, 515, 516, 517, + -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, + 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, 19, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, + -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, + 54, 55, 56, 57, 58, 59, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, + 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, 97, 98, 99, 100, + 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + -1, -1, 122, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, + -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, + 160, -1, 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, + -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, + 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, -1, 242, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, + -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, + 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, + -1, -1, -1, 303, 304, 305, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, + 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, + 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, + 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, + 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, -1, 454, 455, + 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, + 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, + 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, 510, 511, 512, -1, -1, 515, + 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, + 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, + 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, + 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, + 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, -1, -1, 87, -1, 89, -1, -1, -1, 93, 94, -1, -1, -1, 98, + 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, + 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, + 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, + 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, 177, 178, + 179, -1, -1, 182, -1, 184, 185, 186, -1, 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, -1, 214, -1, 216, 217, -1, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, 249, -1, 251, 252, 253, -1, -1, 256, 257, + 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, + 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + -1, 298, 299, 300, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, + -1, 318, 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, 334, -1, 336, + 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, + 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, + 414, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, + 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, 15, 466, 467, 468, 469, 470, -1, 472, + 473, 24, 475, 476, 477, -1, 479, 480, 481, 482, 33, -1, 485, 486, 487, 488, 489, -1, -1, 492, + 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, -1, 508, 59, -1, 511, 512, + -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 95, -1, 97, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 151, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 176, -1, -1, -1, -1, 181, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, 219, 220, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 247, -1, 249, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 261, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 280, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 300, 301, 302, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 318, -1, -1, 321, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 333, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 361, 362, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 398, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 421, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, + 21, 22, -1, 24, 25, 26, 27, 28, 29, -1, 31, 32, -1, -1, 35, -1, 449, 450, 39, 40, 41, 42, 43, + 44, 45, -1, -1, 48, 49, -1, 51, -1, -1, 54, 55, 56, 57, -1, -1, 60, -1, 474, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, -1, -1, 87, -1, 89, -1, + -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, -1, -1, 104, -1, 106, -1, 108, 109, 110, 111, + 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, + 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, -1, 146, 147, 148, 149, -1, -1, + -1, 153, -1, -1, 156, 157, 158, -1, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, + 172, 173, -1, 175, -1, -1, -1, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, 206, -1, 208, 209, 210, + 211, -1, -1, -1, -1, -1, 217, -1, 219, 220, 221, 222, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, -1, 246, -1, 248, 249, -1, 251, 252, + 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, -1, 269, 270, 271, 272, + -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, -1, 284, -1, 286, 287, 288, 289, 290, 291, 292, + 293, -1, -1, 296, -1, 298, 299, 300, -1, -1, 303, -1, -1, 306, -1, -1, 309, 310, 311, -1, 313, + 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, 325, -1, 327, 328, -1, 330, 331, 332, -1, + 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, -1, 348, -1, 350, 351, 352, -1, + 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, -1, 369, 370, 371, -1, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, + 393, 394, 395, -1, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, + 413, 414, -1, 416, -1, 418, 419, 420, 421, 422, 423, -1, 425, -1, 427, 428, 429, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, -1, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, + 453, 454, 455, 456, 457, 458, 459, -1, 461, -1, -1, -1, -1, 466, 467, -1, 469, -1, -1, 472, + 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, + 493, 494, 495, 0, 497, -1, -1, 500, 501, 502, 503, 504, 505, -1, 11, 508, 13, 14, 511, 512, -1, + -1, 515, 516, 517, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 530, 531, 532, 533, -1, -1, + -1, -1, 42, -1, -1, -1, -1, -1, -1, -1, 15, -1, -1, -1, 54, -1, 56, 57, -1, 24, -1, -1, -1, -1, + 64, -1, 66, -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 79, -1, 81, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, 101, -1, -1, 104, -1, -1, -1, -1, -1, 110, + -1, -1, -1, -1, -1, -1, -1, -1, 119, -1, 121, -1, -1, -1, 125, -1, -1, -1, -1, 95, -1, -1, -1, + 134, -1, -1, -1, -1, -1, -1, 15, -1, -1, 144, -1, 146, -1, -1, -1, 24, -1, -1, -1, -1, 155, -1, + -1, -1, 33, -1, -1, -1, -1, 129, -1, -1, -1, -1, 134, -1, -1, -1, -1, 174, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 59, 151, -1, -1, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 210, 176, -1, -1, -1, -1, 181, -1, 15, -1, -1, 95, -1, -1, -1, -1, + 191, 24, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 251, 252, 218, 219, 220, -1, -1, 258, -1, 260, -1, 59, -1, -1, -1, -1, 267, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 151, -1, 279, -1, -1, 247, -1, 249, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 261, -1, 95, 299, 97, -1, 176, -1, -1, -1, -1, 181, -1, -1, -1, -1, -1, -1, -1, 280, + -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 127, -1, -1, -1, -1, 300, 301, 302, + -1, -1, -1, -1, -1, -1, 218, 219, 220, -1, -1, -1, 350, -1, -1, 318, 151, -1, 321, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 333, 369, -1, -1, -1, 247, 374, 249, 376, -1, 378, 176, -1, -1, + -1, 383, 181, -1, 386, 261, -1, 389, -1, -1, 392, -1, 191, -1, 361, 362, -1, -1, 400, -1, -1, + -1, -1, -1, 280, -1, 408, 409, -1, -1, -1, -1, -1, -1, 416, -1, -1, -1, 420, 218, 219, 220, -1, + -1, 300, 301, 302, -1, -1, 431, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 242, -1, + 321, 448, -1, 247, 451, 249, -1, -1, -1, 421, -1, -1, 333, -1, -1, -1, 260, 261, -1, -1, -1, + -1, -1, -1, -1, 472, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 280, 449, 450, 486, 361, 362, 489, + -1, -1, 492, -1, -1, -1, 496, -1, -1, -1, -1, -1, -1, 300, 301, 302, -1, -1, -1, 474, 510, -1, + -1, -1, 514, -1, -1, -1, -1, -1, -1, 318, -1, -1, 321, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 333, -1, -1, -1, -1, 506, -1, -1, -1, -1, -1, 421, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 361, 362, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 474, 398, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 421, -1, -1, + -1, -1, -1, -1, -1, 506, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, + 449, 450, -1, -1, 17, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 474, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, + -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, + -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, + 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, + -1, 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 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, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, + -1, 244, 245, 246, -1, 248, 249, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, -1, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, -1, + -1, 303, 304, -1, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, + -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, + 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, + 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, -1, -1, 452, 453, 454, 455, 456, + 457, 458, 459, -1, 461, 462, 463, -1, 15, 466, 467, 468, 469, 470, 471, 472, 473, 24, 475, 476, + 477, -1, 479, 480, 481, 482, 33, -1, 485, 486, 487, 488, 489, 490, -1, 492, 493, 494, 495, 496, + 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, -1, 508, 59, -1, 511, 512, -1, -1, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 95, -1, 97, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 127, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 151, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 176, -1, -1, + -1, -1, 181, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, 219, 220, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 242, -1, -1, -1, -1, 247, + -1, 249, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, 261, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 280, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 300, 301, 302, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 318, -1, -1, 321, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 333, -1, 335, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 361, 362, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 398, -1, -1, -1, -1, -1, 404, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 421, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 474, -1, -1, -1, -1, + -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 497, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, -1, 51, -1, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, -1, 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, -1, 128, 129, 130, 131, 132, 133, 134, 135, + -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, -1, 261, 262, 263, 264, 265, 266, 267, 268, + 269, -1, 271, 272, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 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, -1, 329, 330, 331, 332, 333, 334, -1, 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, 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, 402, + 403, -1, 405, 406, -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, -1, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, 512, -1, -1, 515, 516, 517, + -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 51, -1, 53, 54, + 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, 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, -1, 128, 129, 130, 131, 132, 133, 134, 135, -1, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, -1, 155, -1, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, -1, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, -1, 261, 262, 263, 264, 265, 266, 267, 268, 269, -1, 271, 272, + -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 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, -1, 329, 330, + 331, 332, 333, 334, -1, 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, 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, 402, 403, -1, 405, 406, + -1, 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, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + -1, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, -1, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, -1, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, -1, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, + 11, 12, -1, -1, -1, -1, 17, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, + -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, + 105, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, + 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, + -1, 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 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, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, + -1, 244, 245, 246, -1, 248, 249, -1, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, -1, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, -1, + -1, 303, 304, -1, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, + -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, + 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, -1, -1, 452, 453, 454, 455, + 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, 471, 472, 473, -1, 475, + 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, 490, -1, 492, 493, 494, 495, + 496, 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, + 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, + 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, 17, -1, -1, 20, 21, 22, -1, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, + 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, -1, 98, + 99, 100, 101, 102, 103, 104, 105, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, + 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, + 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, -1, 156, + 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, + 177, 178, 179, -1, -1, 182, -1, 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, -1, 214, + -1, 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, 249, -1, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, -1, 306, 307, 308, 309, 310, 311, + -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, + 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, + 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, -1, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, + 446, 447, -1, -1, -1, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, + 466, 467, 468, 469, 470, 471, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, 484, + 485, 486, 487, 488, 489, 490, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, + 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 15, -1, -1, -1, -1, -1, 15, -1, -1, 24, -1, + -1, -1, 15, -1, 24, -1, -1, 33, -1, -1, -1, 24, -1, 33, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, 59, -1, + -1, -1, -1, -1, -1, -1, -1, 81, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 95, -1, -1, + -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 126, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 140, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 151, -1, -1, -1, 155, -1, 151, -1, -1, -1, 161, -1, -1, 151, 165, -1, + 161, -1, -1, -1, -1, -1, -1, 174, -1, 176, -1, -1, -1, -1, 181, 176, -1, -1, -1, -1, 181, -1, + 176, -1, 191, -1, -1, 181, -1, -1, 191, -1, -1, -1, -1, -1, -1, 191, -1, -1, -1, -1, -1, -1, + -1, -1, 213, -1, -1, -1, -1, 218, 219, 220, -1, -1, -1, 218, 219, 220, -1, -1, -1, -1, 218, + 219, 220, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 247, -1, 249, 250, -1, -1, 247, + -1, 249, -1, -1, -1, -1, 247, 261, 249, -1, -1, -1, -1, 261, -1, -1, -1, -1, -1, -1, 261, -1, + -1, -1, -1, -1, 280, -1, -1, -1, -1, -1, 280, -1, -1, -1, -1, -1, -1, 280, -1, -1, -1, -1, -1, + -1, 300, 301, 302, -1, -1, -1, 300, 301, 302, -1, -1, -1, 312, 300, 301, 302, 316, -1, 318, -1, + -1, 321, 322, -1, 318, -1, -1, 321, -1, -1, -1, 318, -1, 333, 321, -1, -1, -1, -1, 333, -1, -1, + -1, -1, -1, -1, 333, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 361, 362, -1, -1, + -1, -1, 361, 362, -1, -1, -1, -1, -1, 361, 362, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 387, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 398, -1, -1, -1, -1, -1, 398, -1, -1, -1, -1, -1, + -1, 398, -1, -1, -1, -1, -1, -1, -1, -1, -1, 421, -1, -1, -1, -1, -1, 421, -1, -1, -1, -1, -1, + -1, 421, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, -1, -1, -1, -1, + 449, 450, -1, -1, -1, -1, -1, 449, 450, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 474, -1, -1, + -1, -1, -1, 474, -1, -1, 483, -1, -1, -1, 474, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, + 11, 12, -1, -1, -1, -1, -1, 509, 510, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, + 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, + 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, + -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, 95, -1, -1, 98, 99, 100, 101, 102, 103, + 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, + 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, + 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, 176, 177, 178, 179, -1, 181, 182, -1, + 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, + -1, -1, 244, 245, -1, 247, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, 280, 281, + 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, + 301, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, + -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, 333, 334, -1, 336, 337, 338, 339, 340, + 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, + -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, + 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, 449, 450, -1, 452, -1, 454, 455, 456, + 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, + 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, + 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, + 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, + 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, 19, 20, 21, 22, -1, 24, 25, 26, 27, -1, + 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, + -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, + 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, 97, 98, 99, + 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, + 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, + 159, 160, -1, 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, + 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, + -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, + 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, + 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, + 298, 299, -1, -1, -1, 303, 304, 305, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, + 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, + 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, + 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, + -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, -1, + 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, + -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, + 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, 510, 511, 512, -1, + -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, + 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, + 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, -1, -1, 87, -1, 89, -1, -1, -1, 93, 94, -1, -1, + -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, + 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, + 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, + 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, + 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 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, -1, 214, -1, + 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, 249, -1, 251, 252, 253, -1, + -1, 256, 257, 258, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, + -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, -1, 298, 299, 300, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, + 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, 334, + -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, + 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, + 412, 413, 414, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, + -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, + -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, + -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, -1, + 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 11, -1, 13, 14, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 42, + -1, -1, -1, -1, -1, -1, -1, 15, -1, -1, 18, 54, -1, 56, 57, -1, -1, -1, -1, -1, -1, 64, -1, 66, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 79, -1, 81, -1, -1, -1, -1, -1, -1, 53, -1, -1, + -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, 101, -1, -1, 104, -1, -1, -1, -1, 74, 110, -1, -1, -1, + -1, -1, -1, -1, -1, 119, -1, 121, -1, -1, -1, 125, -1, -1, -1, -1, 95, -1, 97, -1, 134, -1, -1, + -1, -1, -1, 105, 15, 107, -1, 144, -1, 146, -1, -1, -1, 24, -1, -1, -1, -1, 155, -1, -1, -1, + 33, -1, 126, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 174, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 59, 151, -1, -1, -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 172, -1, -1, 210, 176, -1, -1, -1, -1, 181, -1, -1, -1, -1, 95, -1, 188, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 204, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 251, 252, 218, -1, -1, -1, -1, 258, -1, 260, -1, -1, -1, -1, -1, -1, 267, -1, -1, -1, -1, + -1, -1, 15, -1, -1, 151, -1, 279, -1, -1, 247, 24, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, + -1, 261, -1, -1, 299, -1, -1, 176, -1, -1, -1, -1, 181, -1, -1, -1, -1, -1, -1, -1, 280, -1, + 191, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 297, -1, -1, -1, 301, -1, -1, -1, + -1, -1, 307, -1, 218, 219, 220, -1, -1, -1, 350, -1, -1, 318, 95, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 333, 369, -1, -1, -1, 247, 374, 249, 376, 342, 378, -1, -1, -1, -1, + 383, -1, -1, 386, 261, 353, 389, -1, -1, 392, -1, -1, -1, 361, 362, -1, -1, 400, -1, -1, -1, + -1, -1, 280, 372, 408, 409, 151, -1, -1, -1, -1, -1, 416, -1, -1, -1, 420, -1, -1, -1, -1, -1, + 300, 301, 302, -1, -1, 431, -1, 398, -1, 176, -1, -1, -1, -1, 181, -1, -1, -1, 318, -1, -1, + 321, 448, 15, 191, 451, 18, -1, -1, -1, -1, -1, 24, 333, -1, -1, -1, -1, -1, -1, -1, 33, -1, + -1, -1, -1, 472, -1, -1, -1, -1, 218, 219, 220, -1, -1, -1, 448, 449, 450, 486, 361, 362, 489, + -1, -1, 492, 59, -1, -1, 496, 63, -1, -1, -1, -1, -1, -1, -1, -1, 247, -1, 249, 474, 510, -1, + -1, -1, 514, -1, -1, -1, -1, 484, 261, -1, -1, -1, 398, -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 280, -1, -1, -1, -1, -1, -1, -1, 421, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 300, 301, 302, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, 318, -1, -1, + 321, -1, -1, -1, -1, 151, -1, -1, -1, -1, -1, -1, 333, -1, -1, -1, -1, -1, -1, -1, 474, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 176, -1, -1, -1, -1, 181, -1, -1, -1, -1, 361, 362, -1, -1, -1, + 191, -1, -1, -1, -1, -1, -1, -1, 15, -1, -1, -1, -1, -1, -1, -1, -1, 24, -1, -1, -1, -1, -1, + -1, -1, -1, 33, 218, 219, 220, -1, -1, 398, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 59, -1, -1, 421, 247, -1, 249, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 261, -1, -1, -1, 81, 82, -1, -1, -1, -1, -1, -1, -1, 449, 450, -1, -1, -1, 95, 280, 97, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 474, 300, 301, 302, -1, -1, -1, + -1, -1, -1, -1, 126, -1, -1, -1, -1, -1, -1, -1, 318, -1, -1, 321, -1, -1, 140, -1, -1, -1, -1, + -1, -1, -1, -1, 333, -1, 151, -1, -1, -1, 155, 340, -1, -1, -1, -1, 161, -1, -1, -1, 165, -1, + -1, -1, 169, -1, -1, -1, -1, 174, -1, 176, 361, 362, -1, 180, 181, -1, 183, -1, -1, -1, -1, -1, + -1, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 206, -1, -1, -1, -1, -1, + -1, 213, -1, -1, -1, -1, 218, 219, 220, -1, 222, -1, -1, -1, -1, 15, -1, -1, -1, -1, -1, -1, + -1, -1, 24, 421, -1, -1, -1, -1, -1, -1, -1, 33, 246, 247, -1, 249, 250, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 261, -1, -1, -1, 449, 450, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, + -1, 280, -1, -1, -1, 284, -1, -1, -1, -1, -1, 474, -1, -1, 81, -1, -1, -1, -1, -1, -1, 300, + 301, 302, -1, -1, -1, -1, 95, -1, 97, -1, -1, 312, -1, -1, -1, 316, -1, 318, -1, -1, 321, 322, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 333, -1, -1, -1, -1, 126, 127, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, 361, 362, 151, -1, -1, -1, 155, + -1, -1, -1, -1, -1, 161, -1, -1, -1, 165, -1, -1, -1, -1, -1, -1, -1, -1, 174, 387, 176, -1, + 390, -1, -1, 181, -1, 183, -1, -1, 398, -1, -1, -1, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 421, -1, -1, 15, 213, -1, -1, -1, -1, 218, 219, 220, 24, + -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, 448, 449, 450, -1, -1, -1, 242, -1, -1, + -1, -1, 247, -1, 249, 250, -1, -1, -1, -1, -1, 59, -1, -1, 15, 260, 261, 474, -1, -1, -1, -1, + -1, 24, -1, -1, 483, -1, -1, -1, -1, -1, 33, -1, 491, 280, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 95, -1, -1, 507, -1, 509, 510, -1, 300, 301, 302, 59, -1, -1, -1, -1, -1, -1, -1, -1, + 312, -1, -1, -1, 316, -1, 318, -1, -1, 321, 322, -1, -1, 81, -1, -1, -1, -1, -1, -1, -1, 333, + -1, 335, -1, -1, -1, 95, -1, 97, -1, -1, -1, -1, -1, -1, 151, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 361, 362, -1, -1, -1, -1, -1, -1, -1, 126, 127, -1, 176, -1, -1, -1, -1, 181, + -1, -1, -1, -1, -1, 140, -1, -1, 387, 191, -1, -1, -1, -1, -1, -1, 151, -1, -1, 398, 155, -1, + -1, -1, -1, 404, 161, -1, -1, -1, 165, -1, -1, -1, -1, -1, 218, 219, 220, 174, -1, 176, 421, + -1, -1, -1, 181, -1, 183, -1, -1, -1, -1, -1, -1, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, 247, + -1, 249, -1, 448, 449, 450, -1, -1, -1, -1, -1, -1, 213, 261, -1, -1, -1, 218, 219, 220, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 474, -1, -1, 280, -1, -1, -1, -1, -1, 483, -1, -1, 242, -1, -1, + -1, -1, 247, -1, 249, 250, -1, -1, 300, 301, 302, -1, -1, -1, -1, 260, 261, -1, -1, -1, 509, + 510, -1, -1, 316, -1, 318, -1, -1, 321, -1, -1, -1, -1, -1, 280, -1, -1, -1, -1, -1, 333, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 300, 301, 302, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 312, -1, 361, 362, 316, -1, 318, -1, -1, 321, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 333, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 361, 362, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 421, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 387, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 398, -1, -1, -1, + 449, 450, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 418, -1, -1, 421, -1, -1, -1, + -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 448, 449, 450, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, -1, 483, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, + 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, 17, 509, 510, 20, 21, 22, -1, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, + 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, -1, 98, 99, + 100, 101, 102, 103, 104, 105, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, + 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, + 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, -1, 156, 157, + 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, 177, + 178, 179, -1, -1, 182, -1, 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, -1, 214, -1, + 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, 249, -1, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, + -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, -1, 306, 307, 308, 309, 310, 311, -1, + 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, + 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, + 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, + 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, + 447, -1, -1, -1, 451, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, + 467, 468, 469, 470, 471, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, 484, 485, + 486, 487, 488, 489, 490, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, 504, + 505, -1, -1, 508, -1, 510, 511, 512, -1, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 15, -1, -1, -1, -1, -1, -1, -1, -1, 24, -1, -1, + -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 81, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 95, -1, 97, -1, + -1, -1, -1, -1, -1, -1, 15, -1, -1, -1, -1, -1, -1, -1, -1, 24, -1, -1, -1, -1, -1, -1, -1, -1, + 33, -1, -1, 126, 127, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 140, -1, -1, -1, -1, -1, + -1, -1, -1, 59, -1, 151, -1, -1, -1, 155, -1, -1, -1, -1, -1, 161, -1, -1, -1, 165, -1, -1, -1, + -1, -1, 81, -1, -1, 174, -1, 176, -1, -1, -1, -1, 181, -1, 183, -1, 95, -1, 97, -1, -1, -1, + 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 213, + -1, -1, 126, -1, 218, 219, 220, -1, -1, -1, -1, -1, -1, -1, -1, -1, 140, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 151, 242, -1, -1, 155, -1, 247, -1, 249, 250, 161, -1, -1, -1, 165, -1, -1, + -1, -1, 260, 261, -1, -1, 174, -1, 176, -1, -1, -1, -1, 181, -1, 183, -1, -1, -1, -1, -1, -1, + 280, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 300, 301, + 302, 213, -1, -1, -1, -1, 218, 219, 220, -1, 312, -1, -1, -1, 316, -1, 318, -1, -1, 321, 322, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 333, -1, 335, -1, 247, -1, 249, 250, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 261, -1, -1, -1, -1, -1, -1, -1, -1, -1, 361, 362, -1, -1, -1, -1, -1, + -1, -1, 280, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 387, -1, -1, 300, + 301, 302, -1, -1, -1, -1, -1, 398, -1, -1, -1, 312, -1, 404, -1, 316, -1, 318, -1, -1, 321, + 322, -1, -1, -1, -1, -1, -1, -1, -1, 421, -1, 333, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, 361, 362, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 474, -1, -1, 387, -1, -1, + -1, -1, -1, 483, -1, -1, -1, -1, 398, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 509, 510, 421, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 448, 449, 450, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, + -1, 483, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, + -1, 509, 510, 19, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, + 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, + 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, + 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, 97, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, + -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, -1, -1, -1, + 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, + 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, + 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, + -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, 305, 306, -1, 308, + 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, + 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, + 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, + 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, -1, 405, + 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, + 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + -1, 445, 446, -1, -1, -1, -1, -1, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, + -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, + 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, + 505, -1, -1, 508, -1, 510, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, + -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, -1, + 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, -1, -1, + 87, -1, 89, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, + 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, + -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, + 169, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 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, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, + 246, -1, 248, 249, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, -1, -1, 303, 304, -1, + 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, + 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, + 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, + 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, 453, 454, 455, 456, 457, 458, 459, + -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, + 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, + 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, + 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, -1, 31, + 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, + 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, + 80, -1, 82, 83, 84, -1, -1, 87, -1, 89, -1, -1, -1, 93, 94, -1, -1, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, + 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, -1, 156, 157, 158, 159, 160, -1, + 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, + 182, -1, 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, -1, 214, -1, 216, 217, -1, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, -1, -1, -1, 244, 245, 246, -1, 248, 249, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, + 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, + 299, 300, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, 316, -1, 318, + 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, + 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, + 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, + -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, 450, -1, 452, 453, + 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, 471, 472, + 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, + 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, + -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, 17, -1, -1, 20, 21, 22, + -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, 105, 106, -1, 108, 109, 110, 111, 112, 113, 114, + -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, + 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, + 154, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, + -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 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, + -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, 249, -1, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, 302, 303, 304, -1, 306, 307, 308, 309, + 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, + 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, + 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + -1, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, -1, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + -1, 445, 446, 447, -1, -1, -1, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, + -1, -1, 466, 467, 468, 469, 470, 471, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, + 484, 485, 486, 487, 488, 489, 490, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, + 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, + 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, -1, 31, 32, -1, 34, 35, + 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, -1, -1, + 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, + 84, -1, -1, 87, -1, 89, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, + 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, + -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, -1, + 146, 147, 148, 149, -1, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, 161, 162, -1, 164, -1, + 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, -1, -1, 179, -1, -1, 182, -1, 184, 185, + 186, -1, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, + 205, 206, -1, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, -1, + 246, -1, 248, 249, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, + 266, 267, -1, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, -1, -1, 296, -1, 298, 299, 300, -1, -1, 303, -1, -1, + 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, 325, + -1, 327, 328, -1, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, + 346, -1, 348, -1, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, + -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, -1, 399, 400, 401, 402, 403, -1, + 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, -1, + 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, + 463, -1, -1, 466, 467, -1, 469, -1, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, + -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, -1, 497, 498, -1, 500, 501, 502, + 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, + -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, -1, + 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, -1, -1, + 87, -1, 89, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, + 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, + -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, -1, 152, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, + 169, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 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, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, + 246, -1, 248, 249, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, -1, -1, 303, 304, -1, + 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, 316, -1, 318, 319, 320, -1, -1, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, + 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, + 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, 453, 454, 455, 456, 457, 458, 459, + -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, 471, 472, 473, -1, 475, 476, 477, -1, 479, + 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, + 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, + 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, 18, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, + 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, + 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, + 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, + 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, + 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, + -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, + 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, + -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, + 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, + 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, + 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, + -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, + 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, + 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, + 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, -1, 454, 455, 456, 457, 458, + 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, + 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, + -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, + 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, 18, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, + 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, + 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, + 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, + 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, + 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, + -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, + 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, + -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, + 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, + 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, + 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, + -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, + 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, + 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, + 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, -1, 454, 455, 456, 457, 458, + 459, -1, 461, 462, 463, -1, 15, 466, 467, 468, 469, 470, -1, 472, 473, 24, 475, 476, 477, -1, + 479, 480, 481, 482, 33, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, + -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, 59, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 151, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 176, -1, -1, -1, -1, 181, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, 219, 220, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 247, -1, 249, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 261, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 280, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 300, 301, 302, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, -1, -1, + 321, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 333, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 361, 362, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 398, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 421, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, + 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, 449, 450, 15, -1, 17, -1, -1, 20, 21, 22, -1, 24, 25, 26, + 27, 28, 29, 30, 31, 32, -1, 34, 35, 36, 37, 474, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, -1, 54, 55, 56, 57, 58, 59, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, -1, -1, + 98, 99, 100, 101, 102, 103, 104, 105, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, + 118, 119, -1, -1, 122, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, + 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, -1, 156, + 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, 176, + 177, 178, 179, -1, 181, 182, -1, 184, 185, 186, 187, 188, 189, 190, -1, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, 206, 207, 208, 209, 210, 211, 212, -1, 214, + -1, 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, -1, 242, -1, 244, 245, 246, 247, 248, -1, -1, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + -1, -1, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, -1, 303, 304, -1, 306, 307, 308, 309, 310, 311, + -1, 313, 314, 315, -1, -1, 318, 319, 320, 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, + 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, + 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, -1, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, + 446, 447, -1, 449, 450, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, -1, 479, 480, 481, 482, -1, 484, + 485, 486, 487, 488, 489, 490, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, + 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 15, -1, -1, -1, 15, -1, -1, -1, 15, 24, -1, + -1, -1, 24, -1, -1, -1, 24, 33, -1, -1, -1, 33, -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, 59, -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 95, -1, -1, + -1, 95, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 127, -1, -1, -1, 127, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 151, -1, -1, -1, 151, -1, -1, -1, 151, 160, -1, -1, -1, 160, -1, -1, + -1, 160, -1, -1, -1, -1, -1, -1, -1, 176, -1, -1, -1, 176, 181, -1, -1, 176, 181, -1, -1, -1, + 181, -1, 191, -1, -1, -1, 191, -1, -1, -1, 191, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 218, 219, 220, -1, 218, 219, 220, -1, 218, 219, 220, -1, -1, -1, -1, + -1, -1, 18, -1, -1, -1, -1, -1, -1, 242, -1, -1, -1, 242, 247, -1, 249, -1, 247, -1, 249, -1, + 247, -1, 249, -1, -1, 260, 261, -1, -1, 260, 261, -1, -1, -1, 261, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 280, -1, -1, -1, 280, -1, -1, -1, 280, -1, -1, -1, -1, -1, -1, -1, -1, -1, 81, 82, + 300, 301, 302, -1, 300, 301, 302, -1, 300, 301, 302, -1, -1, -1, 97, -1, -1, -1, 318, -1, -1, + 321, 318, -1, -1, 321, 318, -1, -1, 321, -1, -1, -1, 333, -1, 335, -1, 333, -1, 335, -1, 333, + -1, 126, -1, -1, -1, -1, 348, -1, -1, -1, 348, -1, -1, 15, 348, 140, -1, -1, -1, 361, 362, -1, + 24, 361, 362, -1, -1, 361, 362, -1, 155, 33, -1, -1, -1, -1, 161, -1, -1, -1, 165, -1, -1, -1, + 169, -1, -1, -1, -1, 174, -1, -1, -1, -1, 396, 180, -1, 59, 183, -1, -1, -1, 404, -1, -1, -1, + 404, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 421, -1, 206, -1, 421, -1, -1, -1, 421, + 213, -1, -1, -1, -1, 95, -1, -1, -1, 222, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, -1, -1, + 449, 450, -1, -1, 449, 450, -1, -1, -1, -1, 246, -1, -1, -1, 250, -1, -1, -1, -1, -1, -1, 474, + -1, -1, -1, 474, -1, -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, -1, 151, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 284, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 176, -1, -1, -1, -1, + 181, -1, -1, -1, -1, -1, -1, -1, 312, -1, 191, -1, 316, -1, -1, -1, -1, -1, 322, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, 219, 220, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 247, -1, + 249, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 261, -1, -1, 387, -1, -1, 390, -1, -1, -1, -1, + -1, -1, -1, 398, -1, -1, -1, -1, 280, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 300, 301, 302, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 318, -1, -1, 321, -1, -1, -1, 448, -1, -1, -1, -1, -1, -1, -1, 333, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 483, 361, 362, -1, + -1, -1, -1, -1, 491, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 507, -1, 509, + 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 421, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 449, 450, 0, 1, 2, 3, 4, 5, 6, + 7, 8, 460, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, 474, 24, 25, 26, 27, -1, 29, -1, + 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, + 55, 56, 57, 58, 59, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, + 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, 97, 98, 99, 100, 101, + 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, + 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, + 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, + -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, + -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, + 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, + -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, + -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, + 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, + -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, + 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, -1, 454, 455, 456, 457, + 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, + -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, + 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, + 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, + 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, + 55, 56, 57, 58, 59, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, + 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, 97, 98, 99, 100, 101, + 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, + 122, 123, 124, 125, -1, 127, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, + 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, + -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, + -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + -1, 242, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, + 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, + -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, + -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, + 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, + -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, + 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, -1, 454, 455, 456, 457, + 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, + -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, + 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, + 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, + 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, + 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, + 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, 97, 98, 99, 100, 101, + 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, + 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, -1, + 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, + -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, + -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, + 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, + -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, + -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, + 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, + -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, -1, 388, 389, -1, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, + 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, -1, -1, -1, -1, 452, -1, 454, 455, 456, 457, + 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, + -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, + 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, + 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, 17, -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, + 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, + 79, 80, -1, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, -1, 98, 99, 100, 101, + 102, 103, 104, 105, 106, -1, 108, 109, 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, + 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, -1, 156, 157, 158, 159, 160, + -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, -1, 175, -1, 177, 178, 179, -1, + -1, 182, -1, 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, -1, 214, -1, 216, 217, -1, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, 249, -1, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, -1, 302, 303, 304, -1, 306, 307, 308, 309, 310, 311, -1, 313, 314, 315, -1, -1, + 318, 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, + 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, 447, -1, -1, -1, -1, + 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, 468, 469, 470, + 471, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, 484, 485, 486, 487, 488, 489, + 490, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, + -1, 511, 512, -1, -1, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, + 20, 21, 22, -1, 24, 25, 26, 27, -1, 29, -1, 31, 32, 33, 34, -1, 36, 37, -1, 39, 40, 41, 42, 43, + 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, + 68, -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, -1, 83, 84, -1, -1, 87, -1, -1, -1, -1, + -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, + 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, + 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, -1, + 153, -1, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, -1, -1, -1, 170, 171, 172, + 173, -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, -1, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, -1, 207, 208, 209, 210, 211, + 212, -1, 214, -1, 216, 217, -1, -1, -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, -1, -1, 248, -1, -1, 251, + 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, -1, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, -1, 298, 299, -1, -1, -1, 303, 304, -1, 306, -1, 308, 309, 310, 311, + -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, -1, 326, 327, -1, 329, 330, 331, + 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, + 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, + 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, + -1, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, -1, 405, 406, 407, 408, -1, + 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, -1, 422, 423, 424, 425, -1, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, -1, + -1, -1, -1, -1, 452, -1, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, + 468, 469, 470, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, + 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, -1, 502, 503, 504, 505, -1, -1, + 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, + -1, -1, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, -1, 31, 32, -1, 34, 35, 36, 37, -1, 39, 40, 41, + 42, 43, 44, 45, -1, -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, -1, -1, 60, -1, -1, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, -1, -1, 87, -1, 89, + -1, -1, -1, 93, 94, -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, + 111, 112, 113, 114, -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, + 131, 132, 133, -1, 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, -1, 146, 147, 148, 149, -1, + -1, -1, 153, -1, -1, 156, 157, 158, 159, 160, 161, 162, -1, 164, -1, 166, 167, -1, 169, 170, + 171, 172, 173, -1, 175, -1, -1, -1, 179, -1, -1, 182, -1, 184, 185, 186, -1, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, -1, 205, 206, -1, 208, 209, + 210, 211, 212, -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, -1, 246, -1, 248, 249, -1, 251, + 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, -1, 269, 270, 271, + 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, -1, -1, 296, -1, 298, 299, 300, -1, -1, 303, -1, -1, 306, -1, 308, 309, 310, 311, -1, + 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, 325, -1, 327, 328, -1, 330, 331, 332, + -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, -1, 348, -1, 350, 351, 352, + -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, 371, -1, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, 390, 391, + 392, 393, 394, 395, -1, 397, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, -1, 410, + 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, 428, 429, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, -1, 443, -1, 445, 446, -1, -1, -1, + -1, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, 467, -1, 469, + -1, -1, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, 487, 488, 489, + -1, -1, 492, 493, 494, 495, -1, 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, -1, 508, -1, + -1, 511, 512, -1, -1, 515, 516, 517, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 530, 531, + 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, -1, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, + -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, -1, + -1, 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, -1, 60, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, -1, 75, 76, 77, 78, 79, 80, -1, 82, 83, 84, -1, -1, 87, -1, 89, -1, -1, -1, 93, 94, + -1, -1, -1, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 110, 111, 112, 113, 114, + -1, 116, 117, 118, 119, -1, -1, 122, 123, 124, 125, -1, -1, 128, -1, 130, 131, 132, 133, -1, + 135, -1, 137, 138, 139, -1, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, + 154, -1, 156, 157, 158, 159, 160, -1, 162, -1, 164, -1, 166, 167, -1, 169, 170, 171, 172, 173, + -1, 175, -1, 177, 178, 179, -1, -1, 182, -1, 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, + -1, 214, -1, 216, 217, -1, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, -1, -1, -1, 244, 245, 246, -1, 248, 249, -1, 251, + 252, 253, -1, -1, 256, 257, 258, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, -1, 298, 299, 300, -1, -1, 303, 304, -1, 306, 307, 308, 309, 310, 311, + -1, 313, 314, 315, -1, -1, 318, 319, 320, -1, -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, -1, 334, -1, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, + 351, 352, -1, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, 368, 369, 370, + 371, -1, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, -1, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, -1, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + -1, 410, 411, 412, 413, 414, -1, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, -1, 427, + 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, -1, 445, 446, + -1, -1, -1, -1, -1, 452, 453, 454, 455, 456, 457, 458, 459, -1, 461, 462, 463, -1, -1, 466, + 467, 468, 469, 470, 471, 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, -1, -1, 485, 486, + 487, 488, 489, -1, -1, 492, 493, 494, 495, 496, 497, 498, -1, 500, 501, 502, 503, 504, 505, -1, + -1, 508, -1, -1, 511, 512, -1, -1, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, -1, -1, 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, -1, -1, 128, + 129, 130, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, -1, 177, 178, 179, 180, -1, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 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, -1, + 243, 244, 245, 246, -1, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, -1, -1, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + -1, -1, 303, 304, -1, 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, -1, 334, -1, 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, -1, -1, 363, 364, 365, -1, 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, 397, 398, 399, 400, 401, 402, 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, 445, 446, 447, -1, -1, -1, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, -1, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, -1, -1, -1, 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, -1, -1, 128, 129, 130, + 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, -1, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, -1, 177, 178, 179, 180, -1, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 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, -1, 243, 244, + 245, 246, -1, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, -1, -1, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, -1, -1, + 303, 304, -1, 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, -1, 334, -1, 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, -1, -1, 363, 364, 365, -1, 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, 397, + -1, 399, 400, 401, 402, 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, 445, 446, 447, -1, -1, -1, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + -1, 475, 476, 477, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, -1, -1, 515, 516, 517, -1, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, +]; +pub(crate) static ACTION_TABLE: [i16; 247326] = [ + 2, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 3, 32767, 4, 5, 710, + 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 6, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 7, + 32767, 32767, 946, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 8, 32767, 9, 10, + 32767, 32767, 32767, 32767, 32767, 32767, 11, 32767, 12, 32767, 32767, 4, 5, 32767, 32766, + -1594, 32767, 32766, 32767, 32767, 32767, 13, 32766, 14, -1572, 32767, 32767, 32767, 32767, + 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 1369, 15, 32766, 32767, 16, 32767, 32766, 32766, 32767, 946, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32767, 32767, 17, 32766, 18, 32766, 32767, 32766, 19, -135, 32766, 32766, 32767, + 32766, 32766, 958, 941, 20, 1540, 32766, 761, 1092, 32767, 32767, 32766, 32766, 32766, 21, + 32766, 22, 32767, 32766, 198, 1499, 1232, 32766, -1, 1031, 23, 32766, 32766, 32767, 1826, 16, + 32766, 32766, 32766, 32766, 1156, 32766, 32766, 2648, 1039, 32766, 32766, 32766, 32766, 24, + 3025, 32767, 1232, 32766, 5083, 1395, 932, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32767, 32767, 25, 32766, 32767, 1450, 32767, 21, 199, 32766, 32766, + 32766, 32766, -1248, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32767, 200, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 1414, 942, 32766, 32766, 32766, 32766, 32766, 201, 32766, 32766, 32766, 32766, 32766, + 715, 202, 32766, 32766, 32766, 32766, 26, 27, 32766, 933, 32766, 32766, 32766, 28, 32766, 29, + 32766, 32766, 1403, 203, 32766, 32766, 32766, 1032, 1414, 32766, 32766, 29, 30, 31, 32, 33, 34, + 32766, 35, 204, 32766, 870, 32766, 32766, 32766, 32766, 32766, 32766, 205, 943, 32766, 32766, + 1447, 32766, 681, 32766, 32766, -1248, 36, 32766, 32766, 782, 32766, 206, 1861, 1224, 32766, + 32766, 32766, 1448, 207, 32766, 32766, 32766, 32766, 762, 32766, 32766, 32766, 29, 208, 32766, + 32766, 32766, 1199, 32766, 32766, 715, 32766, 1227, 2678, 32766, 32766, -675, 1698, 29, 32766, + 32766, 32766, -2592, 209, 32766, 32766, 1033, 32766, 1480, 32766, 32766, 32766, 37, 711, 1481, + 32766, 32766, 32766, 666, 1227, 32766, 32766, -622, 886, -1024, 934, 32766, 1404, 32766, 32766, + 32766, 38, -1023, 32766, 32766, -515, 39, 683, 40, 32766, 41, -672, 210, 1699, 32766, 42, -995, + 32766, 32766, -623, 29, 43, 32766, 32766, 44, 32766, 32766, 785, -1023, 32766, 32766, 1629, 45, + 32766, 32766, 1723, -1572, -2592, 211, 1452, 46, 47, 32766, 32766, 1015, 32766, 1034, 32766, + 48, 712, 32766, 32766, 49, 47, 32766, 32766, 32766, 2777, 32766, 32766, 2781, 32766, 39, 50, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 1482, 32766, 32766, 1614, 32766, + 32766, 32766, -135, 32766, 32766, 51, 32766, 32766, 32766, 32766, 2778, 32766, 32766, 212, + 32766, 716, 713, 51, 32766, 47, 32766, 195, 32766, 47, 195, 195, 52, 32766, 32766, 32766, 195, + 788, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 47, 53, 213, 32766, 32766, 32766, 1121, + 54, 1438, 716, 32766, 55, 214, 215, 32766, 1094, 216, 32766, 32766, 1098, 32766, 32766, 51, 55, + -2448, 56, 51, 32766, 32766, 57, 32766, 196, 32766, 32766, 196, 196, 32766, 56, 32766, 935, + 196, 32766, 51, 32766, 1227, 1122, 32766, 217, 32766, 32766, 218, 716, 47, 32766, 32766, 219, + 32766, 32766, 220, 1501, 32766, 32766, 1642, 32766, 32766, 32766, 221, 55, 32766, 222, 32766, + 55, 763, 1420, 32766, 32766, 32766, 716, 32766, 32766, 32766, 56, 1405, 1511, 32766, 57, 1123, + 55, -473, 223, 32766, -672, 1540, 694, 51, 695, 32766, 224, 32766, 1895, 32766, 56, 225, 1418, + 32766, 57, 1502, 226, 32766, 32766, 227, 32766, 32766, 32766, 29, 228, 1700, 32766, 32766, + 32766, 32766, 32766, 32766, 1945, 32766, 229, 1406, 1835, 32766, 1590, 1512, 32766, 230, 32766, + 32766, 2692, 32766, 32766, 32766, 32766, 2630, 1663, 32766, 32766, 32766, 1896, 231, 32766, + 1451, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, -1025, 32766, 32766, 32766, 32766, 1899, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 1664, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2819, 32766, 32766, 32766, + 32766, 32766, 716, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 1541, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 1443, 32766, 32766, 32766, 32766, 32766, + -1331, 2855, 32766, 32766, 2856, 42, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 782, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 1506, 32766, 32766, 32766, 32766, 32766, 2867, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 2900, 32766, 32766, 32766, 32766, 2092, 32766, 32766, 32766, 32766, + 32766, 1862, 32766, 1507, 32766, 32766, 32766, 32766, 1508, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 716, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 1897, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2991, 32766, 32766, 3014, 32766, 32766, 32766, + 3054, 2783, 32766, 32766, 32766, 32766, 32766, 1862, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 1946, 32766, 32766, 32766, 1880, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 2633, 32766, 32766, 32766, 32766, 32766, 1888, 32766, + 32766, 32766, 32766, 716, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2867, 3000, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 1542, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 3108, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 3393, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 2772, 32766, 32766, 2784, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2773, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 3207, 32766, 32766, 32766, 2580, 32766, 32766, + 32766, 32766, 3077, 32766, 32766, 32766, 32766, 32766, 32766, 2994, 3109, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, -890, -735, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2684, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 32766, 244, 245, 246, 32766, 2997, 2963, 32766, 32766, + 32766, 32766, 247, 248, 249, 32766, 250, 251, 252, 253, 254, 255, 32766, 256, 257, 258, 259, + 260, 261, 262, 3321, 263, 264, 265, 266, 267, 268, 269, 32766, 3623, 270, 271, 272, 273, 274, + 32766, 275, 276, 277, 278, 279, 32766, 280, 2787, 32766, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 2788, 292, 293, 294, 295, 296, 297, 32766, 298, 299, 300, 32766, 2633, 301, + 716, 302, 32766, 32766, 1881, 303, 304, 3072, 1890, 32766, 305, 306, 307, 308, 309, 310, 311, + 32766, 312, 3016, 313, 314, 315, 316, 317, 318, 319, 32766, 320, 321, 322, 323, 3017, 32766, + 324, 325, 326, 327, 32766, 1031, 328, 1669, 329, 330, 331, 332, 32766, 333, 32766, 334, 335, + 336, 32766, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 32766, 32766, 347, 32766, 32766, + 348, 349, 350, 351, 352, 3571, 353, 3196, 354, 32766, 355, 356, 1930, 357, 358, 359, 360, 361, + 32766, 362, 1670, 363, 364, 365, 32766, 32766, 366, 32766, 367, 368, 369, 32766, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32766, 386, 387, 388, 389, + 390, 391, 392, 393, 32766, 394, 32766, 395, 396, 32766, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 1032, 32766, 3696, 419, + 420, 421, 32766, 422, 423, 32766, 424, 425, 426, 32766, 1860, 427, 428, 429, 430, 32766, 1964, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32766, -1687, 2789, 32766, 1388, 442, + 443, 716, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 32766, 460, 461, 462, 32766, 32766, 463, 464, 3226, 465, 3444, 466, 467, 468, 469, 32766, 470, + 471, 472, 32766, 1033, 473, 474, 475, 1959, 32766, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, -747, 486, 32766, 487, 488, 489, 490, 491, 492, 493, 3339, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 2678, 503, 504, 505, 506, 507, 508, 509, -1719, 32766, 510, 511, 512, 3492, 513, + 514, 515, 516, 517, 782, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 32766, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 32766, 542, 543, 544, 545, 546, 3664, + 547, 548, 549, 550, 1946, 551, 552, 553, 554, 555, 32766, 556, 557, 558, 559, 560, 561, 562, + 563, 564, 565, 32766, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 3666, 583, 584, 1414, 3517, 32766, 1887, 2998, 585, 586, 587, 588, 589, 590, + 591, 592, 32766, 593, 594, 595, 32766, 32766, 596, 597, 598, 599, 600, 1447, 601, 602, 32766, + 603, 604, 605, 32766, 606, 607, 608, 609, 1668, 32766, 610, 611, 612, 613, 614, -880, 32766, + 615, 616, 617, 618, 619, 620, 621, 32766, 622, 623, 624, 625, 626, 627, 32766, 32766, 628, + 1932, 1979, 629, 630, 32766, 32766, 631, 632, 633, 2884, 634, 635, 636, 637, 638, 639, 640, + 641, 642, 643, 644, 645, 646, 647, 32766, 235, 236, 237, 238, 239, 240, 241, 242, 243, 656, + 244, 245, 246, 32766, 1602, 3630, 32766, 32766, 32766, 32766, 247, 248, 249, 3801, 250, 251, + 252, 253, 32766, 255, 32766, 256, 257, 258, 259, 1965, 261, 262, 32766, 263, 264, 265, 266, + 267, 268, 269, 4041, 782, 270, 271, 272, 273, 274, 4337, 275, 276, 277, 278, 279, -381, 32766, + 3872, 32766, 281, 282, 283, 284, 285, 286, 2766, 288, 289, 290, 291, 32766, 292, 293, 294, 295, + 296, 297, 1966, 2767, 299, 300, 32766, 3711, 301, 32766, 3146, 32766, 32766, 32766, 303, 304, + 32766, 3141, 3803, 305, 306, 307, 308, 309, 310, 311, 3834, 312, 3434, 313, 314, 315, 316, 317, + 318, 319, 32766, 320, 321, 322, 323, 3142, 32766, 324, 325, 326, 327, 2768, 32766, 328, 1694, + 329, 330, 331, 332, 32766, 333, 32766, 334, 335, 336, 1603, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 32766, 32766, 347, 32766, 32766, 348, 349, 350, 351, 352, -1751, 353, -1023, + 354, 32766, 355, 32766, 32766, 32766, 358, 359, 360, 361, -2592, 362, 1695, 363, 364, 365, + 1696, 32766, 366, 32766, 367, 368, 369, 1929, 32766, 371, 372, 32766, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 934, 386, 32766, 388, 389, 390, 391, 392, 393, 32766, 394, + 1227, 395, 396, 32766, 32766, 32766, 399, 32766, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 32766, 32766, 32766, 419, 420, 3554, 32766, 422, + 3878, 32766, 424, 425, 426, -2379, 32766, 427, 428, 429, 430, 32766, 3837, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 3163, 32766, 1039, 4043, 32766, 442, 443, -1751, 444, 445, + 446, 32766, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 32766, 460, 461, 32766, + 1967, 32766, 463, 464, 32766, 465, 32766, 466, 467, 468, 469, 32766, 470, 471, 472, 32766, + 32766, 473, 474, 475, 1590, 32766, 476, 477, 32766, 479, 480, 1388, 482, 483, 484, 485, 32766, + 486, 32766, 487, 488, 489, 490, 491, 492, 493, 3165, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 4050, 503, 504, 505, 506, 507, 508, 509, 3231, 4354, 510, 511, 512, 32766, 513, 514, 515, + 516, 517, 32766, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32766, + 532, 533, 1040, 535, 536, 537, 538, 539, 540, 541, -515, 542, 543, 544, 545, 546, 32766, 547, + 548, 549, 550, -2321, 551, 552, 553, 554, 555, 4574, 556, 557, 558, 559, 560, 32766, 562, 563, + 564, 565, 32766, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, + 581, 582, 2079, 583, 584, 32766, 2944, 32766, 32766, 2772, 585, 32766, 587, 588, 589, 590, 591, + 592, 32766, 593, 594, 595, -2420, 32766, 596, 597, 598, 599, 600, 3555, 601, 602, 32766, 603, + 604, 605, 32766, 606, 607, 608, 609, 32766, 3002, 610, 611, 612, 613, 614, 3595, -1640, 615, + 616, 617, 618, 619, 620, 621, 4296, 622, 3232, 624, 625, 626, 627, 32766, 32766, 628, 1232, + 3236, 629, 630, 32766, 32766, 631, 632, 633, 32766, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645, 646, 647, 648, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 4465, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 3728, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 3373, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 3880, 32766, 32766, 32766, 32766, + -2280, 32766, 32766, 32766, 32766, 32766, 32766, 4045, 32766, 32766, 32766, 32766, 2945, 32766, + 32766, 1039, 3387, 32766, 32766, 32766, 32766, 32766, -1332, 3388, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 4149, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 4835, 32766, 3590, 32766, 32766, 32766, 1946, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 4400, 32766, 32766, 32766, -1324, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 4066, 32766, 32766, 32766, 32766, -871, + 32766, 4405, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 1040, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 3223, 3374, 3233, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 3375, 3244, 32766, + 4471, 32766, 32766, 32766, 32766, 3646, 32766, 32766, 32766, 32766, 32766, 662, 1972, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 1129, 1553, + 3376, 32766, 32766, 32766, 32766, 32766, 32766, 3526, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 4433, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, -2313, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 1862, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 4284, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 4560, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 4865, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 5093, 32766, 32766, 1979, + 32766, 32766, 4451, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, -581, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 4626, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, -1098, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 663, + 32766, 32766, 32766, 32766, 3591, 32766, 32766, 5086, 4422, 32766, 32766, 1881, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 3821, 32766, 32766, 32766, 716, 32766, 1704, 3869, 32766, 32766, 3224, 32766, 32766, + 32766, 4423, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 668, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 5034, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 1862, + 32766, 32766, 32766, 32766, 32766, 32766, 4863, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, -1853, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 4592, 32766, 4688, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, -474, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 3797, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, -2389, 32766, 5076, 32766, 32766, 32766, 2638, 782, + 4968, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 3798, 32766, + 4242, 32766, 32766, 32766, 4983, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, -1883, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 4654, 32766, 32766, 32766, 5101, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 669, 785, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 4069, 4689, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 5441, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 1532, 32766, 32766, + 32766, 4629, 32766, 32766, 32766, 32766, 32766, 32766, 4655, 32766, 32766, 32766, 1962, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 1624, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 788, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 4660, 1930, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 5088, 32766, 32766, 5343, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 4653, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 1931, 32766, 32766, 32766, 32766, 32766, 1533, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 1625, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, -806, + 32766, 32766, 32766, 32766, 32766, 2029, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 5783, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 720, 32766, 32766, 32766, 32766, + 721, 4656, 32766, 4760, 32766, 32766, 32766, 32766, 2026, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 671, 32766, 4771, 1039, 1474, 32766, 32766, 32766, 1031, 32766, 1923, 722, 4872, 32766, + 32766, 1703, 32766, 1465, 672, 32766, 32766, 1704, 32766, 32766, 723, 1924, 4566, 32766, 32766, + 32766, 32766, 1128, 32766, 1936, 32766, 1930, 32766, 32766, 32766, 32766, 32766, 3686, 724, + -1703, 673, 32766, 2695, 2940, -149, 5340, 32766, 32766, 32766, 32766, 5453, 945, 32766, 674, + -1703, 4879, 32766, 32766, 725, 32766, -1703, -1702, 32766, 3200, 32766, 32766, 32766, 32766, + 32766, 2695, 3610, -890, 32766, 32766, 32766, 32766, -1702, 4439, 32766, 1925, 32766, 32766, + -1702, 726, 1939, 32766, 32766, 1976, 32766, 32766, 1534, 675, 1973, 1129, 32766, 32766, 32766, + 2027, 676, 727, 2696, 3687, 32766, 2041, 1446, 32766, 3086, 32766, 728, 32766, 1725, 1475, + -1703, 32766, 1040, 32766, 677, 32766, 1032, 32766, 1031, 1974, 1626, 729, 32766, 32766, 32766, + 2696, 32766, 32766, 730, 1705, 678, 5921, -1702, 32766, 32766, 1535, -136, 32766, 731, 679, + 32766, 3728, 32766, 32766, 32766, 32766, 32766, -1703, 32766, 32766, 3554, 1943, 32766, 716, + 680, 32766, 32766, 1946, 732, 32766, 32766, 32766, 32766, 1932, 681, 32766, 32766, 1627, 5032, + -1702, 32766, 682, 1536, 1466, 32766, 32766, 32766, 32766, 32766, 3611, 32766, 32766, 32766, + 4524, 32766, 32766, 32766, 1130, 32766, 32766, 4028, -1096, 1033, 1926, 32766, 32766, -672, + 3087, 32766, 2697, 32766, 32766, 32766, 5229, 32766, 32766, -711, 5707, 32766, -1703, 32766, + 32766, 32766, 32766, 5812, 32766, 4407, 32766, 3612, -1703, 32766, -2312, 32766, 733, 2698, + 32766, 32766, -1670, 3688, 32766, 32766, -1702, 1032, 32766, 32766, 32766, 32766, 4739, -1148, + 4740, 4408, -1702, 32766, 5414, 683, 1930, 1930, 32766, 3201, 32766, 32766, 2698, 32766, 32766, + 32766, 32766, -623, 5240, 4610, 32766, 32766, 32766, 1034, -600, 32766, 3613, 4435, 2944, + 32766, 32766, 32766, 1238, 32766, 1226, 32766, 32766, 734, 1927, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 3202, 32766, 32766, 32766, 735, 32766, 32766, 1632, 5415, 32766, 32766, + 1633, 32766, 1943, 1954, 32766, 3203, 32766, 32766, 736, 5856, 32766, 32766, 1033, 684, 3719, + 32766, 685, -1148, 214, 737, 5238, 32766, 738, 5846, 1444, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 1884, 1440, 782, 32766, 2867, 1706, 686, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 739, 32766, 687, 740, 32766, + 32766, 2634, 32766, 741, 32766, 32766, 742, 32766, -473, 32766, 32766, 32766, -2185, 32766, + 743, 2838, 1932, 744, 32766, 32766, 1131, 2868, 32766, 32766, 1034, 32766, -1703, 32766, 688, + 1707, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 745, 32766, 689, 32766, 3720, 32766, + 32766, 32766, 746, 32766, -473, -1702, 32766, 690, 32766, 32766, 32766, 32766, 747, 32766, + 32766, 748, 32766, 32766, -2661, 1132, 749, 5514, 32766, 32766, 32766, 32766, 32766, 691, 750, + 785, 751, 32766, 32766, 32766, 32766, 692, 32766, 752, 32766, 5563, 32766, 32766, 2945, 32766, + 32766, -473, 32767, 32766, 693, 32767, 694, 753, 695, 696, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 6195, 697, 2026, 32766, + 32766, 32766, 32766, 32766, 32766, 698, 32766, 4631, 699, 2842, 5854, 700, 32766, 32767, 1133, + 32766, 1134, 32766, 3196, 5675, 1135, 32766, 32766, 32766, -473, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 706, 244, 245, 246, 32766, 4069, 5359, 4070, 32766, 32766, 32766, 247, 248, 249, + 32766, 250, 251, 252, 253, 4632, 255, 32767, 256, 257, 258, 259, 32766, 261, 262, 32766, 263, + 264, 265, 266, 267, 268, 269, 32767, -1801, 270, 271, 272, 273, 274, 32766, 275, 276, 277, 278, + 279, 1881, 32766, 32766, 32766, 281, 282, 283, 284, 285, 286, 32766, 288, 289, 290, 291, 32766, + 292, 293, 294, 295, 296, 297, 1632, 32766, 299, 300, 1633, 32766, 301, 1121, -870, 32766, 1932, + 1932, 303, 304, 1913, 32766, -1879, 305, 306, 307, 308, 309, 310, 311, 32766, 312, 32766, 313, + 314, 315, 316, 317, 318, 319, 32766, 320, 321, 322, 323, 32766, -2339, 324, 325, 326, 327, + 1039, 1122, 328, 32766, 329, 330, 331, 332, 32767, 333, 1979, 334, 335, 336, -2197, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 32766, 32766, 347, 32766, 32766, 348, 349, 350, 351, + 352, 32766, 353, 5486, 354, 1930, 355, 32766, 32766, 32766, 358, 359, 360, 361, 2844, 362, + 32766, 363, 364, 365, 32766, 4029, 366, 4474, 367, 368, 369, 5155, 657, 371, 372, 3951, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32766, 386, 5555, 388, 389, 390, 391, + 392, 393, 32766, 394, 32766, 395, 396, 1976, 32766, 1124, 399, 32766, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 1040, 5004, 32766, 419, 420, + 32766, 32766, 422, 32766, 32766, 424, 425, 426, 32766, -892, 427, 428, 429, 430, 32766, 32767, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32766, 32766, 32766, -2311, 32766, 442, + 443, 32767, 444, 445, 446, 32766, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + -2187, 460, 461, 32766, 32766, 5573, 463, 464, 2845, 465, 32766, 466, 467, 468, 469, 32766, + 470, 471, 472, 32766, 32766, 473, 474, 475, 32766, 4600, 476, 477, 32766, 479, 480, 32767, 482, + 483, 484, 485, 3196, 486, 5762, 487, 488, 489, 490, 491, 492, 493, 5763, 494, 495, 496, 497, + 498, 499, 32766, 501, 502, 4978, 503, 504, 505, 506, 507, 508, 509, 5385, 5718, 510, 511, 512, + 32766, 513, 514, 515, 516, 517, 32766, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 6289, 532, 533, 32766, 535, 536, 537, 538, 539, 540, 541, 32766, 542, 543, 544, + 545, 546, 32766, 547, 548, 549, 550, 5772, 551, 552, 553, 554, 555, 32766, 556, 557, 558, 559, + 560, 32766, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 5982, 583, 584, 3357, 3358, 3359, 32766, 32766, 585, 32766, 587, + 588, 589, 590, 591, 592, 3951, 593, 594, 595, 32766, 32767, 596, 597, 598, 599, 600, 32766, + 601, 602, 32766, 603, 604, 605, 32766, 606, 607, 608, 609, 32766, 4686, 610, 611, 612, 613, + 614, -1627, -1530, 615, 616, 617, 618, 619, 620, 621, 32766, 622, 4979, 624, 625, 626, 627, + 1932, 32766, 628, 2778, 4678, 629, 630, 32766, 32766, 631, 632, 633, 32766, 634, 635, 636, 637, + 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 32766, 244, 245, 246, 32766, 32767, 5675, 32766, 4942, 32766, 32766, 247, 248, 249, 32766, + 250, 251, 252, 253, 3223, 255, 32767, 256, 257, 258, 259, 32766, 261, 262, 32766, 263, 264, + 265, 266, 267, 268, 269, 32766, 32766, 270, 271, 272, 273, 274, 5399, 275, 276, 277, 278, 279, + 4943, 5703, 32766, 32767, 281, 282, 283, 284, 285, 286, 32766, 288, 289, 290, 291, 32766, 292, + 293, 294, 295, 296, 297, 32766, 32766, 299, 300, 32766, 32766, 301, 32766, 32766, 6065, 32766, + 6097, 303, 304, 5327, 5999, 3418, 305, 306, 307, 308, 309, 310, 311, 32766, 312, 32766, 313, + 314, 315, 316, 317, 318, 319, 32766, 320, 321, 322, 323, 6146, 6148, 324, 325, 326, 327, 32767, + 32767, 328, 32766, 329, 330, 331, 332, 32766, 333, 6433, 334, 335, 336, 32766, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 32766, 5799, 347, 6154, 32767, 348, 349, 350, 351, 352, + 32766, 353, 5827, 354, 1930, 355, 32766, 32766, 32766, 358, 359, 360, 361, 32766, 362, 32766, + 363, 364, 365, 32766, 32766, 366, 32766, 367, 368, 369, 32767, 32766, 371, 372, 32766, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 6369, 386, 32766, 388, 389, 390, 391, + 392, 393, 1979, 394, 32767, 395, 396, 1979, 32766, 32767, 399, 32767, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 32766, 32766, 32767, 419, 420, + 32767, 32766, 422, 5575, 5914, 424, 425, 426, 32766, 32766, 427, 428, 429, 430, 5915, 6140, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, -2239, 32766, 4614, 32767, 4615, 442, + 443, 5851, 444, 445, 446, 32766, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 32766, 460, 461, 4290, 32766, 4075, 463, 464, 32766, 465, 5758, 466, 467, 468, 469, 32767, 470, + 471, 472, 32766, 4075, 473, 474, 475, 32766, 5759, 476, 477, 32767, 479, 480, 32766, 482, 483, + 484, 485, 32767, 486, 5985, 487, 488, 489, 490, 491, 492, 493, 32766, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 32766, 503, 504, 505, 506, 507, 508, 509, 32767, 32766, 510, 511, 512, + 5460, 513, 514, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 32766, 532, 533, 3949, 535, 536, 537, 538, 539, 540, 541, 4076, 542, 543, 544, + 545, 546, 32766, 547, 548, 549, 550, 32766, 551, 552, 553, 554, 555, 6190, 556, 557, 558, 559, + 560, 5461, 562, 563, 564, 565, 6191, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 32766, 583, 584, 6307, 32766, 32767, 6297, -2361, 585, 4641, 587, + 588, 589, 590, 591, 592, 32766, 593, 594, 595, 32766, 32767, 596, 597, 598, 599, 600, 32766, + 601, 602, 5903, 603, 604, 605, 32766, 606, 607, 608, 609, 2633, 32766, 610, 611, 612, 613, 614, + 32766, 32766, 615, 616, 617, 618, 619, 620, 621, 32766, 622, 32766, 624, 625, 626, 627, 1932, + 6025, 628, 6076, 32767, 629, 630, 32766, 32767, 631, 632, 633, 32767, 634, 635, 636, 637, 638, + 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 235, 236, 776, 238, 239, 240, 241, 242, 243, + 777, 244, 245, 246, 32766, 32767, 32766, 4445, 3121, 32766, 32766, 247, 248, 249, 32767, 250, + 251, 252, 253, 32766, 778, 32766, 256, 257, 258, 259, 32766, 261, 262, 32767, 263, 264, 265, + 266, 267, 268, 269, 3122, 32766, 270, 271, 272, 273, 274, 5402, 275, 276, 277, 278, 279, 32766, + 6104, 32766, 32766, 281, 282, 283, 284, 285, 286, 32766, 288, 289, 290, 291, 4077, 292, 293, + 294, 295, 296, 297, 941, 32766, 299, 300, 32766, 32766, 301, 32766, 4077, 32766, 32767, 1881, + 303, 304, 32766, 32766, 32767, 305, 306, 307, 308, 309, 310, 311, 32766, 312, 6348, 313, 314, + 315, 316, 317, 318, 319, 32766, 320, 321, 322, 323, 6214, 32766, 324, 325, 326, 327, 32767, + 6271, 328, 32767, 329, 330, 331, 332, 32766, 333, 32766, 334, 335, 336, -1690, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 32767, 32766, 347, 32766, 32767, 348, 349, 779, 351, 352, + 6189, 353, 32766, 354, 32766, 780, 32767, 781, 32766, 358, 359, 360, 361, 32766, 362, 32767, + 363, 364, 365, 32766, 942, 366, 32766, 367, 368, 369, 782, 657, 371, 372, 32767, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 1979, 388, 389, 390, 391, 392, 393, + 1039, 394, 32766, 395, 396, 783, 32767, 6272, 399, 32766, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 784, 32766, 32767, 32767, 419, 420, 5929, + 6239, 422, 5841, 32766, 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32766, 32767, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 4642, 32766, 32766, 32766, 32766, 442, 443, + 785, 444, 445, 446, 32767, 448, 449, 450, 786, 452, 453, 454, 455, 456, 457, 458, 459, 2581, + 460, 461, 32766, 32766, 32766, 463, 464, 32767, 465, 32766, 466, 467, 468, 469, 32767, 470, + 471, 472, 32767, 32766, 473, 474, 475, 32766, 32767, 476, 477, 6365, 479, 480, 1040, 482, 483, + 484, 485, 6273, 486, 32766, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 32766, 787, 504, 505, 506, 507, 508, 509, 32766, 788, 510, 511, 512, 716, + 513, 514, 515, 516, 517, 32767, 518, 519, 520, 521, 32766, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 6379, 532, 533, 32767, 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, + 546, 32766, 547, 548, 549, 550, 4647, 551, 552, 553, 554, 555, 5930, 556, 557, 558, 559, 560, + 32766, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 32767, 583, 584, 32766, 32766, 32767, 32767, 1199, 585, 32766, 587, + 588, 589, 590, 591, 592, 32766, 593, 594, 595, 32767, 5788, 596, 597, 598, 599, 600, 32767, + 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 6431, 32766, 610, 611, 612, 613, + 614, 32766, 32767, 615, 616, 617, 618, 619, 620, 621, 32766, 622, 32766, 624, 625, 626, 627, + 32767, 32767, 628, 4648, 4279, 629, 630, 32767, 32766, 631, 632, 633, 4210, 634, 635, 636, 637, + 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 795, 244, 796, 246, 32766, 32766, 32767, 32766, 32767, 32767, 32767, 247, 248, 249, 32766, + 250, 251, 252, 253, 32766, 255, 5140, 256, 257, 258, 259, 32767, 261, 262, 32767, 263, 264, + 265, 266, 267, 268, 269, 5273, 32766, 270, 271, 272, 273, 274, 32767, 275, 276, 277, 278, 279, + 5141, 32767, 32766, 32767, 281, 282, 283, 284, 285, 286, 32766, 288, 289, 290, 291, -1252, 292, + 293, 294, 295, 296, 297, 797, 32767, 299, 300, 5675, 32767, 301, -1253, 5676, 32767, 1039, + 32766, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32766, 312, 32767, + 313, 314, 315, 316, 317, 318, 319, 32766, 320, 321, 322, 323, 32767, 32767, 324, 325, 326, 327, + 32766, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 1979, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 32767, 32767, 347, 32766, 32767, 348, 349, 350, 351, + 352, 32767, 353, 32767, 354, 1930, 355, 32766, 32767, 32766, 358, 359, 360, 361, 4649, 362, + 32767, 363, 364, 365, 4870, 32766, 366, 32767, 367, 368, 369, 32767, 657, 371, 372, 32766, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 1040, 388, 389, 390, 391, + 392, 393, 2579, 394, 32767, 395, 396, 1946, 32767, 32767, 399, 32767, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 32766, 32766, 32767, 419, 420, + 32767, 32766, 422, 32767, 32766, 424, 425, 426, 32766, 32767, 427, 428, 429, 430, 32767, 32767, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, 32767, -2823, 32766, 32767, 442, + 443, 32767, 444, 445, 446, 32767, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 32767, 460, 461, 32767, 32767, 32766, 463, 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, + 470, 471, 472, 32767, 32766, 473, 474, 475, 32767, 32767, 476, 477, 32767, 479, 480, 32767, + 482, 483, 484, 485, 32767, 486, 32766, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 32766, 510, 511, + 512, 32767, 513, 514, 515, 516, 517, 798, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 32766, 532, 533, -2823, 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, + 544, 545, 546, 32766, 547, 548, 549, 550, 32766, 551, 552, 553, 554, 555, 32767, 556, 557, 558, + 559, 560, 32767, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32767, 32767, 32767, 32767, 585, + 32766, 587, 588, 589, 590, 591, 592, 32767, 593, 594, 595, 32767, 32767, 596, 597, 598, 599, + 600, 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32766, 5791, 610, 611, + 612, 613, 614, 32767, 32766, 615, 616, 617, 618, 619, 620, 621, 32766, 622, 32767, 624, 625, + 626, 627, 1932, 32767, 628, 32767, 2886, 629, 630, 32767, 32766, 631, 632, 633, 1976, 634, 635, + 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 782, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 5517, + 32766, 32766, 32767, 32767, 32766, 32767, 4079, 32767, 32767, 32767, 32766, 32766, 32767, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32766, 4682, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 5792, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 5995, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 5996, 32767, 32767, + 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 5817, 32766, 32766, 32766, 5374, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, + 32767, 32767, 32767, 808, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 6294, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 2887, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 782, 244, 245, 246, 32767, 5818, 32767, 32767, 32767, 32767, 4683, 247, 248, 249, 32767, 250, + 251, 252, 253, 32767, 255, 32767, 256, 257, 258, 259, 32767, 261, 262, 32767, 263, 264, 265, + 266, 267, 268, 269, 32766, -2227, 270, 271, 272, 273, 274, 32767, 275, 276, 277, 278, 279, + 32767, 32767, 32767, 32767, 281, 282, 283, 284, 285, 286, 32767, 288, 289, 290, 291, 32767, + 292, 293, 294, 295, 296, 297, 6295, 32766, 299, 300, 32767, 32767, 301, 32767, 32767, 32766, + 32766, 32767, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32767, 312, + 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 1480, 32767, 324, 325, + 326, 327, 32766, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, + 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 6296, 5997, 347, 32767, 32767, 348, + 349, 350, 351, 352, 5519, 353, 32767, 354, 32767, 355, 32767, 32767, 32767, 358, 359, 360, 361, + 32767, 362, 32767, 363, 364, 365, 32767, 32767, 366, 32767, 367, 368, 369, 32766, 657, 371, + 372, 32767, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 32767, 388, + 389, 390, 391, 392, 393, 32767, 394, 1482, 395, 396, 32767, 32767, 32766, 399, 32767, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, + 32767, 419, 420, 32767, 32767, 422, 32766, 32767, 424, 425, 426, 32767, 32767, 427, 428, 429, + 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, 32767, 32767, + 32767, 1483, 442, 443, 32767, 444, 445, 446, 32767, 448, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 458, 459, 32767, 460, 461, 32767, 32767, 32767, 463, 464, 32767, 465, 32767, 466, + 467, 468, 469, 32767, 470, 471, 472, 32767, 32766, 473, 474, 475, 32767, 32767, 476, 477, + 32767, 479, 480, 32767, 482, 483, 484, 485, 32767, 486, 32766, 487, 488, 489, 490, 491, 492, + 493, 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, + 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, 32767, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 32767, 535, 536, 537, 538, + 539, 540, 541, 32767, 542, 543, 544, 545, 546, 32766, 547, 548, 549, 550, 32767, 551, 552, 553, + 554, 555, 32767, 556, 557, 558, 559, 560, 32767, 562, 563, 564, 565, 32767, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32767, + 32767, 32767, 32766, 585, 32767, 587, 588, 589, 590, 591, 592, 32767, 593, 594, 595, 32767, + 32767, 596, 597, 598, 599, 600, 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, + 609, 32767, 32767, 610, 611, 612, 613, 614, 32767, 32767, 615, 616, 617, 618, 619, 620, 621, + 32767, 622, 32767, 624, 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, + 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, + 648, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 819, 32766, 32766, 32766, + 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 820, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 6221, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 4212, 244, 245, 246, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 254, 255, 32767, 256, 257, 32767, 825, + 260, 826, 827, 32767, 263, 264, 265, 266, 267, 268, 269, 4213, 32767, 270, 271, 828, 273, 829, + 32767, 275, 276, 277, 278, 6222, 32767, 280, 32767, 32766, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, 298, 299, 300, 32767, 4215, + 301, 32767, 302, 32767, 32766, 32767, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 830, + 831, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, + 32766, 32767, 324, 325, 832, 327, 32767, 32766, 328, 32767, 329, 330, 331, 332, 32767, 333, + 2860, 334, 335, 336, 32767, 337, 338, 339, 340, 3981, 342, 343, 344, 345, 6223, 32767, 32767, + 347, 5051, 32767, 348, 349, 350, 833, 352, 32767, 353, 32767, 354, 32767, 355, 356, 32767, 357, + 358, 359, 360, 361, 32767, 362, 32767, 32767, 5052, 365, 32767, 32766, 366, 3610, 367, 368, + 369, 32767, 834, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 32767, 386, 387, 32767, 389, 390, 391, 392, 835, 32767, 836, 32767, 837, 396, 32767, 397, 398, + 399, 400, 838, 32767, 32767, 32767, 32767, 32767, 32767, 4217, 32766, 32767, 32767, 412, 413, + 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 3982, 421, 32767, 422, 423, 32767, 424, 425, + 426, 5925, 32767, 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 32766, 438, + 439, 440, 441, 32766, 32767, 32766, 32767, 32767, 442, 443, 32767, 444, 445, 839, 447, 840, + 449, 450, 451, 452, 453, 454, 455, 456, 3611, 32767, 459, 32766, 460, 461, 462, 32766, 32767, + 463, 32766, 32767, 465, 32767, 841, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 473, + 474, 475, 32766, 32767, 476, 477, 478, 32767, 480, 481, 32767, 483, 484, 485, 32767, 486, + 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 32767, 498, 32767, 500, 501, + 502, 32767, 503, 504, 505, 506, 507, 508, 509, 5375, 32767, 510, 511, 512, 32767, 513, 842, + 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 32767, 532, 533, 534, 535, 536, 537, 538, 539, 32767, 541, 32767, 542, 543, 544, 545, 546, + 32767, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 32767, 556, 843, 558, 559, 560, 561, + 562, 563, 844, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, + 579, 580, 32766, 582, 32767, 583, 584, 32766, 32767, 32766, 32767, 32767, 585, 586, 587, 588, + 589, 590, 591, 592, 32767, 593, 845, 846, 32767, 32767, 596, 597, 32766, 599, 32767, 32767, + 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, + 614, 32766, 32767, 615, 616, 617, 618, 3614, 620, 32766, 32767, 622, 623, 624, 625, 626, 627, + 2861, 3983, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 32766, 2862, + 32767, 32767, 2863, 32766, 32767, 32767, 32767, 32767, 32766, 645, 646, 647, 648, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 32767, 4325, 5048, 32767, 32767, + 32767, 32766, 247, 248, 249, 32767, 250, 251, 252, 253, 4378, 255, 32767, 256, 257, 258, 259, + 5119, 261, 262, 32767, 263, 264, 265, 266, 267, 268, 269, 32767, 32767, 270, 271, 272, 273, + 274, 32766, 275, 276, 277, 278, 279, 32766, 4956, 32766, 32766, 281, 282, 283, 284, 285, 286, + 32767, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32766, 32766, 299, 300, 32766, + 32767, 301, 32767, 32766, 32767, 32767, 32766, 303, 304, 32767, 32767, 32767, 305, 306, 307, + 308, 309, 310, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, + 323, 32767, 32767, 324, 325, 326, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, + 333, 32766, 334, 335, 336, 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 32767, + 32767, 347, 32767, 32767, 348, 349, 350, 351, 352, 32767, 353, 32767, 354, 1930, 355, 32767, + 32767, 32767, 358, 359, 360, 361, 32767, 362, 32767, 363, 364, 365, 32767, 32767, 366, 32767, + 367, 368, 369, 32767, 657, 371, 372, 32767, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 32767, 386, 32767, 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, 32766, + 32767, 32767, 399, 32767, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 32767, 32767, 32766, 419, 420, 32767, 32766, 422, 32767, 32767, 424, 425, + 426, 32766, 32767, 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 32767, 32767, 32766, 32767, 32767, 442, 443, 32767, 444, 445, 446, 32767, 448, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, 32767, 32767, 32766, + 463, 464, 32767, 465, 32766, 466, 467, 468, 469, 32767, 470, 471, 472, 32767, 32766, 473, 474, + 475, 32767, 32767, 476, 477, 32767, 479, 480, 32767, 482, 483, 484, 485, 32767, 486, 32767, + 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, 32767, + 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, + 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, + 32767, 535, 536, 537, 538, 539, 540, 541, 3497, 542, 543, 544, 545, 546, 32766, 547, 548, 549, + 550, 32767, 551, 552, 553, 554, 555, 32767, 556, 557, 558, 559, 560, 32767, 562, 563, 564, 565, + 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 32767, 583, 584, 32766, 32767, 32767, 32767, 32767, 585, 32766, 587, 588, 589, 590, 591, 592, + 32767, 593, 594, 595, 32767, 32767, 32766, 597, 598, 599, 600, 32767, 601, 602, 32767, 603, + 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, 32767, 32767, 615, + 616, 617, 618, 619, 620, 621, 4898, 622, 32767, 624, 625, 626, 627, 1932, 32767, 628, 32767, + 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, + 245, 246, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 247, 248, 249, 32767, 250, 251, 252, + 253, 32767, 255, 32767, 256, 257, 258, 259, 32766, 261, 262, 32767, 263, 264, 265, 266, 267, + 268, 269, 32767, 32767, 270, 271, 272, 273, 274, 32766, 275, 276, 277, 278, 279, 32767, 32767, + 32767, 4899, 281, 282, 283, 284, 285, 286, 32767, 288, 289, 290, 291, 32766, 292, 293, 294, + 295, 296, 297, 32767, 32766, 299, 300, 32767, 32767, 301, 32767, 32767, 32767, 32767, 32767, + 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32767, 312, 32767, 313, 314, + 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 326, 327, 32767, + 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 4900, 32767, 347, 32766, 4901, 348, 349, 350, 351, 352, + 32767, 353, 32767, 354, 32766, 355, 32767, 32767, 32767, 358, 359, 360, 361, 32767, 362, 32767, + 363, 364, 365, 32766, 32767, 366, 32767, 367, 368, 369, 32767, 657, 371, 372, 32766, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 32767, 388, 389, 390, 391, 392, + 393, 32767, 394, 32767, 395, 396, 32766, 32767, 32767, 399, 32767, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 32766, 32767, 32767, 419, 420, + 32767, 32766, 422, 32767, 32767, 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, + 443, 32767, 444, 445, 446, 32767, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 32767, 460, 461, 32767, 32767, 32767, 463, 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, + 470, 471, 472, 32767, 32767, 473, 474, 475, 32767, 32767, 476, 477, 32767, 479, 480, 32767, + 482, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, + 512, 32767, 513, 514, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 32767, 532, 533, 32767, 535, 536, 537, 538, 539, 540, 541, 32767, 542, + 32766, 544, 545, 546, 32766, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 32767, 556, + 557, 558, 559, 560, 32767, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 32767, 583, 584, 5879, 32767, 32767, 32767, 32767, + 585, 32767, 587, 588, 589, 590, 591, 592, 32767, 593, 594, 595, 32767, 32767, 596, 597, 598, + 599, 600, 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, + 611, 612, 613, 614, 32767, 6067, 615, 616, 617, 618, 619, 620, 621, 32767, 622, 32767, 624, + 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, + 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 874, 244, 245, 246, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 247, 248, 249, 32767, 250, 251, 252, 253, 32767, 255, 32767, 256, 257, 258, 259, 32766, 261, + 262, 32767, 263, 264, 265, 266, 267, 268, 269, 32767, 32767, 270, 271, 272, 273, 274, 32767, + 275, 276, 277, 278, 279, 32767, 32767, 32767, 32767, 281, 282, 283, 284, 285, 286, 32767, 288, + 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, 32767, 299, 300, 32767, 32767, 301, + 32767, 32767, 32767, 32767, 32767, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 309, 310, + 311, 32767, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, + 32767, 324, 325, 326, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, + 334, 335, 336, 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 32767, 32767, 347, + 32767, 32767, 348, 349, 350, 351, 352, 32767, 353, 32767, 354, 32766, 355, 32767, 32767, 32767, + 358, 359, 360, 361, 32767, 362, 32767, 363, 364, 365, 5048, 32767, 366, 32767, 367, 368, 369, + 32767, 657, 371, 372, 32767, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, + 386, 32767, 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, 32766, 32767, 32767, + 399, 32767, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 32767, 32767, 32767, 419, 420, 32767, 32766, 422, 32767, 32767, 424, 425, 426, 32767, + 32767, 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, 32767, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, 32767, 32767, 32767, 463, 464, 32767, + 465, 32767, 466, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 473, 474, 475, 32767, + 32767, 476, 477, 32767, 479, 480, 32767, 482, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, + 490, 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, 32767, 503, 504, 505, + 506, 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, 32767, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 32767, 535, + 536, 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, 546, 32767, 547, 548, 549, 550, 32767, + 551, 552, 553, 554, 875, 32767, 556, 557, 558, 559, 560, 32767, 562, 563, 564, 565, 32767, 566, + 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 32767, 583, + 584, 32767, 32767, 32767, 32767, 32767, 585, 32767, 587, 588, 589, 590, 591, 592, 32767, 593, + 876, 595, 32767, 32767, 32766, 597, 598, 599, 600, 32767, 601, 602, 32767, 603, 604, 605, + 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, 32767, 32767, 615, 616, 617, + 618, 619, 620, 621, 32767, 622, 32767, 624, 625, 626, 627, 32766, 32767, 628, 32767, 32767, + 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, + 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, 242, 243, 795, 244, 796, 246, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, + 32767, 255, 32767, 256, 257, 258, 259, 32766, 261, 262, 32767, 263, 264, 265, 266, 267, 268, + 269, 32767, 32767, 270, 271, 272, 273, 274, 32767, 275, 276, 277, 278, 279, 32767, 32767, + 32767, 32767, 281, 282, 283, 284, 285, 286, 32767, 288, 289, 290, 291, 32767, 292, 293, 294, + 295, 296, 297, 797, 32767, 299, 300, 32767, 32767, 301, 32767, 32767, 32767, 32767, 32767, 303, + 304, 32767, 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32767, 312, 32767, 313, 314, 315, + 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 326, 327, 32767, 32767, + 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 32767, 32767, 347, 32767, 32767, 348, 349, 350, 351, 352, 32767, + 353, 32767, 354, 32767, 355, 32767, 32767, 32767, 358, 359, 360, 361, 32766, 362, 32767, 363, + 364, 365, 32767, 32767, 366, 32767, 367, 368, 369, 32767, 657, 371, 372, 32767, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 32767, 388, 389, 390, 391, 392, 393, + 32767, 394, 32767, 395, 396, 32767, 32767, 32767, 399, 32767, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, + 32767, 32767, 422, 32767, 32767, 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, + 443, 32767, 444, 445, 446, 32767, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 32767, 460, 461, 32767, 32767, 32767, 463, 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, + 470, 471, 472, 32767, 32767, 473, 474, 475, 32767, 32767, 476, 477, 32767, 479, 480, 32767, + 482, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, + 512, 32767, 513, 514, 515, 516, 517, 798, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 32767, 532, 533, 32767, 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, + 544, 545, 546, 32767, 547, 548, 549, 550, 799, 551, 552, 553, 554, 555, 32767, 556, 557, 558, + 559, 560, 32767, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32767, 32767, 32767, 32767, 585, + 32767, 587, 588, 589, 590, 591, 592, 32767, 593, 594, 595, 32767, 32767, 596, 597, 598, 599, + 600, 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, + 612, 613, 614, 32767, 32767, 615, 616, 617, 618, 619, 620, 621, 32767, 622, 32767, 624, 625, + 626, 627, 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, + 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 819, 32766, 32766, 32766, 32767, 32767, 32767, 32767, + 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 820, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, + 249, 32767, 250, 251, 252, 253, 32767, 255, 32767, 256, 257, 258, 259, 32766, 261, 262, 32767, + 263, 264, 265, 266, 267, 268, 269, 32767, 32767, 892, 271, 272, 273, 274, 32767, 275, 276, 277, + 278, 279, 32767, 32767, 32767, 32767, 281, 282, 283, 284, 285, 286, 32767, 288, 289, 290, 291, + 32767, 893, 293, 294, 295, 296, 297, 32767, 32767, 299, 300, 32767, 32767, 301, 32767, 32767, + 32767, 32767, 32767, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32767, + 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, + 325, 326, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, + 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 32767, 32767, 347, 32767, 32767, 348, + 349, 350, 351, 352, 32767, 353, 32767, 354, 1930, 355, 32767, 32767, 32767, 358, 359, 360, 361, + 32767, 362, 32767, 363, 364, 365, 32767, 32767, 366, 32767, 367, 368, 369, 32767, 657, 371, + 372, 32767, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 32767, 388, + 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, 4682, 32767, 32767, 399, 32767, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, + 32767, 419, 420, 32767, 32766, 422, 32767, 32767, 424, 425, 894, 32767, 32767, 427, 428, 429, + 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, 32767, 32767, + 32767, 32767, 442, 443, 32767, 895, 445, 446, 32767, 448, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 458, 459, 32767, 460, 461, 32767, 32767, 32767, 463, 464, 32767, 465, 32767, 466, + 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 473, 474, 475, 32767, 32767, 476, 477, + 32767, 479, 480, 32767, 482, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, 491, 492, + 493, 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, + 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, 32767, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 32767, 896, 536, 537, 538, + 539, 540, 541, 32767, 542, 543, 544, 897, 546, 32767, 547, 548, 549, 550, 32767, 551, 552, 553, + 554, 898, 32767, 556, 557, 558, 559, 560, 32767, 562, 563, 564, 565, 32767, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32767, + 32767, 32767, 32767, 585, 32767, 587, 588, 589, 590, 591, 592, 32767, 593, 899, 595, 32767, + 32767, 900, 597, 598, 599, 600, 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, + 609, 32767, 32767, 610, 611, 612, 613, 614, 32767, 32767, 615, 616, 617, 618, 619, 620, 621, + 32767, 622, 32767, 624, 625, 626, 627, 1932, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, + 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 32766, 646, 647, + 648, 235, 236, 237, 238, 239, 240, 241, 242, 243, 906, 244, 245, 246, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 32767, 255, 32767, 256, + 257, 258, 259, 32766, 261, 262, 32767, 263, 264, 265, 266, 267, 268, 269, 32767, 32767, 270, + 271, 272, 273, 274, 32767, 275, 276, 277, 278, 279, 32767, 32767, 32767, 32767, 281, 282, 283, + 284, 285, 286, 32767, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, 32767, + 299, 300, 32767, 32767, 301, 32767, 32767, 32767, 32767, 32767, 303, 304, 32767, 32767, 32767, + 305, 306, 307, 308, 309, 310, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, + 320, 321, 322, 323, 32767, 32767, 324, 325, 326, 327, 32767, 32767, 328, 32767, 329, 330, 331, + 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 32767, 32767, 347, 32767, 32767, 348, 349, 350, 351, 352, 32767, 353, 32767, 354, 32767, 355, + 32767, 32767, 32767, 358, 359, 360, 361, 32767, 362, 32767, 363, 364, 365, 32767, 32767, 366, + 32767, 367, 368, 369, 32767, 657, 371, 372, 32767, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 32767, 386, 32767, 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, + 32767, 32767, 32767, 399, 32767, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, 32767, 32767, 422, 32767, 32767, + 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, + 32767, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, 32767, + 32767, 32767, 463, 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, 470, 471, 472, 32767, + 32767, 473, 474, 475, 32767, 32767, 476, 477, 32767, 479, 480, 32767, 482, 483, 484, 485, + 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, + 514, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 32767, 532, 533, 32767, 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, 546, + 32767, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 907, 32767, 556, 557, 558, 559, 560, + 32767, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32767, 32767, 32767, 32767, 585, 32767, 587, + 588, 589, 590, 591, 592, 32767, 593, 908, 595, 32767, 32767, 32766, 597, 598, 599, 600, 32767, + 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, + 614, 32767, 32767, 615, 616, 617, 618, 619, 620, 621, 32767, 622, 32767, 624, 625, 626, 627, + 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, 249, + 32767, 250, 251, 252, 253, 32767, 255, 32767, 256, 257, 258, 259, 32767, 261, 262, 32767, 263, + 264, 265, 266, 267, 268, 269, 32767, 32767, 270, 271, 272, 273, 274, 32767, 275, 276, 277, 278, + 279, 32767, 32767, 32767, 32767, 281, 282, 283, 284, 285, 286, 32767, 288, 289, 290, 291, + 32767, 292, 293, 294, 295, 296, 297, 32767, 32767, 299, 300, 32767, 32767, 301, 32767, 32767, + 32767, 32767, 32767, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32767, + 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, + 325, 326, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, + 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 32767, 32767, 347, 32767, 32767, 348, + 349, 350, 351, 352, 32767, 353, 32767, 354, 32767, 355, 32767, 32767, 32767, 358, 359, 360, + 361, 32767, 362, 32767, 363, 364, 365, 32767, 32767, 366, 32767, 367, 368, 369, 32767, 657, + 371, 372, 32767, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 32767, + 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, 32767, 32767, 32767, 399, 32767, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 32767, 32767, 32767, 419, 420, 32767, 32767, 422, 32767, 32767, 424, 425, 426, 32767, 32767, + 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, + 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, 32767, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, 32767, 32767, 32767, 463, 464, 32767, 465, + 32767, 466, 467, 468, 469, 32767, 470, 471, 472, 32767, 32766, 473, 474, 475, 32767, 32767, + 476, 477, 32767, 479, 480, 32767, 482, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, + 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, + 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, 32767, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 32767, 535, 536, + 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, 546, 32767, 547, 548, 549, 550, 32767, 551, + 552, 553, 554, 555, 32767, 556, 557, 558, 559, 560, 32767, 562, 563, 564, 565, 32767, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 32767, 583, 584, + 32767, 32767, 32767, 32767, 32767, 585, 32767, 587, 588, 589, 590, 591, 592, 32767, 593, 594, + 595, 32767, 32767, 596, 597, 598, 599, 600, 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, + 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, 32767, 32767, 615, 616, 617, 618, 619, + 620, 621, 32767, 622, 32767, 624, 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, 630, + 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 32767, 255, 32767, + 256, 257, 258, 259, 32767, 261, 262, 32767, 263, 264, 265, 266, 267, 268, 269, 32767, 32767, + 270, 271, 272, 273, 274, 32767, 275, 276, 277, 278, 279, 32767, 32767, 32767, 32767, 281, 282, + 283, 284, 285, 286, 32767, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, + 32767, 299, 300, 32767, 32767, 301, 32767, 32767, 32767, 32767, 32767, 303, 304, 32767, 32767, + 32767, 305, 306, 307, 308, 309, 310, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, 318, 319, + 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 326, 327, 32767, 32767, 328, 32767, 329, + 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 32767, 32767, 347, 32767, 32767, 348, 349, 350, 351, 352, 32767, 353, 32767, 354, + 32767, 355, 32767, 32767, 32767, 358, 359, 360, 361, 32767, 362, 32767, 363, 364, 365, 32767, + 32767, 366, 32767, 367, 368, 369, 32767, 657, 371, 372, 32767, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 32767, 386, 32767, 388, 389, 390, 391, 392, 393, 32767, 394, + 32767, 395, 396, 32767, 32767, 32767, 399, 32767, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, 32767, 32767, 422, + 32767, 32767, 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, + 444, 445, 446, 32767, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 32767, 460, + 461, 32767, 32767, 32767, 463, 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, 470, 471, + 472, 32767, 32767, 473, 474, 475, 32767, 32767, 476, 477, 32767, 479, 480, 32767, 482, 483, + 484, 485, 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, + 32767, 513, 514, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 32767, 532, 533, 32767, 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, 544, + 545, 546, 32767, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 32767, 556, 557, 558, 559, + 560, 32767, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32767, 32767, 32766, 32767, 585, 32767, + 587, 588, 589, 590, 591, 592, 32767, 593, 594, 595, 32767, 32767, 596, 597, 598, 599, 600, + 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, + 613, 614, 32767, 32767, 615, 616, 617, 618, 619, 620, 621, 32767, 622, 32767, 624, 625, 626, + 627, 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, + 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, + 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 920, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 921, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, + 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, + 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, 249, + 32767, 250, 251, 252, 253, 32767, 255, 32767, 256, 257, 258, 259, 32767, 261, 262, 32767, 263, + 264, 265, 266, 267, 268, 269, 32767, 32767, 270, 271, 272, 273, 274, 32767, 275, 276, 277, 278, + 279, 32767, 32767, 32767, 32767, 281, 282, 283, 284, 285, 286, 32767, 288, 289, 290, 291, + 32767, 292, 293, 294, 295, 296, 297, 32767, 32767, 299, 300, 32767, 32767, 301, 32767, 32767, + 32767, 32767, 32767, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32767, + 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, + 325, 326, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, + 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 32767, 32767, 347, 32767, 32767, 348, + 349, 350, 351, 352, 32767, 353, 32767, 354, 32767, 355, 32767, 32767, 32767, 358, 359, 360, + 361, 32767, 362, 32767, 363, 364, 365, 32767, 32767, 366, 32767, 367, 368, 369, 32767, 657, + 371, 372, 32767, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 32767, + 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, 32767, 32767, 32767, 399, 32767, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 32767, 32767, 32767, 419, 420, 32767, 32767, 422, 32767, 32767, 424, 425, 426, 32767, 32767, + 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, + 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, 32767, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, 32767, 32767, 32767, 463, 464, 32767, 465, + 32767, 466, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 473, 474, 475, 32767, 32767, + 476, 477, 32767, 479, 480, 32767, 482, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, + 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, + 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 32766, 32767, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 32767, 535, 536, + 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, 546, 32767, 547, 548, 549, 550, 32767, 551, + 552, 553, 554, 555, 32767, 556, 557, 558, 559, 560, 32767, 562, 563, 564, 565, 32767, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 32767, 583, 584, + 32767, 32767, 32767, 32767, 32767, 585, 32767, 587, 588, 589, 590, 591, 592, 32767, 593, 594, + 595, 32767, 32767, 596, 597, 598, 599, 600, 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, + 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, 32767, 32767, 615, 616, 617, 618, 619, + 620, 621, 32767, 622, 32767, 624, 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, 630, + 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, + 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32767, 32766, + 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32767, + 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, + 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 930, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 663, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 254, 255, 32767, 256, + 257, 258, 259, 260, 261, 262, 32767, 263, 264, 265, 266, 267, 268, 269, 32767, 32767, 270, 271, + 272, 273, 274, 32767, 275, 276, 277, 278, 279, 32767, 280, 32767, 32767, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, 298, 299, 300, + 32767, 32767, 301, 964, 302, 32767, 32767, 965, 303, 304, 32767, 32767, 32767, 305, 306, 307, + 308, 309, 310, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, + 323, 32767, 32767, 324, 325, 326, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, + 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 32767, + 32767, 347, 32767, 32767, 348, 349, 350, 351, 352, 32767, 353, 32767, 354, 32767, 355, 356, + 32767, 357, 358, 359, 360, 361, 32767, 362, 32767, 363, 364, 365, 32767, 32767, 366, 32767, + 367, 368, 369, 32767, 966, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 32767, 386, 387, 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, 32767, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 32767, 32767, 32767, 419, 420, 421, 32767, 422, 423, 32767, 424, 425, 426, + 32767, 32767, 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, 462, 32767, 32767, 463, 464, + 32767, 465, 32767, 466, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 473, 474, 475, + 32767, 32767, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 32767, 486, 32767, 487, 488, + 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, 32767, 503, 504, + 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, 32767, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, 546, 32767, 547, 548, 549, 550, + 32767, 551, 552, 553, 554, 555, 32766, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 32767, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 32767, + 583, 584, 32767, 32767, 32767, 32767, 32767, 585, 586, 587, 588, 589, 590, 591, 592, 32767, + 593, 594, 595, 32767, 32767, 596, 597, 598, 599, 600, 32767, 601, 602, 32767, 603, 604, 605, + 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, 32767, 32767, 615, 616, 617, + 618, 619, 620, 621, 32767, 622, 623, 624, 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, + 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, 242, 243, 974, 244, 245, 246, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 32767, 255, + 32767, 256, 257, 258, 259, 32767, 261, 262, 32767, 263, 264, 265, 266, 267, 268, 269, 32767, + 32767, 270, 271, 272, 273, 274, 32767, 275, 276, 277, 278, 279, 32767, 32767, 32767, 32767, + 281, 282, 283, 284, 285, 286, 32767, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, + 32767, 32767, 299, 300, 32767, 32767, 301, 32767, 32767, 32767, 32767, 32767, 303, 304, 32767, + 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, + 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 326, 327, 32767, 32767, 328, + 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 32767, 32767, 347, 32767, 32767, 348, 349, 350, 351, 352, 32767, 353, + 32767, 354, 32767, 355, 32767, 32767, 32767, 358, 359, 360, 361, 32767, 362, 32767, 363, 364, + 365, 32767, 32767, 366, 32767, 367, 368, 369, 32767, 657, 371, 32766, 32767, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 32767, 388, 389, 390, 391, 392, 393, + 32767, 394, 32767, 395, 396, 32767, 32767, 32767, 399, 32767, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, + 32767, 32767, 422, 32767, 32767, 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, + 443, 32767, 444, 445, 446, 32767, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 32767, 460, 461, 32767, 32767, 32767, 463, 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, + 470, 471, 472, 32767, 32767, 473, 474, 475, 32767, 32767, 476, 477, 32767, 479, 480, 32767, + 482, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, + 512, 32767, 513, 514, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 32767, 532, 533, 32767, 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, + 544, 545, 546, 32767, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 32767, 556, 557, 558, + 559, 560, 32767, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32767, 32767, 32767, 32767, 585, + 32767, 587, 588, 589, 590, 591, 592, 32767, 593, 594, 595, 32767, 32767, 596, 597, 598, 599, + 600, 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, + 612, 613, 614, 32767, 32767, 615, 616, 617, 618, 619, 620, 621, 32767, 622, 32767, 624, 625, + 626, 627, 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, + 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 247, + 248, 249, 32767, 250, 251, 252, 253, 32767, 255, 32767, 256, 257, 258, 259, 32767, 261, 262, + 32767, 263, 264, 265, 266, 267, 268, 269, 32767, 32767, 270, 271, 272, 273, 274, 32767, 275, + 979, 277, 278, 279, 32767, 32767, 32767, 32767, 281, 282, 283, 284, 285, 286, 32767, 288, 289, + 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, 32767, 299, 300, 32767, 32767, 301, + 32767, 32767, 32767, 32767, 32767, 303, 304, 980, 32767, 32767, 305, 306, 307, 308, 309, 310, + 311, 32767, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, + 32767, 324, 325, 326, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, + 334, 335, 336, 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 981, 32767, 982, 32767, + 32767, 348, 349, 350, 351, 352, 32767, 353, 32767, 354, 32767, 355, 32767, 32767, 32767, 358, + 359, 360, 361, 32767, 362, 983, 363, 364, 365, 32767, 984, 366, 32767, 367, 368, 369, 32767, + 657, 371, 372, 32767, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, + 32767, 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, 32767, 32767, 32767, 399, + 32767, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 32767, 32767, 32767, 419, 420, 32767, 985, 422, 32767, 32767, 424, 425, 426, 32767, 32767, + 427, 428, 429, 430, 32767, 986, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, + 32767, 32767, 32767, 32767, 442, 443, 987, 444, 445, 446, 32767, 448, 449, 450, 451, 452, 453, + 454, 455, 456, 457, 458, 459, 32767, 460, 461, 32767, 988, 32767, 463, 464, 32767, 465, 32767, + 466, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 473, 474, 475, 32767, 32767, 476, 477, + 32767, 479, 480, 32767, 482, 483, 484, 485, 989, 486, 32767, 487, 488, 489, 490, 491, 492, 493, + 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, + 990, 991, 510, 511, 512, 32767, 513, 514, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 32767, 535, 536, 537, 538, 539, 540, + 541, 32767, 542, 543, 544, 545, 546, 32767, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, + 32767, 556, 557, 558, 559, 560, 32767, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32767, 992, + 32766, 32767, 585, 32767, 587, 588, 589, 590, 591, 592, 32767, 593, 594, 595, 32767, 32767, + 596, 597, 598, 599, 600, 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, + 32767, 32767, 610, 611, 612, 613, 614, 32767, 32767, 615, 616, 617, 618, 619, 620, 621, 32767, + 622, 32767, 624, 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, + 632, 633, 32767, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 32767, 255, 32767, 256, 257, + 258, 259, 32767, 261, 262, 32767, 263, 264, 265, 266, 267, 268, 269, 32767, 32767, 270, 271, + 272, 273, 274, 32767, 275, 276, 277, 278, 279, 32767, 32767, 32767, 32767, 281, 282, 283, 284, + 285, 286, 32767, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, 32767, 299, + 300, 32767, 32767, 301, 32767, 32767, 32767, 32767, 32767, 303, 304, 32767, 32767, 32767, 305, + 306, 307, 308, 309, 310, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, + 321, 322, 323, 32767, 32767, 324, 325, 326, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, + 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 32767, 32767, 347, 32767, 32767, 348, 349, 350, 351, 352, 32767, 353, 32767, 354, 32767, 355, + 32767, 32767, 32767, 358, 359, 360, 361, 32767, 362, 32767, 363, 364, 365, 32767, 32767, 366, + 32767, 367, 368, 369, 32767, 657, 371, 32766, 32767, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 32767, 386, 32767, 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, + 396, 32767, 32767, 32767, 399, 32767, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, 32767, 32767, 422, 32767, + 32767, 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, + 446, 32767, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, 32767, + 32767, 32767, 463, 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, 470, 471, 472, 32767, + 32767, 473, 474, 475, 32767, 32767, 476, 477, 32767, 479, 480, 32767, 482, 483, 484, 485, + 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, + 514, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 32767, 532, 533, 32767, 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, 546, + 32767, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 32767, 556, 557, 558, 559, 560, + 32767, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32767, 32767, 32767, 32767, 585, 32767, 587, + 588, 589, 590, 591, 592, 32767, 593, 594, 595, 32767, 32767, 596, 597, 598, 599, 600, 32767, + 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, + 614, 32767, 32767, 615, 616, 617, 618, 619, 620, 621, 32767, 622, 32767, 624, 625, 626, 627, + 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 32766, 244, 245, 246, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, 249, + 32767, 250, 251, 252, 253, 254, 255, 32767, 256, 257, 258, 259, 260, 261, 262, 32767, 263, 264, + 265, 266, 267, 268, 269, 32767, 32767, 270, 271, 272, 273, 274, 32767, 275, 276, 277, 278, 279, + 32767, 280, 32767, 32767, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 32767, 292, + 293, 294, 295, 296, 297, 32767, 298, 299, 300, 32767, 32767, 301, 964, 302, 32767, 32767, 965, + 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32767, 312, 32767, 313, 314, + 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 326, 327, 32767, + 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 32767, 32767, 347, 32767, 32767, 348, 349, 350, 351, 352, + 32767, 353, 32767, 354, 32767, 355, 356, 32767, 357, 358, 359, 360, 361, 32767, 362, 32767, + 363, 364, 365, 32767, 32767, 366, 32767, 367, 368, 369, 32767, 966, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 387, 388, 389, 390, 391, 392, + 393, 32767, 394, 32767, 395, 396, 32767, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, 421, + 32767, 422, 423, 32767, 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, + 32767, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 32767, + 460, 461, 462, 32767, 32767, 463, 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, 470, 471, + 472, 32767, 32767, 473, 474, 475, 32767, 32767, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, + 513, 514, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 32767, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, + 546, 32767, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 967, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32767, 32767, 32767, 32767, 585, 586, 587, + 588, 589, 590, 591, 592, 32767, 593, 594, 595, 32767, 32767, 596, 597, 598, 599, 600, 32767, + 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, + 614, 32767, 32767, 615, 616, 617, 618, 619, 620, 621, 32767, 622, 623, 624, 625, 626, 627, + 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 1017, 244, 245, 246, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, 249, + 32767, 250, 251, 252, 253, 32767, 255, 32767, 256, 257, 258, 259, 32767, 261, 262, 32767, 263, + 264, 265, 266, 267, 268, 269, 32767, 32767, 270, 271, 272, 273, 274, 32767, 275, 276, 277, 278, + 279, 32767, 32767, 32767, 32767, 281, 282, 283, 284, 285, 286, 32767, 288, 289, 290, 291, + 32767, 292, 293, 294, 295, 296, 297, 32767, 32767, 299, 300, 32767, 32767, 301, 32767, 32767, + 32767, 32767, 32767, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32767, + 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, + 325, 326, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, + 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 32767, 32767, 347, 32767, 32767, 348, + 349, 350, 351, 352, 32767, 353, 32767, 354, 32767, 355, 32767, 32767, 32767, 358, 359, 360, + 361, 32767, 362, 32767, 363, 364, 365, 32767, 32767, 366, 32767, 367, 368, 369, 32767, 657, + 371, 32766, 32767, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, + 32767, 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, 32767, 32767, 32767, 399, + 32767, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 32767, 32767, 32767, 419, 420, 32767, 32767, 422, 32767, 32767, 424, 425, 426, 32767, + 32767, 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, 32767, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, 32767, 32767, 32767, 463, 464, 32767, + 465, 32767, 466, 467, 468, 469, 32767, 470, 471, 472, 32767, 912, 473, 474, 475, 32767, 32767, + 476, 477, 32767, 479, 480, 32767, 482, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, + 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, + 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, 32767, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 32767, 535, 536, + 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, 546, 32767, 547, 548, 549, 550, 32767, 551, + 552, 553, 554, 555, 32767, 556, 557, 558, 559, 560, 32767, 562, 563, 564, 565, 32767, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 32767, 583, 584, + 32767, 32767, 32767, 32767, 32767, 585, 32767, 587, 588, 589, 590, 591, 592, 32767, 593, 594, + 595, 32767, 32767, 596, 597, 598, 599, 600, 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, + 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, 32767, 32767, 615, 616, 617, 618, 619, + 620, 621, 32767, 622, 32767, 624, 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, 630, + 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, 242, 243, 1024, 244, 245, 246, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 254, 255, 32767, + 256, 257, 258, 259, 260, 261, 262, 32767, 263, 264, 265, 266, 267, 268, 269, 32767, 32767, 270, + 271, 272, 273, 274, 32767, 275, 276, 277, 278, 279, 32767, 280, 32767, 32767, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, 298, 299, + 300, 32767, 32767, 301, 964, 302, 32767, 32767, 965, 303, 304, 32767, 32767, 32767, 305, 306, + 307, 308, 309, 310, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, + 322, 323, 32767, 32767, 324, 325, 326, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, + 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 32767, 32767, 347, 32767, 32767, 348, 349, 350, 351, 352, 32767, 353, 32767, 354, 32767, 355, + 356, 32767, 357, 358, 359, 360, 361, 32767, 362, 32767, 363, 364, 365, 32767, 32767, 366, + 32767, 367, 368, 369, 32767, 966, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 32767, 386, 387, 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, + 32767, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, 421, 32767, 422, 423, 32767, 424, 425, + 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, 32766, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, 462, 32767, 32767, 463, + 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 473, 474, 475, + 32767, 32767, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 32767, 486, 32767, 487, 488, + 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, 32767, 503, 504, + 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, 32767, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, 546, 32767, 547, 548, 549, 550, + 32767, 551, 552, 553, 554, 555, 967, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 32767, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 32767, + 583, 584, 32767, 32767, 32767, 32767, 32767, 585, 586, 587, 588, 589, 590, 591, 592, 32767, + 593, 594, 595, 32767, 32767, 596, 597, 598, 599, 600, 32767, 601, 602, 32767, 603, 604, 605, + 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, 32767, 32767, 615, 616, 617, + 618, 619, 620, 621, 32767, 622, 623, 624, 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, + 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, -2464, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, -2464, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, -2464, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, -2464, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, -2464, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, -2465, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, -2465, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, -2465, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, -2465, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, -2465, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 761, 1514, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 16, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 3791, + 32766, 32766, 32767, 32766, 32766, 3792, 32767, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 1515, 32767, 32767, 21, 32766, 32766, 4211, + 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32767, 1440, 2662, 32766, 2639, 32766, 32767, 32767, 32766, 32766, 32767, 32766, 1946, 32766, + 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 2026, 32766, 32766, -1750, 32766, 1672, + 32766, 4582, 32766, -1750, 32767, 32766, 32767, 32766, 1516, 32766, 32767, 32766, 32766, 32767, + 32767, 1978, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 1602, 32766, 32766, + 32766, 3223, 32766, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 4212, 32766, 32767, 32766, 32766, 32766, 3793, 32766, 32766, 32767, + 32766, 32767, 32766, 782, 2640, 32766, 32766, 4425, 32766, 32766, 32766, 32766, 1673, 32767, + 32766, 32767, 29, 32766, 32766, 32766, 32766, 1517, 32766, 32766, 32767, 32766, 32767, 4213, + 32766, 32766, 836, 32766, 32766, 32767, 32767, 32766, 32767, -1750, 32767, 32766, 32766, 32766, + 32767, 4214, 32766, 32766, 32767, 32767, 32767, 32767, 32766, 4682, 32766, 32767, 32767, 32767, + 32767, 1674, 32766, 32766, 4299, 32766, 32766, 32767, 1675, 32767, 32766, 4215, 32766, 2641, + 1676, 934, 32766, 32766, 32766, 32766, 32766, 3071, 32766, 32767, 32766, 32767, 32766, 32766, + 32767, 32767, 3211, 32767, 3884, 32767, 32766, 32766, 1975, 32766, 32766, 32766, 1603, 1518, + 32766, -1750, 32767, 32766, 32767, 32766, 32766, 4216, 32767, 32766, 32767, 32766, 32767, + 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32766, 32767, + 32767, 32767, 32767, 4426, 32766, 32766, 39, 32766, 32767, 32766, 1868, 32766, 32767, 3120, + 32767, 1519, 32767, 32767, 32766, 32767, 1520, 32767, 32766, 32766, 42, 32767, 32766, 32766, + 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 1444, 32766, 47, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 1604, + 32766, 32766, 1521, 32767, 32766, 32766, 32766, 32767, 3121, 32766, 32766, 32766, 32767, 32766, + 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 3794, 32766, 32766, + 32766, 51, 32767, 32767, 32766, 32766, 3885, 32766, 32766, 32767, 3122, 32767, 32766, 1522, + 716, 32766, 1523, 1938, 32766, 32767, 2663, 32766, 32766, 32766, 32766, 32766, 1979, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 3795, 32767, 55, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32767, 32766, 56, 32766, 32766, 32767, 57, 1677, 32767, 32766, 32767, + 1524, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 663, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 1678, 32766, + 32766, 32767, 32767, 1679, 32766, 32766, 32766, 32766, 5471, 32767, 32767, 32767, 32767, 32766, + 934, 32766, 32766, 32766, 32766, 4427, 32767, 32766, 32767, 32766, 32766, 32767, 32766, 32766, + 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 1680, 1632, + 32767, 32767, 32766, 1633, 32767, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, + 32767, 32766, 235, 236, 237, 238, 239, 240, 241, 242, 243, 4428, 244, 245, 246, 4, 5, 32766, + 32767, 32766, 32767, 32767, 247, 248, 249, 32766, 250, 251, 252, 253, 254, 255, 32766, 256, + 257, 258, 259, 260, 261, 262, 32767, 263, 264, 265, 266, 267, 268, 269, 32766, 32767, 270, 271, + 272, 273, 274, 32767, 275, 276, 277, 278, 279, 32767, 280, 32767, 32766, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 3886, 292, 293, 294, 295, 296, 297, 32767, 298, 299, 300, + 32766, 32767, 301, 32767, 302, 32767, 32766, 4683, 303, 304, 32767, 32767, 32767, 305, 306, + 307, 308, 309, 310, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, + 322, 323, 32766, 32767, 324, 325, 326, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, + 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 32767, 32766, 347, 32766, 32767, 348, 349, 350, 351, 352, 32767, 353, 32767, 354, 32766, 355, + 356, 32767, 357, 358, 359, 360, 361, 3887, 362, 32767, 363, 364, 365, 32767, 32767, 366, 32767, + 367, 368, 369, 32767, 966, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 32767, 386, 387, 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, 32767, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 32767, 32767, 32767, 419, 420, 421, 32767, 422, 423, 32767, 424, 425, 426, + 32767, 32767, 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, 462, 32767, 32767, 463, 464, + 32767, 465, 32767, 466, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 473, 474, 475, + 32767, 32767, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 32767, 486, 32767, 487, 488, + 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, 32767, 503, 504, + 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, 32767, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, 546, 32767, 547, 548, 549, 550, + 32767, 551, 552, 553, 554, 555, 32767, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 32767, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 32767, + 583, 584, 32767, 32767, 32767, 32767, 32767, 585, 586, 587, 588, 589, 590, 591, 592, 32767, + 593, 594, 595, 32767, 32767, 596, 597, 598, 599, 600, 32767, 601, 602, 32767, 603, 604, 605, + 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, 32767, 32767, 615, 616, 617, + 618, 619, 620, 621, 32767, 622, 623, 624, 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, + 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32766, + 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32767, + 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, + 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32767, 32767, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, + 32767, 255, 32767, 256, 257, 258, 259, 32767, 261, 262, 32767, 263, 264, 265, 266, 267, 268, + 269, 32767, 32767, 270, 271, 272, 273, 274, 32767, 275, 276, 277, 278, 279, 32767, 32767, + 32767, 32767, 281, 282, 283, 284, 285, 286, 32767, 288, 289, 290, 291, 32767, 292, 293, 294, + 295, 296, 297, 32767, 32767, 299, 300, 32767, 32767, 301, 32767, 32767, 32767, 32767, 32767, + 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 2877, 312, 32767, 313, 314, + 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 326, 327, 32766, + 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 32767, 32767, 347, 32767, 32767, 348, 349, 350, 351, 352, + 32767, 353, 32767, 354, 32767, 355, 32767, 4086, 32767, 358, 359, 360, 361, 32767, 362, 32767, + 363, 364, 365, 32766, 32767, 366, 32767, 367, 368, 369, 32767, 657, 371, 372, 32767, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32766, 386, 32767, 388, 389, 390, 391, 392, + 393, 32767, 394, 32767, 395, 396, 32767, 32767, 32767, 399, 32766, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, + 32767, 32767, 422, 32766, 32767, 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, 32767, 32767, 1946, 32767, 442, + 443, 32767, 444, 445, 446, 2877, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 32766, 460, 461, 32767, 32767, 32767, 463, 464, 32766, 465, 32767, 466, 467, 468, 469, 32767, + 470, 471, 472, 32767, 32767, 473, 474, 475, 32767, 32767, 476, 477, 32767, 479, 480, 32767, + 482, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 2878, 2875, 510, 511, + 512, 32767, 513, 514, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 32767, 532, 533, 32767, 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, + 544, 545, 546, 32767, 547, 548, 549, 550, 3528, 551, 552, 553, 554, 555, 32766, 556, 557, 558, + 559, 560, 32766, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 32766, 583, 584, 32767, 32766, 32767, 32767, 32767, 585, + 32766, 587, 588, 589, 590, 591, 592, 32766, 593, 594, 595, 1227, 32766, 596, 597, 598, 599, + 600, 3252, 601, 602, 4088, 603, 604, 605, 32766, 606, 607, 608, 609, 32767, 32766, 610, 611, + 612, 613, 614, 32766, 32766, 615, 616, 617, 618, 619, 620, 621, 32767, 622, 720, 624, 625, 626, + 627, 1052, 32766, 628, 32766, 32766, 629, 630, 32766, 32767, 631, 632, 633, 32766, 634, 635, + 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 32766, 32767, 32767, 32766, + 4211, 32767, 2878, 2875, 32766, 32766, 32766, 1053, 32767, 32766, 32767, 32766, 32766, 32767, + 32766, 32767, 32766, 32767, 2879, 3253, 723, 3254, 1054, 4386, 32766, 32766, 3529, 32766, 932, + 1514, 32766, 32766, 32767, 32766, 1055, 32767, 32767, 32767, 724, 32766, 1227, 32767, 32767, + -1751, 32766, 32766, 32767, 32767, 4110, -1751, 32766, 2880, 3610, 32766, 32766, 32766, 32767, + 5113, 1056, 1712, 32767, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 29, 32767, + 32767, 32766, 1942, 32767, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 1057, 32767, + 32766, 32766, 4212, 1515, 32766, 32767, 1629, 2577, 32766, 32766, 5496, 32766, 32767, 32766, + 727, 32766, 933, 32766, 3255, 32766, -1779, 32767, 32766, 728, 32767, 32767, 3256, 1957, 32767, + 32767, 3949, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 729, 4213, 32766, 32766, 32766, + 32766, 32767, 1058, 32767, 32766, 32767, 32766, 32767, 32766, 32767, -1751, 32766, 4214, 32766, + 32767, 32767, 1516, 32766, 1960, 32767, 32766, 32766, 32767, 32766, 1481, 32767, 32767, 32766, + 32766, 32766, 5114, 32767, 1059, 32766, 32767, 3611, 4215, 32766, 32767, 1970, 3257, 32767, + 32766, 32766, 32766, 32767, 32766, 47, 32766, 32766, 32767, 32766, 4230, 32767, 32767, 32766, + 32766, 32766, 5769, 32767, 32766, 32767, -710, 32766, 32767, 32767, 5533, 32767, 32767, 2879, + -672, 1060, -1751, 32766, 4216, 32767, 32766, 32766, 32767, 32766, 32767, 32766, 934, 32767, + 1517, 32767, 32766, 32766, 32767, 51, 47, 5534, 32766, 32766, 32766, 32767, 32767, 733, 5535, + 32766, 32766, 4831, 2880, 32767, 32766, 32766, 32766, 4898, 32766, 716, 32767, 32766, 3258, + 5536, 32767, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, -2448, 32766, + 32766, 2881, -174, 32767, 5115, 32767, 51, 32766, 55, 32766, 32766, 32767, 32767, 32766, 32766, + 32767, 32767, 32767, 32767, 32766, 32766, 32766, 56, 32766, 1061, 32767, 57, 32766, 32766, + 32767, 32767, 32767, 32766, 32766, 2761, -174, 32766, 32767, 3161, 32767, 32767, 32767, 32766, + 32767, -1779, 32766, 32767, 32766, 32767, 32767, 1946, 55, 736, 32766, 4217, 32767, 3910, + 32766, 32766, 32766, 32766, 32766, 214, 1062, 32766, 56, 738, 32766, 32766, 57, 32767, 32767, + 32766, 32766, 32767, 32767, 32767, 32766, 4899, 32766, 32767, 32767, 32766, 32767, 32767, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 1063, + 32766, 32766, 1064, 32766, 5048, 32767, 32766, 741, 32767, 32766, 742, 32766, 32766, 3614, + 32766, 32767, 32766, 32766, 743, 935, 32766, 744, 32767, 5783, 32766, 32766, 32766, 32767, + 32766, 32767, 3223, 1632, 32767, 32766, 32766, 1633, 32766, 32766, 32767, 32766, 32767, 745, + 32766, 32767, 5537, 32767, 32766, 32767, 32767, 1065, 5784, 32767, 32766, 32767, 32766, 32766, + 32766, 32767, 1522, 747, 32766, 1523, 1066, 32766, 32767, 32767, 32766, 749, 32767, 4900, + 32767, 32766, 32767, 4901, 32767, 1067, 32767, 751, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 4388, 32767, 32767, 5116, 32767, 32767, 32766, 32766, 32766, + 754, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, -2367, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, + 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 5538, 32767, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32767, 32766, + 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 32767, 255, + 32767, 256, 257, 258, 259, 32767, 261, 262, 32767, 263, 264, 265, 266, 267, 268, 269, 32767, + 32767, 270, 271, 272, 273, 274, 32767, 275, 1100, 277, 278, 279, 32767, 32767, 32767, 32767, + 281, 282, 283, 284, 285, 286, 32767, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, + 32767, 32767, 299, 300, 32767, 32767, 301, 32767, 32767, 32767, 32767, 32767, 303, 304, 980, + 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, + 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 326, 327, 32767, 32767, 328, + 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 981, 32767, 32766, 32767, 32767, 348, 349, 350, 351, 352, 32767, 353, + 32767, 354, 32767, 355, 32767, 32767, 32767, 358, 359, 360, 361, 32767, 362, 983, 363, 364, + 365, 32767, 984, 366, 32767, 367, 368, 369, 32767, 657, 371, 372, 32767, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 32767, 388, 389, 390, 391, 392, 393, 32767, + 394, 32767, 395, 396, 32767, 32767, 32767, 399, 32767, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, 32767, 985, + 422, 32767, 32767, 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32767, 986, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 987, 444, + 445, 446, 32767, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, + 32767, 988, 32767, 463, 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, 470, 471, 472, + 32767, 32767, 473, 474, 475, 32767, 32767, 476, 477, 32767, 479, 480, 32767, 482, 483, 484, + 485, 989, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 990, 991, 510, 511, 512, 32767, 513, + 514, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 32767, 532, 533, 32767, 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, 546, + 32767, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 32767, 556, 557, 558, 559, 560, + 32767, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32767, 992, 993, 32767, 585, 32767, 587, 588, + 589, 590, 591, 592, 32767, 593, 594, 595, 32767, 32767, 596, 597, 598, 599, 600, 32767, 601, + 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, + 32767, 32767, 615, 616, 617, 618, 619, 620, 621, 32767, 622, 32767, 624, 625, 626, 627, 32767, + 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, 637, + 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, 249, + 32767, 250, 251, 252, 253, -137, 255, 32767, 256, 257, 258, 259, 32767, 261, 262, 32767, 263, + 264, 265, 266, 267, 268, 269, 32767, 32767, 270, 271, 272, 273, 274, 32767, 275, 276, 277, 278, + 279, 32767, 32767, 32767, 32767, 281, 282, 283, 284, 285, 286, 32767, 288, 289, 290, 291, + 32767, 292, 293, 294, 295, 296, 297, 32767, 32767, 299, 300, 32767, 32767, 301, 32767, 32767, + 32767, 32767, 32767, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32767, + 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, + 325, 326, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, + 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 32767, 32767, 347, 32767, 32767, 348, + 349, 350, 351, 352, 32767, 353, 32767, 354, 32767, 355, 32767, 32767, 32767, 358, 359, 360, + 361, 32767, 362, 32767, 363, 364, 365, 32767, 32767, 366, 32767, 367, 368, 369, 32767, 657, + 371, 32766, 32767, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, + 32767, 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, 32767, 32767, 32767, 399, + 32767, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 32767, 32767, 32767, 419, 420, 32767, 32767, 422, 32767, 32767, 424, 425, 426, 32767, + 32767, 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, 32767, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, 32767, 32767, 32767, 463, 464, 32767, + 465, 32767, 466, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 473, 474, 475, 32767, + 32767, 476, 477, 32767, 479, 480, 32767, 482, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, + 490, 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, 32767, 503, 504, 505, + 506, 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, 32767, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 32767, 535, + 536, 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, 546, 32767, 547, 548, 549, 550, 32767, + 551, 552, 553, 554, 555, 32767, 556, 557, 558, 559, 560, 32767, 562, 563, 564, 565, 32767, 566, + 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 32767, 583, + 584, 32767, 32767, 32767, 32767, 32767, 585, 32767, 587, 588, 589, 590, 591, 592, 32767, 593, + 594, 595, 32767, 32767, 596, 597, 598, 599, 600, 32767, 601, 602, 32767, 603, 604, 605, 32767, + 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, 32767, 32767, 615, 616, 617, 618, + 619, 620, 621, 32767, 622, 32767, 624, 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, + 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 32767, 255, + 32767, 256, 257, 258, 259, 32767, 261, 262, 32767, 263, 264, 265, 266, 267, 268, 269, 32767, + 32767, 270, 271, 272, 273, 274, 32767, 275, 276, 277, 278, 279, 32767, 32767, 32767, 32767, + 281, 282, 283, 284, 285, 286, 32767, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, + 32767, 32767, 299, 300, 32767, 32767, 301, 32767, 32767, 32767, 32767, 32767, 303, 304, 32767, + 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, + 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 326, 327, 32767, 32767, 328, + 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 32767, 32767, 347, 32767, 32767, 348, 349, 350, 351, 352, 32767, 353, + 32767, 354, 32767, 355, 32767, 32767, 32767, 358, 359, 360, 361, 32767, 362, 32767, 363, 364, + 365, 32767, 32767, 366, 32767, 367, 368, 369, 32767, 657, 371, 1112, 32767, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 32767, 388, 389, 390, 391, 392, 393, 32767, + 394, 32767, 395, 396, 32767, 32767, 32767, 399, 32767, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, 32767, 32767, + 422, 32767, 32767, 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32766, 32767, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, + 32767, 444, 445, 446, 32767, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 32767, + 460, 461, 32767, 32767, 32767, 463, 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, 470, + 471, 472, 32766, 32767, 473, 474, 475, 32767, 32767, 476, 477, 32767, 479, 480, 32767, 482, + 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, + 32767, 513, 514, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 32767, 532, 533, 32767, 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, 544, + 545, 546, 32767, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 32767, 556, 557, 558, 559, + 560, 32767, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32767, 32767, 32767, 32767, 585, 32767, + 587, 588, 589, 590, 591, 592, 32767, 593, 594, 595, 32767, 32767, 596, 597, 598, 599, 600, + 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, + 613, 614, 32767, 32767, 615, 616, 617, 618, 619, 620, 621, 32767, 622, 32767, 624, 625, 626, + 627, 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, + 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, + 249, 32767, 250, 251, 252, 253, 254, 255, 32767, 256, 257, 258, 259, 260, 261, 262, 32767, 263, + 264, 265, 266, 267, 268, 269, 32767, 32767, 270, 271, 272, 273, 274, 32767, 275, 276, 277, 278, + 279, 32767, 280, 32767, 32767, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 32767, + 292, 293, 294, 295, 296, 297, 32767, 298, 299, 300, 32767, 32767, 301, 964, 302, 32767, 32767, + 965, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32767, 312, 32767, 313, + 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 326, 327, + 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 32767, 32767, 347, 32767, 32767, 348, 349, 350, + 351, 352, 32767, 353, 32767, 354, 32767, 355, 356, 32767, 357, 358, 359, 360, 361, 32767, 362, + 32767, 363, 364, 365, 32767, 32767, 366, 32767, 367, 368, 369, 32767, 966, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 387, 388, 389, 390, 391, + 392, 393, 32767, 394, 32767, 395, 396, 32767, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, 421, + 32767, 422, 423, 32767, 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, 32766, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, + 32767, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 32767, + 460, 461, 462, 32767, 32767, 463, 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, 470, 471, + 472, 32767, 32767, 473, 474, 475, 32767, 32767, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, + 513, 514, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 32767, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, + 546, 32767, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 967, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32767, 32767, 32767, 32767, 585, 586, 587, + 588, 589, 590, 591, 592, 32767, 593, 594, 595, 32767, 32767, 596, 597, 598, 599, 600, 32767, + 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, + 614, 32767, 32767, 615, 616, 617, 618, 619, 620, 621, 32767, 622, 623, 624, 625, 626, 627, + 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 1137, 244, 245, 246, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, 249, + 32767, 250, 251, 252, 253, 32767, 255, 32767, 256, 257, 258, 259, 32767, 261, 262, 32767, 263, + 264, 265, 266, 267, 268, 269, 32767, 32767, 270, 271, 272, 273, 274, 32767, 275, 276, 277, 278, + 279, 32767, 32767, 32767, 32767, 281, 282, 283, 284, 285, 286, 32767, 288, 289, 290, 291, + 32767, 292, 293, 294, 295, 296, 297, 32767, 32767, 299, 300, 32767, 32767, 301, 32767, 32767, + 32767, 32767, 32767, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32767, + 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, + 325, 326, 327, 32766, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, + 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 32767, 32767, 347, 32767, 32767, 348, + 349, 350, 351, 352, 32767, 353, 32767, 354, 32767, 355, 32767, 32767, 32767, 358, 359, 360, + 361, 32767, 362, 32767, 363, 364, 365, 32767, 32767, 366, 32767, 367, 368, 369, 32767, 657, + 371, 372, 32767, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 32767, + 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, 32767, 32767, 32767, 399, 32767, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 32767, 32767, 32767, 419, 420, 32767, 32767, 422, 32767, 32767, 424, 425, 426, 32767, 32767, + 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, + 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, 32767, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, 32767, 32767, 32767, 463, 464, 32767, 465, + 32767, 466, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 473, 474, 475, 32767, 32767, + 476, 477, 32767, 479, 480, 32767, 482, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, + 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, + 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, 32767, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 32767, 535, 536, + 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, 546, 32767, 547, 548, 549, 550, 32767, 551, + 552, 553, 554, 555, 32767, 556, 557, 558, 559, 560, 32767, 562, 563, 564, 565, 32767, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 32767, 583, 584, + 32767, 32766, 32767, 32767, 32767, 585, 32767, 587, 588, 589, 590, 591, 592, 32767, 593, 594, + 595, 32767, 32767, 596, 597, 598, 599, 600, 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, + 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, 32767, 32767, 615, 616, 617, 618, 619, + 620, 621, 32767, 622, 32767, 624, 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, 630, + 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 254, 255, 32767, + 256, 257, 258, 259, 260, 261, 262, 32767, 263, 264, 265, 266, 267, 268, 269, 32767, 32767, 270, + 271, 272, 273, 274, 32767, 275, 276, 277, 278, 279, 32767, 280, 32767, 32767, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, 298, 299, + 300, 32767, 32767, 301, 32767, 302, 32767, 32767, 32767, 303, 304, 32767, 32767, 32767, 305, + 306, 307, 308, 309, 310, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, + 321, 322, 323, 32767, 32767, 324, 325, 326, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, + 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 32767, 32767, 347, 32767, 32767, 348, 349, 350, 351, 352, 32767, 353, 32767, 354, 32767, 355, + 356, 32767, 357, 358, 359, 360, 361, 32767, 362, 32767, 363, 364, 365, 32767, 32767, 366, + 32767, 367, 368, 369, 32767, 32766, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 32767, 386, 387, 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, + 32767, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, 421, 32767, 422, 423, 32767, 424, 425, + 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, 462, 32767, 32767, 463, + 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 473, 474, 475, + 32767, 32767, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 32767, 486, 32767, 487, 488, + 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, 32767, 503, 504, + 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, 32767, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, 546, 716, 547, 548, 549, 550, + 32767, 551, 552, 553, 554, 555, 32767, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 32767, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 32767, + 583, 584, 32767, 32767, 32767, 32767, 32767, 585, 586, 587, 588, 589, 590, 591, 592, 32767, + 593, 594, 595, 32767, 32767, 596, 597, 598, 599, 600, 32767, 601, 602, 32767, 603, 604, 605, + 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, 32767, 32767, 615, 616, 617, + 618, 619, 620, 621, 32767, 622, 623, 624, 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, + 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 254, + 255, 32767, 256, 257, 258, 259, 260, 261, 262, 32767, 263, 264, 265, 266, 267, 268, 269, 32767, + 32767, 270, 271, 272, 273, 274, 32767, 275, 276, 277, 278, 279, 32767, 280, 32767, 32767, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, + 298, 299, 300, 32767, 32767, 301, 32767, 302, 32767, 32767, 32767, 303, 304, 32767, 32767, + 32767, 305, 306, 307, 308, 309, 310, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, 318, 319, + 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 326, 327, 32767, 32767, 328, 32767, 329, + 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 32767, 32767, 347, 32767, 32767, 348, 349, 350, 351, 352, 32767, 353, 32767, 354, + 32767, 355, 356, 32767, 357, 358, 359, 360, 361, 32767, 362, 32767, 363, 364, 365, 32767, + 32767, 366, 32767, 367, 368, 369, 32767, 370, 371, 32766, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 32767, 386, 387, 388, 389, 390, 391, 392, 393, 32767, 394, 32767, + 395, 396, 32767, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, 421, 32767, 422, 423, 32767, + 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, 462, 32767, + 32767, 463, 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, + 473, 474, 475, 32767, 32767, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 32767, 486, + 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, + 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, 546, 32767, 547, + 548, 549, 550, 32767, 551, 552, 553, 554, 555, 32767, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, + 581, 582, 32767, 583, 584, 32767, 32767, 32767, 32767, 32767, 585, 586, 587, 588, 589, 590, + 591, 592, 32767, 593, 594, 595, 32767, 32767, 596, 597, 598, 599, 600, 32767, 601, 602, 32767, + 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, 32767, 32767, + 615, 616, 617, 618, 619, 620, 621, 32767, 622, 623, 624, 625, 626, 627, 32767, 32767, 628, + 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, 640, + 641, 642, 643, 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, + 244, 245, 246, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, 249, 32767, 250, 251, + 252, 253, 254, 255, 32767, 256, 257, 32767, 825, 260, 826, 827, 32767, 263, 264, 265, 266, 267, + 268, 269, 32767, 32767, 270, 271, 828, 273, 829, 32767, 275, 276, 277, 278, 32767, 32767, 280, + 32767, 32767, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 32767, 292, 293, 294, 295, + 296, 297, 32767, 298, 299, 300, 32767, 32767, 301, 32767, 302, 32767, 32767, 32767, 303, 304, + 32767, 32767, 32767, 305, 306, 307, 308, 830, 831, 311, 32767, 312, 32767, 313, 314, 315, 316, + 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 832, 327, 32767, 32767, 328, + 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 32767, + 342, 343, 344, 345, 32767, 32766, 32767, 347, 32767, 32767, 348, 349, 350, 833, 352, 32767, + 353, 32767, 354, 32767, 355, 356, 32766, 357, 358, 359, 360, 361, 32767, 362, 32767, 32767, + 32766, 365, 32766, 32767, 366, 32767, 367, 368, 369, 32767, 834, 371, 32766, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 387, 32766, 389, 390, 391, 392, + 835, 32767, 836, 32767, 837, 396, 32767, 397, 398, 399, 400, 838, 4545, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 412, 413, 414, 415, 416, 417, 418, 32767, 5885, + 32767, 419, 32767, 421, 32767, 422, 423, 32767, 424, 425, 426, 32767, 32767, 427, 428, 429, + 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 32767, 438, 439, 440, 441, 32766, 32767, + 32767, 4548, 32767, 442, 443, 32767, 444, 445, 839, 447, 840, 449, 450, 451, 452, 453, 454, + 455, 456, 32766, 32767, 459, 32767, 460, 461, 462, 32767, 32767, 463, 32766, 32767, 465, 32767, + 841, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 473, 474, 475, 32766, 32767, 476, 477, + 478, 32767, 480, 481, 32767, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, 491, 492, + 493, 4550, 494, 495, 496, 32767, 498, 32767, 500, 501, 502, 32767, 503, 504, 505, 506, 507, + 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, 842, 515, 516, 517, 32767, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 534, 535, 536, 537, + 538, 539, 32767, 541, 32767, 542, 543, 544, 545, 546, 32767, 547, 548, 549, 550, 32767, 551, + 552, 553, 554, 555, 5155, 556, 843, 558, 559, 560, 561, 562, 563, 844, 565, 32767, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 32767, 582, 32767, 583, 584, + 32766, 32767, 32767, 32767, 32766, 585, 586, 587, 588, 589, 590, 591, 592, 32767, 593, 845, + 846, 5266, 32767, 596, 597, 32766, 599, 32767, 32767, 601, 602, 32767, 603, 604, 605, 4553, + 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, 32766, 32767, 615, 616, 617, 618, + 32767, 620, 847, 32767, 622, 623, 624, 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, + 630, 32766, 32767, 631, 632, 633, 32767, 32767, 32767, 32767, 32766, 32766, 4554, 32767, 32767, + 32767, 32767, 32766, 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, 242, 243, 4555, + 244, 245, 246, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 247, 248, 249, 32767, 250, 251, + 252, 253, 254, 255, 32767, 256, 257, 258, 259, 260, 261, 262, 32767, 263, 264, 265, 266, 267, + 268, 269, 32767, 32767, 270, 271, 272, 273, 274, 32767, 275, 276, 277, 278, 279, 32767, 280, + 32767, 32767, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 32767, 292, 293, 294, 295, + 296, 297, 32767, 298, 299, 300, 32767, 32767, 301, 964, 302, 32767, 32767, 965, 303, 304, + 32767, 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32767, 312, 32767, 313, 314, 315, 316, + 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 4556, 324, 325, 326, 327, 32767, 32767, 328, + 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 32767, 32767, 347, 32767, 32767, 348, 349, 350, 351, 352, 32767, 353, + 32767, 354, 32767, 355, 356, 32767, 357, 358, 359, 360, 361, 32767, 362, 32767, 363, 364, 365, + 32767, 32767, 366, 32767, 367, 368, 369, 32767, 966, 371, 32766, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 32767, 386, 387, 388, 389, 390, 391, 392, 393, 32767, 394, + 32767, 395, 396, 32767, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, 421, 32767, 422, 423, + 32767, 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, 462, + 32767, 32767, 463, 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, 470, 471, 472, 32767, + 32767, 473, 474, 475, 32767, 32767, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 32767, + 486, 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, + 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 32767, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, 546, 32767, + 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 967, 556, 557, 558, 559, 560, 561, 562, + 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 32767, 583, 584, 32767, 32767, 32767, 32767, 32767, 585, 586, 587, 588, 589, + 590, 591, 592, 32767, 593, 594, 595, 32767, 32767, 596, 597, 598, 599, 600, 32767, 601, 602, + 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, 32767, + 32767, 615, 616, 617, 618, 619, 620, 621, 32767, 622, 623, 624, 625, 626, 627, 32767, 32767, + 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 1164, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, 249, 32767, + 250, 251, 252, 253, 32767, 255, 32767, 256, 257, 258, 259, 32767, 261, 262, 32767, 263, 264, + 265, 266, 267, 268, 269, 32767, 32767, 270, 271, 272, 273, 274, 32767, 275, 1166, 277, 278, + 279, 32767, 32767, 32767, 32767, 281, 282, 283, 284, 285, 286, 32767, 288, 289, 290, 291, + 32767, 292, 293, 294, 295, 296, 297, 32767, 32767, 299, 300, 32767, 32767, 301, 32767, 32767, + 32767, 32767, 32767, 303, 304, 980, 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32767, + 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, + 325, 326, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, + 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 981, 32767, 1167, 32767, 32767, 348, + 349, 350, 351, 352, 32767, 353, 32767, 354, 32767, 355, 32767, 32767, 32767, 358, 359, 360, + 361, 32767, 362, 983, 363, 364, 365, 32767, 984, 366, 32767, 367, 368, 369, 32767, 657, 371, + 32766, 32767, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 32767, + 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, 32767, 32767, 32767, 399, 32767, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 32767, 32767, 32767, 419, 420, 32767, 985, 422, 32767, 32767, 424, 425, 426, 32767, 32767, 427, + 428, 429, 430, 32767, 986, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, 32767, + 32767, 32767, 32767, 442, 443, 987, 444, 445, 446, 32767, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 32767, 460, 461, 32767, 988, 32767, 463, 464, 32767, 465, 32767, 466, + 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 473, 474, 475, 32767, 32767, 476, 477, + 32767, 479, 480, 32767, 482, 483, 484, 485, 989, 486, 32767, 487, 488, 489, 490, 491, 492, 493, + 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, + 990, 991, 510, 511, 512, 32767, 513, 514, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 32767, 535, 536, 537, 538, 539, 540, + 541, 32767, 542, 543, 544, 545, 546, 32767, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, + 32767, 556, 557, 558, 559, 560, 32767, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32767, 992, 993, + 32767, 585, 32767, 587, 588, 589, 590, 591, 592, 32767, 593, 594, 595, 32767, 32767, 596, 597, + 598, 599, 600, 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, + 610, 611, 612, 613, 614, 32767, 32767, 615, 616, 617, 618, 619, 620, 621, 32767, 622, 32767, + 624, 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, + 32767, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 254, 255, 32767, 256, 257, 258, 259, + 260, 261, 262, 32767, 263, 264, 265, 266, 267, 268, 269, 32767, 32767, 270, 271, 272, 273, 274, + 32767, 275, 276, 277, 278, 279, 32767, 280, 32767, 32767, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, 298, 299, 300, 32767, 32767, + 301, 964, 302, 32767, 32767, 965, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 309, 310, + 311, 32767, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, + 32767, 324, 325, 326, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, + 334, 335, 336, 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 32767, 32767, 347, + 32767, 32767, 348, 349, 350, 351, 352, 32767, 353, 32767, 354, 32767, 355, 356, 32767, 357, + 358, 359, 360, 361, 32767, 362, 32767, 363, 364, 365, 32767, 32767, 366, 32767, 367, 368, 369, + 32767, 966, 371, 1186, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, + 386, 387, 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, 32767, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 32767, 32767, 32767, 419, 420, 421, 32767, 422, 423, 32767, 424, 425, 426, 32767, 32767, 427, + 428, 429, 430, 32767, 32767, 32766, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, + 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 455, 456, 457, 458, 459, 32767, 460, 461, 462, 32767, 32767, 463, 464, 32767, 465, 32767, + 466, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 473, 474, 475, 32767, 32767, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, + 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, + 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, 32767, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 32767, 542, 543, 544, 545, 546, 32767, 547, 548, 549, 550, 32767, 551, 552, 553, 554, + 555, 967, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32767, + 32767, 32767, 32767, 585, 586, 587, 588, 589, 590, 591, 592, 32767, 593, 594, 595, 32767, + 32767, 596, 597, 598, 599, 600, 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, + 609, 32767, 32767, 610, 611, 612, 613, 614, 32767, 32767, 615, 616, 617, 618, 619, 620, 621, + 32767, 622, 623, 624, 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, + 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, + 648, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 4, 5, 32767, 32767, + 32767, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 254, 255, 32767, 256, 257, 258, + 259, 260, 261, 262, 32767, 263, 264, 265, 266, 267, 268, 269, 32767, 32767, 270, 271, 272, 273, + 274, 32767, 275, 276, 277, 278, 279, 32767, 280, 32767, 32767, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, 298, 299, 300, 32767, + 32767, 301, 32767, 302, 32767, 32767, 32767, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, + 309, 310, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, + 32767, 32767, 324, 325, 326, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, + 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 32767, 32767, + 347, 32767, 32767, 348, 349, 350, 351, 352, 32767, 353, 32767, 354, 1043, 355, 356, 32767, 357, + 358, 359, 360, 361, 32767, 362, 32767, 363, 364, 365, 32767, 32767, 366, 32767, 367, 368, 369, + 32767, 966, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, + 386, 387, 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, 32767, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 32767, 32767, 32767, 419, 420, 421, 32767, 422, 423, 32767, 424, 425, 426, 32767, 32767, 427, + 428, 429, 430, 29, 32767, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, 32767, + 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 32767, 460, 461, 462, 32767, 32767, 463, 464, 32767, 465, 32767, 466, + 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 473, 474, 475, 32767, 32767, 476, 477, 478, + 479, 480, 481, 482, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 32767, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, + 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 32767, 542, 543, 544, 545, 546, 32767, 547, 548, 549, 550, 47, 551, 552, 553, 554, 555, 32767, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32767, 32767, 32767, + 51, 585, 586, 587, 588, 589, 590, 591, 592, 32767, 593, 594, 595, 32767, 32767, 596, 597, 598, + 599, 600, 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, + 611, 612, 613, 614, 32767, 32767, 615, 616, 617, 618, 32766, 620, 621, 32767, 622, 623, 624, + 625, 626, 627, 32767, 32767, 628, 32767, 56, 629, 630, 32767, 57, 631, 632, 633, 32767, 634, + 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, + 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32767, 781, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 783, 32767, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, + 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 1209, 32766, 32766, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, + 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, -2497, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32767, 781, 32767, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 782, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 783, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 785, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 788, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, -2497, 32767, 32767, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, + 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, -2576, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32767, 32766, 32767, 781, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 783, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, + 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, -2576, 32767, 32767, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 1213, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32767, + 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + -2580, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32767, 32766, 32767, 781, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 782, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 783, 32767, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, + 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 785, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 788, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32767, -2580, 32767, 32767, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, -2618, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32767, 781, + 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32767, + 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 783, 32767, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32767, + 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32767, -2618, 32767, 32767, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32767, + 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, -2644, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32767, 781, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 783, 32767, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32766, + 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, + 32767, 32767, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32767, -2644, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, -2685, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32767, 781, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 783, 32767, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, + 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, + 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, + 32767, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32767, -2685, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, + 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32766, + 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32767, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32767, 32767, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32767, + 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 1241, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 32767, + 32767, 32767, 32767, 1242, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 254, 255, + 1243, 256, 257, 258, 1244, 260, 1245, 1246, 32767, 263, 264, 265, 266, 267, 268, 269, 1247, + 1248, 270, 271, 1249, 273, 1250, 32767, 275, 276, 277, 278, 1251, 32767, 1252, 32767, 32767, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, + 32767, 298, 299, 300, 1253, 1254, 301, 1255, 1256, 1257, 1258, 1259, 303, 304, 32767, 32767, + 32767, 305, 306, 307, 308, 1260, 1261, 311, 1262, 312, 32767, 313, 314, 315, 316, 317, 318, + 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 832, 327, 32766, 32767, 328, 32767, + 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 1263, 342, + 343, 344, 345, 1264, 32767, 1265, 347, 1266, 32766, 348, 349, 350, 1267, 352, 32766, 353, + 32767, 354, 32767, 355, 356, 32766, 357, 358, 359, 360, 361, 32767, 362, 32767, 1268, 1269, + 365, 32766, 32767, 366, 32766, 367, 368, 369, 782, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 32767, 386, 387, 388, 389, 390, 391, 392, 1270, 32767, 1271, + 32767, 1272, 396, 32767, 397, 398, 399, 400, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, + 1281, 410, 1282, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 1283, 421, 32767, + 422, 423, 32766, 424, 425, 426, 1284, 1285, 427, 428, 429, 430, 1286, 32767, 431, 432, 433, + 434, 435, 436, 1287, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 1288, + 444, 445, 1289, 447, 1290, 449, 450, 451, 452, 453, 454, 455, 456, 457, 1291, 459, 1292, 460, + 461, 462, 32767, 1293, 463, 1294, 32767, 465, 1295, 1296, 467, 468, 469, 32766, 470, 471, 472, + 32767, 32767, 1297, 474, 475, 32767, 32766, 476, 477, 478, 479, 480, 481, 1298, 483, 484, 485, + 1299, 486, 1300, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 1301, 498, 499, 500, + 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 1302, 510, 511, 512, 32767, 513, + 1303, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 32767, 532, 533, 534, 535, 536, 537, 538, 539, 1304, 541, 32767, 542, 543, 544, 545, 546, + 716, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 1305, 556, 557, 558, 559, 560, 561, + 562, 563, 1306, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, + 579, 580, 1307, 582, 32767, 583, 584, 1308, 32767, 32767, 1309, 32767, 585, 586, 587, 588, 589, + 590, 591, 592, 32767, 593, 1310, 1311, 32767, 32767, 596, 597, 1312, 599, 1313, 1314, 601, 602, + 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 1315, 610, 611, 612, 613, 614, 1316, + 32767, 615, 616, 617, 618, 619, 620, 1317, 32767, 622, 623, 624, 625, 626, 627, 32767, 32766, + 628, 32766, 32767, 629, 630, 32767, 32767, 631, 632, 633, 1318, 634, 1319, 1320, 1321, 1322, + 639, 1323, 1324, 1325, 1326, 644, 645, 646, 647, 648, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 1359, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 1363, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 1366, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 1367, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 29, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 254, 255, 32767, 256, 257, + 32767, 825, 260, 826, 827, 32767, 263, 264, 265, 266, 267, 268, 269, 32767, 32766, 270, 271, + 828, 273, 829, 32767, 275, 276, 277, 278, 32767, 32767, 280, 32767, 32767, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, 298, 299, 300, + 32767, 32767, 301, 32767, 302, 32767, 32767, 32767, 303, 304, 32767, 32767, 32767, 305, 306, + 307, 308, 830, 831, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, + 322, 323, 32767, 32767, 324, 325, 832, 327, 47, 32767, 328, 32767, 329, 330, 331, 332, 32767, + 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 32767, 342, 343, 344, 345, 32767, 32767, + 32767, 347, 32767, 32767, 348, 349, 350, 833, 352, 32767, 353, 32767, 354, 32767, 355, 356, 51, + 357, 358, 359, 360, 361, 32767, 362, 32767, 32767, 32767, 365, 32767, 32767, 366, 32767, 367, + 368, 369, 32767, 834, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 32767, 386, 387, 32767, 389, 390, 391, 392, 835, 55, 836, 32767, 837, 396, 32767, 397, + 398, 399, 400, 838, 32767, 32767, 32767, 56, 32767, 32767, 32767, 57, 32767, 32767, 412, 413, + 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 32767, 421, 32767, 422, 423, 32767, 424, + 425, 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 32767, + 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 839, 447, + 840, 449, 450, 451, 452, 453, 454, 455, 456, 32767, 32767, 459, 32767, 460, 461, 462, 32767, + 32767, 463, 32766, 32767, 465, 32767, 841, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, + 473, 474, 475, 32767, 32767, 476, 477, 478, 32767, 480, 481, 32767, 483, 484, 485, 32767, 486, + 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 32767, 498, 32767, 500, 501, + 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, 842, + 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 32767, 532, 533, 534, 535, 536, 537, 538, 539, 32767, 541, 32767, 542, 543, 544, 545, 546, + 32767, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 32767, 556, 32767, 558, 559, 560, + 561, 562, 563, 844, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 32767, 582, 32767, 583, 584, 32766, 32767, 32767, 32767, 32767, 585, 586, 587, + 588, 589, 590, 591, 592, 32767, 593, 845, 846, 32766, 32767, 596, 597, 32767, 599, 32767, + 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, + 613, 614, 32766, 32767, 615, 616, 617, 618, 32767, 620, 32766, 32767, 622, 623, 624, 625, 626, + 627, 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 32767, + 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 645, 646, 647, 648, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 1374, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 1375, 1376, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 1378, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 1375, 1376, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 1380, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 1382, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 1383, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 1384, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 1385, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 1386, + 32766, 32766, 32767, 32767, 32767, 32767, 32767, 1387, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 1388, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 1389, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 1392, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 1363, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 4086, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 4087, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 1548, 32766, 32767, 32767, + 32767, 32767, 32766, 32767, 32767, 1411, 32767, 32767, 32767, 32766, 32767, 32767, 32767, + 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32767, 32767, 32766, + 32766, 32767, 32766, 4305, 32767, 32766, 32767, 1549, 32766, 32767, 32766, 32766, 32767, 32767, + 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32767, + 32767, 32767, 32766, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32767, 32767, + -1332, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32767, 32766, 32767, 32767, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 2577, 32767, 1550, 32766, 32766, 32767, + 32767, 32767, 5885, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, + 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32766, + 32767, 32767, 32766, 4499, 32767, 32767, 32767, 32766, 32766, 32767, 3533, 32767, 32767, 32766, + 1551, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 4088, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32767, 32767, 4861, 32766, 32767, 32767, 32766, 32767, 32766, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 1578, 32766, 32766, 32767, 32766, 1552, 1579, + 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 1612, 32766, 32767, 32766, 32766, + 32766, 1580, 32766, 32766, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32767, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, -1780, 32767, 32767, 1581, 32766, 1553, 32766, 32767, 32767, 1554, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 3727, 32767, 32766, 4888, 32766, 32766, + 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 1555, 4870, 1556, 32767, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, -1332, 32767, 32766, 32767, 32766, 1582, + 32766, 32766, 32767, 32766, 3118, 32766, 1583, 32767, 32766, 1414, 32766, 32766, 1584, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 1557, + 32767, 1413, 32767, 42, 32766, 32766, 32767, 32767, 1558, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 1585, 1559, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 1560, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 1561, 32766, 32766, 32766, 1480, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 1562, 32766, 32766, 32766, 32766, 32766, + 32766, 1586, 32766, 1563, 32766, 32766, 32766, 32766, 1564, 32766, 32766, 32766, 32766, 1645, + 32767, 32766, 32766, 5621, 32766, 3418, 32766, 32766, 32766, 32766, 32766, 32766, 4210, 32766, + 32766, 1227, 32766, 32766, 32766, 32766, 32767, 3418, 1646, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, -1780, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 1480, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 1632, + 32766, 32766, 32767, 1633, 32766, 32767, 32767, 32766, 32766, 3953, 32766, 1482, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 1647, 32767, 32766, 1587, 32767, 32766, 32766, 1588, + 32766, 32766, 4889, 32766, 32766, 32766, 32767, 32766, 32766, 1548, 4890, 32766, 1589, 32766, + 32766, 32766, 32766, 32766, 4891, 32766, 32766, 32766, 1590, 32767, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32767, 32766, 32766, 1591, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 1483, 1549, 32766, 32766, 32766, 32766, 32766, 32767, 1577, 32767, + 1482, 32766, 32766, 32766, 4892, 2678, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, -1332, 32767, 1592, + 32766, 32767, 1593, 1594, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 1412, 32767, 32766, + 1648, 32766, 32767, 5291, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, + 32766, 32766, 32766, 32767, 32767, 1550, 32766, 32766, 1595, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32767, 32766, 32767, 32767, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32767, 1649, 32767, 1551, 32767, 32767, 32766, 32766, + 1650, 32767, 32767, 32767, 32766, 1651, 32766, 32766, 32767, 32767, 32767, 32766, 32767, 32767, + 4614, 32766, 4615, 32766, 32766, 32767, 32766, 32767, 32766, 32767, 32767, 32766, 32766, 2953, + 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32767, + 32766, 32767, 32767, 32766, 32767, 1552, 32767, 32766, 32767, 32767, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32766, 1653, 32766, + 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32767, 32767, 32766, 32767, 4682, 32766, + 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, + 32767, 32766, 1553, 32767, 32767, 32767, 1554, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 1655, 32767, + 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32767, 32767, + 32767, 1619, 32766, 1556, 32767, 32766, 32767, 32767, 32767, 32766, 32766, 1656, 32766, 32766, + 32767, 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 3223, 32766, 32767, 32766, + 32766, 32767, 32767, 32767, 32766, 1658, 32767, 4808, 32766, 32767, 32767, 32767, 32766, 32767, + 32767, 32766, 32766, 32767, 32766, 32767, 32766, 1620, 32766, 32766, 32766, 42, 32767, 32767, + 32766, 32766, 1558, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 1559, 1632, 32767, + 32767, 32766, 1633, 32767, 32767, 32767, 32766, 32767, 1560, 32767, 32767, 32767, 32767, 32767, + 32766, 32767, 32766, 32767, 32767, 1659, 32767, 32767, 32766, 32767, 32767, 32766, 32767, + 32767, 32767, 1562, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 1563, 32767, 32767, + 32767, 32767, 1564, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 32767, + 32767, 32767, 32767, 1242, 32767, 32766, 247, 248, 249, 32766, 250, 251, 252, 253, 254, 255, + 1243, 256, 257, 258, 1244, 260, 1245, 1246, 32767, 263, 264, 265, 266, 267, 268, 269, 1247, + 1248, 270, 271, 1249, 273, 1250, 32767, 275, 276, 277, 278, 1251, 32767, 1252, 1565, 32767, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, + 32767, 298, 299, 300, 1253, 1254, 301, 1255, 1256, 1257, 1258, 1259, 303, 304, 32767, 32767, + 32767, 305, 306, 307, 308, 1260, 1261, 311, 1262, 312, 32767, 313, 314, 315, 316, 317, 318, + 319, 32767, 320, 321, 322, 323, 32766, 32767, 324, 325, 832, 327, 32767, 32767, 328, 32767, + 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 1263, 342, + 343, 344, 345, 1264, 32767, 1265, 347, 1266, 32766, 348, 349, 350, 1267, 352, 32767, 353, + 32767, 354, 32767, 355, 356, 32766, 357, 358, 359, 360, 361, 32767, 362, 32767, 1268, 1269, + 365, 32767, 32767, 366, 32766, 367, 368, 369, 782, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 32767, 386, 387, 388, 389, 390, 391, 392, 1270, 32767, 1271, + 32767, 1272, 396, 32766, 397, 398, 399, 400, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, + 1281, 410, 1282, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 1283, 421, 32767, + 422, 423, 32767, 424, 425, 426, 1284, 1285, 427, 428, 429, 430, 1286, 32767, 431, 432, 433, + 434, 435, 436, 1287, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 1288, + 444, 445, 1289, 447, 1290, 449, 450, 451, 452, 453, 454, 455, 456, 457, 1291, 459, 1292, 460, + 461, 462, 32767, 1293, 463, 1294, 32767, 465, 1295, 1296, 467, 468, 469, 32767, 470, 471, 472, + 32767, 32767, 1297, 474, 475, 32767, 32767, 476, 477, 478, 479, 480, 481, 1298, 483, 484, 485, + 1299, 486, 1300, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 1301, 498, 499, 500, + 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 1302, 510, 511, 512, 32767, 513, + 1303, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 32767, 532, 533, 534, 535, 536, 537, 538, 539, 1304, 541, 32767, 542, 543, 544, 545, 546, + 716, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 1305, 556, 557, 558, 559, 560, 561, + 562, 563, 1306, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, + 579, 580, 1307, 582, 32767, 583, 584, 1308, 32767, 32767, 1309, 32767, 585, 586, 587, 588, 589, + 590, 591, 592, 32767, 593, 1310, 1311, 32767, 32767, 596, 597, 1312, 599, 1313, 1314, 601, 602, + 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 1315, 610, 611, 612, 613, 614, 1316, + 32767, 615, 616, 617, 618, 619, 620, 1317, 32767, 622, 623, 624, 625, 626, 627, 32767, 32767, + 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 1318, 634, 1319, 1320, 1321, 1322, + 639, 1323, 1324, 1325, 32766, 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 1242, 32767, 32767, 247, 248, 249, + 32767, 250, 251, 252, 253, 254, 255, 1243, 256, 257, 258, 1244, 260, 1245, 1246, 32767, 263, + 264, 265, 266, 267, 268, 269, 1247, 1248, 270, 271, 1249, 273, 1250, 32767, 275, 276, 277, 278, + 1251, 32767, 1252, 32767, 32767, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 32767, + 292, 293, 294, 295, 296, 297, 32766, 298, 299, 300, 1253, 1254, 301, 1255, 1256, 1257, 1258, + 1259, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 1260, 1261, 311, 1262, 312, 32767, + 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 832, 327, + 32766, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32766, 337, + 338, 339, 340, 1263, 342, 343, 344, 345, 1264, 32767, 1265, 347, 1266, 32766, 348, 349, 350, + 1267, 352, 32766, 353, 32767, 354, 32766, 355, 356, 32766, 357, 358, 359, 360, 361, 32766, 362, + 32767, 1268, 1269, 365, 32766, 32767, 366, 32766, 367, 368, 369, 782, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 387, 388, 389, 390, 391, + 392, 1270, 32766, 1271, 32766, 1272, 396, 32767, 397, 398, 399, 400, 1273, 1274, 1275, 1276, + 1277, 1278, 1279, 1280, 1281, 410, 1282, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, + 32767, 419, 1283, 421, 32767, 422, 423, 32766, 424, 425, 426, 1284, 1285, 427, 428, 429, 430, + 1286, 32767, 431, 432, 433, 434, 435, 436, 1287, 438, 439, 440, 441, 32767, 32767, 32767, + 32767, 32767, 442, 443, 1288, 444, 445, 1289, 447, 1290, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 1291, 459, 1292, 460, 461, 462, 32767, 1293, 463, 1294, 32767, 465, 1295, 1296, 467, + 468, 469, 32766, 470, 471, 472, 32766, 32767, 1297, 474, 475, 32767, 32766, 476, 477, 478, 479, + 480, 481, 1298, 483, 484, 485, 1299, 486, 1300, 487, 488, 489, 490, 491, 492, 493, 32767, 494, + 495, 496, 1301, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 1302, + 510, 511, 512, 32767, 513, 1303, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 32766, 532, 533, 534, 535, 536, 537, 538, 539, 1304, 541, 32766, + 542, 543, 544, 545, 546, 716, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 1305, 556, + 557, 558, 559, 560, 561, 562, 563, 1306, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 1307, 582, 32767, 583, 584, 1308, 32766, 32767, 1309, 32767, + 585, 586, 587, 588, 589, 590, 591, 592, 32767, 593, 1310, 1311, 32767, 32767, 596, 597, 1312, + 599, 1313, 1314, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32766, 1315, 610, + 611, 612, 613, 614, 1316, 32767, 615, 616, 617, 618, 619, 620, 1317, 32767, 622, 623, 624, 625, + 626, 627, 32767, 32766, 628, 32766, 32766, 629, 630, 32767, 32767, 631, 632, 633, 1318, 634, + 1319, 1320, 1321, 1322, 639, 1323, 1324, 1325, 1326, 644, 645, 646, 647, 648, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 1427, 244, 245, 246, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 32767, 255, 32767, 256, 257, 258, 259, 32767, + 261, 262, 32767, 263, 264, 265, 266, 267, 268, 269, 32767, 32767, 270, 271, 272, 273, 274, + 32767, 275, 276, 277, 278, 279, 32767, 32767, 32767, 32767, 281, 282, 283, 284, 285, 286, + 32767, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, 32767, 299, 300, 32767, + 32767, 301, 32767, 32767, 32767, 32767, 32767, 303, 304, 32767, 32767, 32767, 305, 306, 307, + 308, 309, 310, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, + 323, 32767, 32767, 324, 325, 326, 327, 32767, 32766, 328, 32767, 329, 330, 331, 332, 32767, + 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 32766, + 32767, 347, 32767, 32767, 348, 349, 350, 351, 352, 32767, 353, 32767, 354, 32767, 355, 32767, + 32766, 32767, 358, 359, 360, 361, 32767, 362, 32767, 363, 364, 365, 32767, 32767, 366, 32767, + 367, 368, 369, 32767, 657, 371, 372, 32767, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 32767, 386, 32767, 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, 32767, + 32767, 32767, 399, 32767, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, 32767, 32767, 422, 32767, 32767, 424, 425, + 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, 32767, 448, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, 32767, 32767, 32767, + 463, 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 473, 474, + 475, 32767, 32767, 476, 477, 32767, 479, 480, 32767, 482, 483, 484, 485, 32767, 486, 32767, + 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, 32767, + 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, + 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, + 32767, 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, 546, 32767, 547, 548, 549, + 550, 32767, 551, 552, 553, 554, 555, 32767, 556, 557, 558, 559, 560, 32767, 562, 563, 564, 565, + 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 32767, 583, 584, 32767, 32767, 32767, 32767, 32767, 585, 32767, 587, 588, 589, 590, 591, 592, + 32767, 593, 594, 595, 32766, 32767, 596, 597, 598, 599, 600, 32767, 601, 602, 32767, 603, 604, + 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, 32767, 32767, 615, 616, + 617, 618, 619, 620, 621, 32767, 622, 32767, 624, 625, 626, 627, 32767, 32767, 628, 32767, + 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, + 245, 246, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, + 253, 32767, 255, 32767, 256, 257, 258, 259, 32767, 261, 262, 32767, 263, 264, 265, 266, 267, + 268, 269, 32767, 32767, 892, 271, 272, 273, 274, 32767, 275, 276, 277, 278, 279, 32767, 32767, + 32767, 32767, 281, 282, 283, 284, 285, 286, 32767, 288, 289, 290, 291, 32767, 292, 293, 294, + 295, 296, 297, 32767, 32767, 299, 300, 32767, 32767, 301, 32767, 32767, 32767, 32767, 32767, + 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32767, 312, 32767, 313, 314, + 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 326, 327, 32767, + 32766, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 32766, 32767, 347, 32767, 32767, 348, 349, 350, 351, 352, + 32767, 353, 32767, 354, 32767, 355, 32767, 32766, 32767, 358, 359, 360, 361, 32767, 362, 32767, + 363, 364, 365, 32767, 32767, 366, 32767, 367, 368, 369, 32767, 657, 371, 372, 32767, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32766, 386, 32767, 388, 389, 390, 391, 392, + 393, 32767, 394, 32767, 395, 396, 32767, 32767, 32767, 399, 32767, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, + 32767, 32767, 422, 32766, 32767, 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, + 443, 32767, 895, 445, 446, 32767, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 32766, 460, 461, 32767, 32767, 32767, 463, 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, + 470, 471, 472, 32767, 32767, 473, 474, 475, 32767, 32767, 476, 477, 32767, 479, 480, 32767, + 482, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, + 512, 32767, 513, 514, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 32767, 532, 533, 32767, 896, 536, 537, 538, 539, 540, 541, 32767, 542, 543, + 544, 897, 546, 32767, 547, 548, 549, 550, 32766, 551, 552, 553, 554, 1431, 32767, 556, 557, + 558, 559, 560, 32766, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, + 575, 576, 577, 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32767, 32767, 32766, 1039, 585, + 32767, 587, 588, 589, 590, 591, 592, 32767, 593, 899, 595, 32766, 32767, 900, 597, 598, 599, + 600, 32767, 601, 602, 32767, 603, 604, 605, 4305, 606, 607, 608, 609, 3498, 32766, 610, 611, + 612, 613, 614, 32766, 32766, 615, 616, 617, 618, 619, 620, 621, 32767, 622, 32767, 624, 625, + 626, 627, 32766, 32766, 628, 4305, 32766, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, + 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 901, 646, 647, 648, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32767, + 32767, 3736, 32766, 32767, 32767, 32766, 32767, 32767, 1548, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 1040, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 3353, 32767, 3354, 5494, + 32767, 3499, 32766, 32767, 32767, 32767, 1227, 32766, 32766, 32767, 32767, 32766, 32767, 32767, + 32766, 32767, 32766, 1549, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32766, + 32766, 3355, 32767, 32767, 32767, 32767, 3737, 32767, 32767, 32766, 32766, 32767, 32767, 32766, + 1039, 32766, 1433, -149, 32767, 32766, 32767, 32766, 32766, -1332, 32766, 32767, 32766, 2715, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, -2641, 32766, 32766, + 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32766, -149, 32767, 32767, 32767, + 32767, 32766, 32767, 32766, 32766, 1550, 32766, 3738, -2641, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 3356, 32767, 32767, 3739, 32767, 32767, 32767, -2641, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 1551, 32766, 32767, 32766, 32767, + 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 2875, + 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 1040, 32767, 32766, 32767, 32767, + 32766, 32767, 32767, 32767, 3357, 3358, 3359, 3360, 32767, -149, 32766, 3361, 3362, 32767, + 32767, 32766, 32766, 32767, 32767, 32767, 1552, 32766, 3363, 32767, 32767, 32767, 32767, 32766, + 32767, 32766, 32766, 32766, 1483, 32766, 32767, -2416, 32766, 4898, 32767, 32766, 32766, 32767, + 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, + 32767, 1553, 32767, 32766, 32767, 1554, 32766, 32766, 32767, 32767, 32767, 32766, 3740, 32767, + 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32766, -149, 32766, 32766, 32767, + 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, + 1636, 32767, 1556, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 4899, + 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32766, + 32766, 3418, 32766, 32766, 32767, 32767, 32766, 1637, 32766, 32767, 32766, 42, 32766, 32766, + 32766, 32766, 1558, 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 1559, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 716, 32766, 32766, 1560, 32766, 3364, 32766, 32767, 32767, + 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 1562, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 1563, 32766, 32767, + 32766, 32767, 1564, 32766, 3741, 32767, 4900, 32767, 32766, 32767, 4901, 32767, 3742, 32766, + 32767, 3743, 32767, 32767, 32766, 32766, 32766, 32767, 1632, 32767, -2641, 32766, 1633, 32766, + 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32766, 32766, 32766, 32767, 32767, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, + 245, 246, 32767, 32767, 32767, 32767, 32767, 1565, 32766, 247, 248, 249, 32766, 250, 251, 252, + 253, 254, 255, 32767, 256, 257, 258, 259, 260, 261, 262, 32767, 263, 264, 265, 266, 267, 268, + 269, 32766, 32767, 270, 271, 272, 273, 274, 32767, 275, 276, 277, 278, 279, 32767, 280, 32767, + 32767, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, + 297, 32767, 298, 299, 300, 32767, 32767, 301, 32767, 302, 32767, 32767, 32767, 303, 304, 32767, + 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, + 318, 319, 32766, 320, 321, 322, 323, 32767, 32767, 324, 325, 326, 327, 32767, 32766, 328, + 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 32766, 32767, 347, 32767, 32767, 348, 349, 350, 351, 352, 32767, 353, + 32767, 354, 32767, 355, 356, 32766, 357, 358, 359, 360, 361, 32767, 362, 32767, 363, 364, 365, + 32767, 32767, 366, 32767, 367, 368, 369, 32767, 966, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 32767, 386, 387, 388, 389, 390, 391, 392, 393, 32767, 394, + 32767, 395, 396, 32767, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, 421, 32767, 422, 423, + 32767, 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, 462, + 32767, 32767, 463, 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, 470, 471, 472, 32767, + 32767, 473, 474, 475, 32767, 32767, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 32767, + 486, 1436, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, + 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 32767, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, 546, 716, + 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 32767, 556, 557, 558, 559, 560, 561, 562, + 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 32767, 583, 584, 32767, 32767, 32767, 32767, 32767, 585, 586, 587, 588, 589, + 590, 591, 592, 32767, 593, 594, 595, 32766, 32767, 596, 597, 598, 599, 600, 32767, 601, 602, + 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, 32767, + 32767, 615, 616, 617, 618, 619, 620, 621, 32767, 622, 623, 624, 625, 626, 627, 32767, 32767, + 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, 249, 32767, + 250, 251, 252, 253, 1440, 255, 32767, 256, 257, 258, 259, 32767, 261, 262, 32767, 263, 264, + 265, 266, 267, 268, 269, 32767, 32767, 892, 271, 272, 1441, 274, 32767, 275, 276, 277, 278, + 279, 32767, 32767, 32767, 32767, 281, 282, 283, 284, 285, 286, 32767, 288, 289, 290, 291, + 32767, 292, 293, 294, 295, 296, 297, 32767, 32767, 299, 300, 32767, 32767, 301, 32767, 32767, + 32767, 32767, 32767, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32767, + 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, + 325, 326, 327, 32767, 32766, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, + 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 32766, 32767, 347, 32767, 32767, 348, + 349, 350, 351, 352, 32767, 353, 32767, 354, 32767, 355, 32767, 32766, 32767, 358, 359, 360, + 361, 32767, 362, 32767, 363, 364, 365, 32767, 32767, 366, 32767, 367, 368, 369, 32767, 657, + 371, 372, 32767, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 32767, + 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, 32767, 32767, 32767, 399, 32767, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 32767, 32767, 32767, 419, 420, 32767, 32767, 422, 32767, 32767, 424, 425, 426, 32767, 32767, + 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, + 32767, 32767, 32767, 32767, 442, 443, 32767, 895, 445, 446, 32767, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, 32767, 32767, 32767, 463, 464, 32767, 465, + 32767, 466, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 473, 474, 475, 32767, 32767, + 476, 477, 32767, 479, 480, 32767, 482, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, + 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, + 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, 32767, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 32767, 896, 536, + 537, 538, 539, 540, 541, 32767, 542, 543, 544, 897, 546, 32767, 547, 548, 549, 550, 32767, 551, + 552, 553, 554, 1431, 32767, 556, 557, 558, 559, 560, 32767, 562, 563, 564, 565, 32767, 566, + 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 32767, 583, + 584, 32767, 32767, 32767, 32767, 32767, 585, 32767, 587, 588, 589, 590, 591, 592, 32767, 593, + 899, 595, 32766, 32767, 900, 597, 598, 599, 600, 32767, 601, 602, 32767, 603, 604, 605, 32767, + 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, 32767, 32767, 615, 616, 617, 618, + 619, 620, 621, 32767, 622, 32767, 624, 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, + 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 901, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 32767, 255, + 32767, 256, 257, 258, 259, 32767, 261, 262, 32767, 263, 264, 265, 266, 267, 268, 269, 32767, + 32767, 270, 271, 272, 273, 274, 32767, 275, 276, 277, 278, 279, 32767, 32767, 32767, 32767, + 281, 282, 283, 284, 285, 286, 32767, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, + 32767, 32767, 299, 300, 32767, 32767, 301, 32767, 32767, 32767, 32767, 32767, 303, 304, 32767, + 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, + 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 326, 327, 32767, 32767, 328, + 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 32767, 32767, 347, 32767, 32767, 348, 349, 350, 351, 352, 32767, 353, + 32767, 354, 32767, 355, 32767, 32767, 32767, 358, 359, 360, 361, 32767, 362, 32767, 363, 364, + 365, 32767, 32767, 366, 32767, 367, 368, 369, 32767, 657, 371, 372, 32767, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 32767, 388, 389, 390, 391, 392, 393, 32767, + 394, 32767, 395, 396, 32767, 32767, 32767, 399, 32767, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, 32767, 32767, + 422, 32767, 32767, 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32766, 32767, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, + 32767, 444, 445, 446, 32767, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 32767, + 460, 461, 32767, 32767, 32767, 463, 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, 470, + 471, 472, 32767, 32767, 473, 474, 475, 32767, 32767, 476, 477, 32767, 479, 480, 32767, 482, + 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, + 32767, 513, 514, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 32767, 532, 533, 32767, 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, 544, + 545, 546, 32767, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 32767, 556, 557, 558, 559, + 560, 32767, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32767, 32767, 32767, 32767, 585, 32767, + 587, 588, 589, 590, 591, 592, 32767, 593, 594, 595, 32767, 32767, 596, 597, 598, 599, 600, + 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, + 613, 614, 32767, 32767, 615, 616, 617, 618, 619, 620, 621, 32767, 622, 32767, 624, 625, 626, + 627, 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, + 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32767, + 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, + 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32767, + 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, + 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32767, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32767, 32766, 32767, 1456, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 1039, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 1040, 32767, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32767, + 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32767, + 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32767, 32766, 1460, 32767, + 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32767, + 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32767, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32767, + 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, + 32767, 1242, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 254, 255, 1243, 256, 257, + 258, 1244, 260, 1245, 1246, 32767, 263, 264, 265, 266, 267, 268, 269, 1247, 1248, 270, 271, + 1249, 273, 1250, 32767, 275, 276, 277, 278, 1251, 32767, 1252, 32767, 32767, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, 298, 299, + 300, 1253, 1254, 301, 1255, 1256, 1257, 1258, 1259, 303, 304, 32767, 32767, 32767, 305, 306, + 307, 308, 1260, 1261, 311, 1262, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, + 321, 322, 323, 32767, 32767, 324, 325, 832, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, + 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 1263, 342, 343, 344, 345, 1264, + 32767, 1265, 347, 1266, 32767, 348, 349, 350, 1267, 352, 32767, 353, 32767, 354, 32767, 355, + 356, 32767, 357, 358, 359, 360, 361, 32767, 362, 32767, 1268, 1269, 365, 32767, 32767, 366, + 32767, 367, 368, 369, 782, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 32767, 386, 387, 388, 389, 390, 391, 392, 1270, 32767, 1271, 32767, 1272, 396, + 32767, 397, 398, 399, 400, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 410, 1282, + 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 1283, 421, 32767, 422, 423, 32767, + 424, 425, 426, 1284, 1285, 427, 428, 429, 430, 1286, 32767, 431, 432, 433, 434, 435, 436, 1287, + 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 1288, 444, 445, 1289, 447, + 1290, 449, 450, 451, 452, 453, 454, 455, 456, 457, 1291, 459, 1292, 460, 461, 462, 32767, 1293, + 463, 1294, 32767, 465, 1295, 1296, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 1297, + 474, 475, 32767, 32767, 476, 477, 478, 479, 480, 481, 1298, 483, 484, 485, 1299, 486, 1300, + 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 1301, 498, 499, 500, 501, 502, 32767, + 503, 504, 505, 506, 507, 508, 509, 32767, 1302, 510, 511, 512, 32767, 513, 1303, 515, 516, 517, + 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, + 534, 535, 536, 537, 538, 539, 1304, 541, 32767, 542, 543, 544, 545, 546, 716, 547, 548, 549, + 550, 32767, 551, 552, 553, 554, 555, 1305, 556, 557, 558, 559, 560, 561, 562, 563, 1306, 565, + 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 1307, 582, + 32767, 583, 584, 1308, 32767, 32767, 32767, 32767, 585, 586, 587, 588, 589, 590, 591, 592, + 32767, 593, 1310, 1311, 32767, 32767, 596, 597, 1312, 599, 1313, 1314, 601, 602, 32767, 603, + 604, 605, 32767, 606, 607, 608, 609, 32767, 1315, 610, 611, 612, 613, 614, 1316, 32767, 615, + 616, 617, 618, 619, 620, 1317, 32767, 622, 623, 624, 625, 626, 627, 32767, 32767, 628, 32767, + 32767, 629, 630, 32767, 32767, 631, 632, 633, 1318, 634, 1319, 1320, 1321, 1322, 639, 1323, + 1324, 1325, 32766, 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, + 244, 245, 246, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 247, 248, 249, 32767, 250, 251, + 252, 253, 32767, 255, 32767, 256, 257, 258, 259, 32767, 261, 262, 32767, 263, 264, 265, 266, + 267, 268, 269, 32767, 32767, 270, 271, 272, 273, 274, 32767, 275, 276, 277, 278, 279, 32767, + 32767, 32767, 32767, 281, 282, 283, 284, 285, 286, 32767, 288, 289, 290, 291, 32767, 292, 293, + 294, 295, 296, 297, 32767, 32767, 299, 300, 32767, 32767, 301, 32767, 32767, 32767, 32767, + 32767, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32767, 312, 32767, + 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 326, 327, + 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 32767, 32767, 347, 32767, 32767, 348, 349, 350, + 351, 352, 32767, 353, 32767, 354, 32767, 355, 32767, 32767, 32767, 358, 359, 360, 361, 32767, + 362, 32767, 363, 364, 365, 32767, 32767, 366, 32767, 367, 368, 369, 32767, 657, 371, 372, + 32767, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 32767, 388, 389, + 390, 391, 392, 393, 32767, 394, 32767, 395, 396, 32767, 32767, 32767, 399, 32767, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, + 32767, 419, 420, 32767, 32767, 422, 32767, 32767, 424, 425, 426, 32767, 32767, 427, 428, 429, + 430, 32766, 32767, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, 32767, 32767, + 32767, 32767, 442, 443, 32767, 444, 445, 446, 32767, 448, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 458, 459, 32767, 460, 461, 32767, 32767, 32767, 463, 464, 32767, 465, 32767, 466, + 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 473, 474, 475, 32767, 32767, 476, 477, + 32767, 479, 480, 32767, 482, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, 491, 492, + 493, 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, + 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, 32767, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 32767, 535, 536, 537, 538, + 539, 540, 541, 4375, 542, 543, 544, 545, 546, 32767, 547, 548, 549, 550, 32767, 551, 552, 553, + 554, 555, 32767, 556, 557, 558, 559, 560, 32767, 562, 563, 564, 565, 32767, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32767, + 32767, 32767, 32767, 585, 32767, 587, 588, 589, 590, 591, 592, 32767, 593, 594, 595, 32766, + 32767, 596, 597, 598, 599, 600, 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, + 609, 32766, 32767, 610, 611, 612, 613, 614, 32766, 32766, 615, 616, 617, 618, 619, 620, 621, + 32767, 622, 32767, 624, 625, 626, 627, 3512, 32767, 628, 32766, 32767, 629, 630, 32766, 32766, + 631, 632, 633, 4376, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, + 2, 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32767, 32767, 32766, 3, 32767, 4, 5, 32766, + 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32767, 4898, 32766, 32767, 32767, + 32766, 32766, 32767, 6, 5533, 6171, 32767, 32766, 32766, 32767, 32766, 32766, 32767, 7, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 8, 32766, 9, 10, 5534, + 32767, 32767, 32767, 32767, 32767, 11, 5535, 12, 32767, 32767, 32766, 32767, 32766, 32766, + 1392, 32766, 1039, 32766, 32766, 32767, 13, 5536, 14, 32766, 32766, 32767, 32766, 32767, 32766, + 32767, 32766, 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 15, + 32766, 2605, 16, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32767, + 32766, 6172, 32767, 17, 32767, 18, 4899, 32767, 32767, 19, -135, 32767, 32766, 32767, 32766, + 32766, 32766, 32767, 20, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 21, + 32766, 22, 32767, 32766, 32766, 32767, 32766, 32767, 32767, 32766, 23, 32767, 32767, 32766, + 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32766, 32766, 24, 32767, 32766, 32767, 32767, 1590, 32767, 32766, 32767, 32767, 32767, 32766, + 32767, 32766, 32767, 32767, 1040, 32766, 32766, 32767, 32767, 25, 32767, 32767, 32767, 32767, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 1227, 32766, 32766, 4900, 32767, 32767, + 32767, 4901, 4610, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 6173, 32767, + 32767, 32767, 32766, 32766, 32767, 32767, 32766, 5537, 6174, 32767, 32766, 32766, 32766, 32767, + 4377, 4378, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 26, 27, 32766, 32767, 32767, + 32767, 32767, 28, 32767, 29, 32767, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32766, + 32766, 6175, 32766, 32766, 32767, 32766, 32767, 32766, 32767, 35, 32767, 32767, 32766, 32767, + 32766, 32767, 4016, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 36, 32767, 32767, 32767, 5494, 32766, 32766, 32767, 32767, 3115, 32766, 32767, + 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32766, + 32767, 32767, -2365, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32766, -1324, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 37, + 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32767, 32766, 32767, 32766, 32767, 32766, + 32767, 32766, 32766, 32767, 32767, 38, 32766, 32767, 32766, 32767, 39, 32767, 40, 32767, 41, + 32767, 32767, 32767, 32767, 42, 32767, 32766, 32766, 32766, 32766, 43, 32766, 32766, 44, 32767, + 32766, 32766, 32766, 32767, -2417, 5538, 45, 32767, 32767, 32767, 32766, 32767, 32767, 32767, + 46, 47, 32766, 32767, 32767, 32766, 32767, 32767, 48, 32767, 32767, 32766, 49, 32766, 32766, + 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 50, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32766, -135, 32767, + 32767, 51, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 52, 32767, 32767, 32767, 32766, 32767, + 32767, 32767, 32766, 32767, 32766, 32767, 32766, 32767, 53, 32767, 32766, 32766, 32767, 32767, + 54, 32767, 32767, 32767, 55, 32767, 32766, 32766, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 56, 32767, 32767, 32767, 57, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 1392, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, + 249, 32767, 250, 251, 252, 253, 32767, 255, 32767, 256, 257, 258, 259, 32767, 261, 262, 32767, + 263, 264, 265, 266, 267, 268, 269, 32767, 32767, 270, 271, 272, 273, 274, 32767, 275, 276, 277, + 278, 279, 32767, 32767, 32767, 32767, 281, 282, 283, 284, 285, 286, 32767, 288, 289, 290, 291, + 32767, 292, 293, 294, 295, 296, 297, 32767, 32767, 299, 300, 32767, 32767, 301, 32767, 32767, + 32767, 32767, 32767, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32767, + 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, + 325, 326, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, + 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 32767, 32767, 347, 32767, 32767, 348, + 349, 350, 351, 352, 32767, 353, 32767, 354, 32767, 355, 32767, 32767, 32767, 358, 359, 360, + 361, 32767, 362, 32767, 363, 364, 365, 32767, 32767, 366, 32767, 367, 368, 369, 32767, 657, + 371, 32766, 32767, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, + 32767, 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, 32767, 32767, 32767, 399, + 32767, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 32767, 32767, 32767, 419, 420, 32767, 32767, 422, 32767, 32767, 424, 425, 426, 32767, + 32767, 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, 32767, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 32766, 460, 461, 32767, 32767, 32767, 463, 464, 32767, + 465, 32767, 466, 467, 468, 469, 32767, 470, 471, 472, 32767, 912, 473, 474, 475, 32767, 32767, + 476, 477, 32767, 479, 480, 32767, 482, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, + 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, + 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, 32767, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 32767, 535, 536, + 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, 546, 32767, 547, 548, 549, 550, 32767, 551, + 552, 553, 554, 555, -1123, 556, 557, 558, 559, 560, 32767, 562, 563, 564, 565, 32767, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 32767, 583, 584, + 32767, 32766, 32767, 32767, 4166, 585, 4167, 587, 588, 589, 590, 591, 592, 32767, 593, 594, + 595, 32767, 32767, 596, 597, 598, 599, 600, 32766, 601, 602, 32767, 603, 604, 605, 32767, 606, + 607, 608, 609, 4168, 32766, 610, 611, 612, 613, 614, 32766, 32767, 615, 616, 617, 618, 619, + 620, 621, 32767, 622, 32767, 624, 625, 626, 627, 32767, 32767, 628, 32766, 32766, 629, 630, + 32766, 681, 631, 632, 633, 980, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 32767, 32766, 32766, 32767, 32767, 5139, 32767, -1096, 32767, 32767, 32767, + 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 3356, 32767, 32767, 32767, + 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32767, 32766, 3497, 32766, 32767, 4111, 32767, + 32766, 32767, 981, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32766, 32767, 5140, 32767, 32767, 32766, 32766, 683, 32766, 32766, 32766, 32767, 983, + 32767, 32767, 32767, 32767, 984, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32766, 32766, 32767, 32767, 5141, 32767, 3357, 3358, 3359, 3360, 32767, 32766, 4112, 4169, + 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32767, 32767, 4170, 32767, 32767, + 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32766, 4113, 32767, 32767, + 32767, 32766, 4114, 32766, 32767, 32766, 32767, 32767, 685, 32766, 32767, 32767, 32767, 32767, + 32766, 32766, 985, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32766, 32767, 986, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 4116, 32767, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 987, 32767, 32767, 32767, 32767, 32767, 32767, + 32766, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 4117, + 32767, 988, 32767, -2466, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 4118, + 32767, 32766, 32767, 32767, 32766, 2717, 32766, 32766, 32767, 32767, 32767, 32766, 32767, + 32767, 32766, 32767, 32767, 32767, 4119, 989, 32767, 32767, 32766, 32767, 32767, 32767, 32766, + 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 4120, + 32767, 32767, 32767, 32766, 32767, 32766, 5238, 990, 991, 32766, 32767, 32767, 32766, 32767, + 32766, 32766, 4121, 32767, 32767, 32767, 694, 32766, 695, 32766, 32767, 4171, 32767, 32767, + 32767, 32766, 32767, 1299, 32766, -1123, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 3267, + 32766, 32767, 32767, 32767, 32767, 32767, 698, 32767, 32767, 1877, 32766, 32766, 32767, 32767, + 32767, 32767, 32766, 4122, 4123, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, + 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 992, 993, + 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32766, 32767, 32766, 5239, 32767, 32767, 32767, 32766, 32767, 32767, 2079, 32767, + 32766, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 4124, 4125, 32767, 32767, + 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 4126, 32767, 32766, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32767, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 235, 236, 237, 238, 239, 240, 241, 242, 243, 1607, + 244, 245, 246, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, 249, 32767, 250, 251, + 252, 253, 32767, 255, 32767, 256, 257, 258, 259, 32767, 261, 262, 32767, 263, 264, 265, 266, + 267, 268, 269, 32767, 32767, 270, 271, 272, 273, 274, 32767, 275, 276, 277, 278, 279, 32767, + 32767, 32767, 32767, 281, 282, 283, 284, 285, 286, 32767, 288, 289, 290, 291, 32767, 292, 293, + 294, 295, 296, 297, 32767, 32767, 299, 300, 32767, 32767, 301, 32767, 32767, 32767, 32767, + 32767, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32767, 312, 32767, + 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 326, 327, + 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 32767, 32767, 347, 32767, 32767, 348, 349, 350, + 351, 352, 32767, 353, 32767, 354, 32767, 355, 32767, 32767, 32767, 358, 359, 360, 361, 32767, + 362, 32767, 363, 364, 365, 32767, 32767, 366, 32767, 367, 368, 369, 32767, 657, 371, 32766, + 32767, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 32767, 388, 389, + 390, 391, 392, 393, 32767, 394, 32767, 395, 396, 32767, 32767, 32767, 399, 32767, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, + 32767, 419, 420, 32767, 32767, 422, 32767, 32767, 424, 425, 426, 32767, 32767, 427, 428, 429, + 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, 32767, 32767, + 32767, 32767, 442, 443, 32767, 444, 445, 446, 32767, 448, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 458, 459, 32767, 460, 461, 32767, 32767, 32767, 463, 464, 32767, 465, 32767, 466, + 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 473, 474, 475, 32767, 32767, 476, 477, + 32767, 479, 480, 32767, 482, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, 491, 492, + 493, 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, + 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, 32767, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 32767, 535, 536, 537, 538, + 539, 540, 541, 32767, 542, 543, 544, 545, 546, 32767, 547, 548, 549, 550, 32767, 551, 552, 553, + 554, 555, 32767, 556, 557, 558, 559, 560, 32767, 562, 563, 564, 565, 32767, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32767, + 32767, 32767, 32767, 585, 32767, 587, 588, 589, 590, 591, 592, 32767, 593, 594, 595, 32767, + 32767, 596, 597, 598, 599, 600, 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, + 609, 32767, 32767, 610, 611, 612, 613, 614, 32767, 32767, 615, 616, 617, 618, 619, 620, 621, + 32767, 622, 32767, 624, 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, + 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, + 648, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 32767, 255, 32767, 256, + 257, 258, 259, 32767, 261, 262, 32767, 263, 264, 265, 266, 267, 268, 269, 32767, 32767, 270, + 271, 272, 273, 274, 32767, 275, 276, 277, 278, 279, 32767, 32767, 32767, 32767, 281, 282, 283, + 284, 285, 286, 32767, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, 32767, + 299, 300, 32767, 32767, 301, 32767, 32767, 32767, 32767, 32767, 303, 304, 32767, 32767, 32767, + 305, 306, 307, 308, 309, 310, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, + 320, 321, 322, 323, 32767, 32767, 324, 325, 326, 327, 32767, -2511, 328, 32767, 329, 330, 331, + 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 32767, 32767, 347, 32767, 32767, 348, 349, 350, 351, 352, 32767, 353, 32767, 354, 32767, 355, + 32767, 32767, 32767, 358, 359, 360, 361, 32767, 362, 32767, 363, 364, 365, 32767, 32767, 366, + 32767, 367, 368, 369, 32767, 32766, 371, 372, 32767, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 32767, 386, 32767, 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, + 396, 32767, 32767, 32767, 399, 32767, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, 32767, 32767, 422, 32767, + 32767, 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, + 446, 32767, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, 32767, + 32767, 32767, 463, 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, 470, 471, 472, 32767, + 32767, 473, 474, 475, 32767, 32767, 476, 477, 32767, 479, 480, 32767, 482, 483, 484, 485, + 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, + 514, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 32767, 532, 533, 32767, 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, 546, + 32767, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 32767, 556, 557, 558, 559, 560, + 32767, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32767, 32767, 32767, 32767, 585, 32767, 587, + 588, 589, 590, 591, 592, 32767, 593, 594, 595, 32767, 32767, 596, 597, 598, 599, 600, 32767, + 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, + 614, 32767, 32767, 615, 616, 617, 618, 619, 620, 621, 32767, 622, 32767, 624, 625, 626, 627, + 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, 249, + 32767, 250, 251, 252, 253, 32767, 255, 32767, 256, 257, 258, 259, 32767, 261, 262, 32767, 263, + 264, 265, 266, 267, 268, 269, 32767, 32767, 270, 271, 272, 273, 274, 32767, 275, 276, 277, 278, + 279, 32767, 32767, 32767, 32767, 281, 282, 283, 284, 285, 286, 32767, 288, 289, 290, 291, + 32767, 292, 293, 294, 295, 296, 297, 32767, 32767, 299, 300, 32767, 32767, 301, 32767, 32767, + 32767, 32767, 32767, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32767, + 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, + 325, 326, 327, 32767, -2573, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, + 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 32767, 32767, 347, 32767, 32767, 348, + 349, 350, 351, 352, 32767, 353, 32767, 354, 32767, 355, 32767, 32767, 32767, 358, 359, 360, + 361, 32767, 362, 32767, 363, 364, 365, 32767, 32767, 366, 32767, 367, 368, 369, 32767, 32766, + 371, 372, 32767, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 32767, + 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, 32767, 32767, 32767, 399, 32767, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 32767, 32767, 32767, 419, 420, 32767, 32767, 422, 32767, 32767, 424, 425, 426, 32767, 32767, + 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, + 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, 32767, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, 32767, 32767, 32767, 463, 464, 32767, 465, + 32767, 466, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 473, 474, 475, 32767, 32767, + 476, 477, 32767, 479, 480, 32767, 482, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, + 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, + 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, 32767, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 32767, 535, 536, + 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, 546, 32767, 547, 548, 549, 550, 32767, 551, + 552, 553, 554, 555, 32767, 556, 557, 558, 559, 560, 32767, 562, 563, 564, 565, 32767, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 32767, 583, 584, + 32767, 4211, 32767, 32767, 32767, 585, 32767, 587, 588, 589, 590, 591, 592, 32767, 593, 594, + 595, 32767, 32767, 596, 597, 598, 599, 600, 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, + 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, 32767, 32766, 615, 616, 617, 618, 619, + 620, 621, 32766, 622, 32767, 624, 625, 626, 627, 32766, 32767, 628, 32767, 32767, 629, 630, + 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 32767, 4212, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32766, + 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 1578, 32767, 32767, 32767, + 32767, 32766, 1579, 32767, 32767, 32767, 32767, 32767, 32767, 1645, 32767, 32767, 1578, 32766, + 4213, 32767, 32767, 32767, 1579, 32767, 1578, 32767, 32767, 32767, 32766, 32767, 1579, 32767, + 32767, 32766, 4214, 32766, 1646, 1687, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32767, + 32767, 32766, 32767, 32766, 32767, 32767, 1581, 32767, 32767, 32766, 32767, 32767, 4215, 32767, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32766, 1581, 32766, 32767, 32767, 32767, + 32766, 32767, 32767, 1581, 32766, 32766, 32767, 32767, 32766, 5722, 32766, 32767, 32767, 32766, + 32766, 32767, 1647, 32767, 32766, 32766, 32767, 32766, 32767, 4216, 32766, 32767, 32767, 32767, + 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 1582, + 32766, 32766, 32767, 32766, 32766, 32767, 1583, 32766, 32767, 32766, 32767, 32767, 1584, 1688, + 5278, 1582, 32767, 32766, 1644, 32767, 32767, 32766, 1583, 1582, 5723, 32767, 32766, 5724, + 1584, 32767, 1583, 32767, 32767, 32767, 5725, 32766, 1584, 32766, 32767, 32767, 681, 32767, + 32767, 1585, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32766, 32766, 1585, 32767, 32767, 32767, 32767, 32766, 5726, 32767, 1585, 32767, + 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 1648, 32766, 32767, + 32766, 1586, 32767, 32767, 32767, 32767, 4217, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 1586, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 1586, 32766, 32767, + 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 683, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32766, 32767, 5727, 32766, 32767, 32766, 32767, 32767, + 32767, 32766, 32766, 1649, 32767, 32767, 32767, 32766, 32767, 32767, 1650, 5728, 32767, 32767, + 32767, 1651, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 5729, 32767, 32767, 32766, 32766, + 32767, 32766, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 1652, 32767, 32767, 32767, 1588, + 32767, 32767, 32767, 32767, 32766, 32767, 32766, 5149, 32766, 32767, 32766, 1689, 1589, 32766, + 32766, 1588, 32767, 32766, 32767, 1689, 32767, 32767, 1590, 1588, 32766, 32766, 32766, 32767, + 1589, 32767, 32766, 32766, 32767, 1653, 1591, 32766, 1589, 32767, 1590, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 1590, 32767, 32766, 32767, 1591, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 1591, -473, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 1654, 32767, + 32767, 1593, 1594, 1655, 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32767, + 1690, 32766, 32767, 1593, 1594, 32767, 32767, 32766, 1717, 32767, 32767, 1593, 1594, 32766, + 32767, 1656, 32767, 32766, 32767, 32766, 32767, 1657, 32767, 32767, 32766, 32766, 32766, 32767, + 32766, 3951, 32767, 32766, 32766, 32767, 32766, 32767, 1658, 32766, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 694, 32767, 695, 32767, 32767, 32767, 32767, 32767, 32766, + 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 1877, 32766, 32767, 32766, + 32767, 32766, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32766, 32767, -473, + 32767, 32767, 32767, 32767, 1596, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32766, 244, 245, + 246, 32767, 32767, 1596, 5730, 32766, 32767, 32766, 247, 248, 249, 1596, 250, 251, 252, 253, + 32767, 255, 32767, 256, 257, 258, 259, 32767, 261, 262, 32767, 263, 264, 265, 266, 267, 268, + 269, 32767, 32767, 270, 271, 272, 273, 274, 32767, 275, 276, 277, 278, 279, 32767, 32767, + 32767, 32767, 281, 282, 283, 284, 285, 286, 32767, 288, 289, 290, 291, 32767, 292, 293, 294, + 295, 296, 297, 32766, 32767, 299, 300, 32767, 32767, 301, 32767, 32767, 32767, 32767, 32767, + 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32767, 312, 32767, 313, 314, + 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 326, 327, 32767, + 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 32767, 32767, 347, 32767, 32767, 348, 349, 350, 351, 352, + 32767, 353, 32767, 354, 32767, 355, 32767, 32767, 32767, 358, 359, 360, 361, 32767, 362, 32767, + 363, 364, 365, 32767, 32767, 366, 32767, 367, 368, 369, 32767, 657, 371, 372, 32767, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 32767, 388, 389, 390, 391, 392, + 393, 32766, 394, 32767, 395, 396, 32767, 32766, 32767, 399, 32767, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, + 32767, 32767, 422, 32767, 32767, 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, 32767, 32766, 32767, 32766, 442, + 443, 32767, 444, 445, 446, 32767, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 32767, 460, 461, 32767, 32767, 32767, 463, 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, + 470, 471, 472, 32767, 32767, 473, 474, 475, 32767, 32767, 476, 477, 32767, 479, 480, 32767, + 482, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, + 512, 32767, 513, 514, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 32767, 532, 533, 32767, 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, + 544, 545, 546, 32767, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 32767, 556, 557, 558, + 559, 560, 32767, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 32767, 583, 584, 32766, 32767, 32767, 32767, 32767, 585, + 32766, 587, 588, 589, 590, 591, 592, 32767, 593, 594, 595, 32767, 32766, 596, 597, 598, 599, + 600, 32766, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, + 612, 613, 614, 32766, 32767, 615, 616, 617, 618, 619, 620, 621, 32766, 622, 32767, 624, 625, + 626, 627, 32767, 32767, 628, 32766, 32766, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, + 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 32766, 32766, 32767, + 32767, 32766, 32767, 32766, 32767, 32766, 32767, 32767, 32766, 32767, 4111, 32766, 4111, 32767, + 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, + 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 1716, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, + 4112, 32766, 4112, 32766, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 4545, 32766, 32767, 4113, 32767, 4113, + 4546, 32767, 4114, 32767, 4114, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 4547, 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32767, + 32767, 32766, 32766, 32767, 32767, 6130, 32766, 32767, 32767, 32766, 32767, 32767, 4115, 4116, + 32766, 4116, 1686, 32767, 32767, 4548, 32767, 4549, 32767, 32767, 32767, 32766, 32766, 32767, + 32766, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32766, 32766, + 4117, 32766, 4117, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 4118, 32767, 4118, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32767, + 32767, 32767, 32767, 32767, 32766, 4119, 32767, 4119, 32766, 32767, 32767, 32766, 32766, 32767, + 32767, 32766, 32767, 4550, 1227, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 4120, 32767, + 4120, 5711, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32767, + 32767, 4121, 32766, 4121, 32766, 32766, 32766, 4551, 32767, 32766, 32766, 32767, 32767, 32766, + 32767, 32767, 1299, 32766, 1299, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, + 32766, 5932, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32766, + 32767, 32767, 32767, 4122, 4123, 4122, 4123, 32767, 32767, 32767, 32767, 32766, 32766, 32767, + 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32766, + 32766, 32767, -2305, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, + 32767, 32766, 32767, 32766, 32767, 32767, 4552, 32767, 32767, 32767, 32767, 32767, 32766, + 32767, 32767, 32767, 4553, 32766, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32766, 32767, 32766, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 4124, 4125, + 4124, 4125, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 4554, 32766, 32767, 32766, 32766, + 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32766, 32767, + 32767, 4555, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 32766, 32767, 32766, 5709, 32767, 235, 236, 237, 238, 239, 240, 241, 242, 243, 1727, 244, 245, + 246, 32766, 32766, 32766, 32766, 1242, 32766, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, + 254, 255, 1243, 256, 257, 258, 1244, 260, 1245, 1246, 32767, 263, 264, 265, 266, 267, 268, 269, + 1247, 1248, 270, 271, 1249, 273, 1250, 32767, 275, 276, 277, 278, 1251, 32766, 1252, 32767, + 32766, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, + 297, 32767, 298, 299, 300, 1253, 1254, 301, 1255, 1256, 1257, 1258, 1259, 303, 304, 4556, + 32767, 32767, 305, 306, 307, 308, 1260, 1261, 311, 1262, 312, 32767, 313, 314, 315, 316, 317, + 318, 319, 32767, 320, 321, 322, 323, 1728, 32767, 324, 325, 832, 327, 32767, 32767, 328, 32767, + 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 1263, 342, + 343, 344, 345, 1264, 32767, 1265, 347, 1266, 32767, 348, 349, 350, 1267, 352, 32767, 353, + 32767, 354, 32767, 355, 356, 32767, 357, 358, 359, 360, 361, 32767, 362, 32767, 1268, 1269, + 365, 32767, 32767, 366, 32767, 367, 368, 369, 782, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 32767, 386, 387, 388, 389, 390, 391, 392, 1270, 32767, 1271, + 32767, 1272, 396, 32767, 397, 398, 399, 400, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, + 1281, 410, 1282, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 1283, 421, 32767, + 422, 423, 32767, 424, 425, 426, 1284, 1285, 427, 428, 429, 430, 1286, 32767, 431, 432, 433, + 434, 435, 436, 1287, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 1288, + 444, 445, 1289, 447, 1290, 449, 450, 451, 452, 453, 454, 455, 456, 457, 1291, 459, 1292, 460, + 461, 462, 32767, 1293, 463, 1294, 32767, 465, 1295, 1296, 467, 468, 469, 32767, 470, 471, 472, + 32767, 32767, 1297, 474, 475, 32767, 32767, 476, 477, 478, 479, 480, 481, 1298, 483, 484, 485, + 1299, 486, 1300, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 1301, 498, 499, 500, + 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 1302, 510, 511, 512, 32767, 513, + 1303, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 32767, 532, 533, 534, 535, 536, 537, 538, 539, 1304, 541, 1729, 542, 543, 544, 545, 546, + 716, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 1305, 556, 557, 558, 559, 560, 561, + 562, 563, 1306, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, + 579, 580, 1307, 582, 32767, 583, 584, 1308, 32767, 32767, 1730, 32767, 585, 586, 587, 588, 589, + 590, 591, 592, 32767, 593, 1310, 1311, 32767, 32767, 596, 597, 1312, 599, 1313, 1314, 601, 602, + 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 1315, 610, 611, 612, 613, 614, 1316, + 32767, 615, 616, 617, 618, 619, 620, 1317, 32766, 622, 623, 624, 625, 626, 627, 32767, 32767, + 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 1318, 634, 1319, 1320, 1321, 1322, + 639, 1323, 1324, 1325, 1326, 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 1737, 244, 245, 246, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 247, 248, 249, 1745, 250, + 251, 252, 253, 254, 255, 32767, 256, 257, 258, 259, 260, 261, 262, 1746, 263, 264, 265, 266, + 267, 268, 269, 1747, 1748, 270, 271, 272, 273, 274, 1749, 275, 276, 277, 278, 279, 1750, 280, + 32767, 1751, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 1752, 292, 293, 294, 295, + 296, 297, 1753, 298, 299, 300, 1754, 1755, 301, 1756, 302, 1757, 1758, 1759, 303, 304, 32767, + 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 1760, 312, 1761, 313, 314, 315, 316, 317, 318, + 319, 1762, 320, 321, 322, 323, 1763, 1764, 324, 325, 326, 327, 32767, 32767, 328, 1765, 329, + 330, 331, 332, 1766, 333, 32767, 334, 335, 336, 1767, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 32767, 1768, 347, 32767, 1769, 348, 349, 350, 351, 352, 1770, 353, 1771, 354, 32767, + 355, 356, 1772, 357, 358, 359, 360, 361, 1773, 362, 32767, 363, 364, 365, 1774, 32767, 366, + 1775, 367, 368, 369, 32767, 1776, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 1777, 386, 387, 388, 389, 390, 391, 392, 393, 1778, 394, 1779, 395, 396, 1780, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 1781, 32767, 1782, 419, 420, 421, 32767, 422, 423, 1783, 424, 425, 426, 1784, + 1785, 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 1786, 460, 461, 462, 32767, 32767, 463, 464, 32767, + 465, 1787, 466, 467, 468, 469, 1788, 470, 471, 472, 1789, 1790, 473, 474, 475, 1791, 1792, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, 491, 492, + 493, 1793, 494, 495, 496, 497, 498, 499, 500, 501, 502, 1794, 503, 504, 505, 506, 507, 508, + 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, 1795, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 1796, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 32767, 542, 543, 544, 545, 546, 32767, 547, 548, 549, 550, 1797, 551, 552, 553, 554, + 555, 1798, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 1799, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 1800, 583, 584, 1801, 32767, 32767, + 1802, 1803, 585, 586, 587, 588, 589, 590, 591, 592, 1804, 593, 594, 595, 1805, 1806, 596, 597, + 598, 599, 600, 1807, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 1808, 1809, + 610, 611, 612, 613, 614, 1810, 1811, 615, 616, 617, 618, 619, 620, 621, 1812, 622, 623, 624, + 625, 626, 627, 1813, 1814, 628, 1815, 32766, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, + 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 1242, 32767, 32767, 247, + 248, 249, 32767, 250, 251, 252, 253, 254, 255, 1243, 256, 257, 258, 1244, 260, 1245, 1246, + 32767, 263, 264, 265, 266, 267, 268, 269, 1247, 1248, 270, 271, 1249, 273, 1250, 32767, 275, + 276, 277, 278, 1251, 32767, 1252, 32767, 32767, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, 298, 299, 300, 1253, 1254, 301, 1255, + 1256, 1257, 1258, 1259, 303, 304, 32767, -2331, 32767, 305, 306, 307, 308, 1260, 1261, 311, + 1262, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, + 324, 325, 832, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, + 336, 32767, 337, 338, 339, 340, 1263, 342, 343, 344, 345, 1264, 32767, 1265, 347, 1266, 32767, + 348, 349, 350, 1267, 352, 32767, 353, 32767, 354, 32767, 355, 356, 32767, 357, 358, 359, 360, + 361, 32767, 362, 32767, 1268, 1269, 365, 32767, 32767, 366, 32767, 367, 368, 369, 782, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 387, + 388, 389, 390, 391, 392, 1270, 32767, 1271, 32767, 1272, 396, 32767, 397, 398, 399, 400, 1273, + 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 410, 1282, 412, 413, 414, 415, 416, 417, 418, + 32767, 32767, 32767, 419, 1283, 421, 32767, 422, 423, 32767, 424, 425, 426, 1284, 1285, 427, + 428, 429, 430, 1286, 32767, 431, 432, 433, 434, 435, 436, 1287, 438, 439, 440, 441, 32767, + 32767, 32767, 32767, 32767, 442, 443, 1288, 444, 445, 1289, 447, 1290, 449, 450, 451, 452, 453, + 454, 455, 456, 457, 1291, 459, 1292, 460, 461, 462, 32767, 1293, 463, 1294, 32767, 465, 1295, + 1296, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 1297, 474, 475, 32767, 32767, 476, + 477, 478, 479, 480, 481, 1298, 483, 484, 485, 1299, 486, 1300, 487, 488, 489, 490, 491, 492, + 493, 32767, 494, 495, 496, 1301, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, + 509, 32767, 1302, 510, 511, 512, 32767, 513, 1303, 515, 516, 517, 32767, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 534, 535, 536, 537, 538, + 539, 1304, 541, 32767, 542, 543, 544, 545, 546, 716, 547, 548, 549, 550, 32767, 551, 552, 553, + 554, 555, 1305, 556, 557, 558, 559, 560, 561, 562, 563, 1306, 565, 32767, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 1307, 582, 32767, 583, 584, 1308, 32767, + 32767, 32767, 32767, 585, 586, 587, 588, 589, 590, 591, 592, 32767, 593, 1310, 1311, 32767, + 32767, 596, 597, 1312, 599, 1313, 1314, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, + 609, 32767, 1315, 610, 611, 612, 613, 614, 1316, 32767, 615, 616, 617, 618, 619, 620, 1317, + 32767, 622, 623, 624, 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, + 631, 632, 633, 1318, 634, 1319, 1320, 1321, 1322, 639, 1323, 1324, 1325, 32766, 644, 645, 646, + 647, 648, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, + 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32767, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 254, 255, + 32767, 256, 257, 258, 259, 260, 261, 262, 32767, 263, 264, 265, 266, 267, 268, 269, 32767, + 32767, 270, 271, 272, 273, 274, 32767, 275, 276, 277, 278, 279, 32767, 280, 32767, 32767, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, + 298, 299, 300, 32767, 32767, 301, 32767, 302, 32767, 32767, 32767, 303, 304, 32767, 32767, + 32766, 305, 306, 307, 308, 309, 310, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, 318, 319, + 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 326, 327, 32767, 32767, 328, 32767, 329, + 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 32767, 1828, 347, 1602, 32767, 348, 349, 350, 351, 352, 32767, 353, 32767, 354, + 32767, 355, 356, 32767, 357, 358, 359, 360, 361, 32767, 362, 32767, 363, 364, 365, 32767, + 32767, 366, 32767, 367, 368, 369, 782, 966, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 32767, 386, 387, 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, + 396, 32767, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, 421, 32767, 422, 423, 32767, 424, + 425, 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 1603, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, 462, 32767, 32767, 463, + 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, 470, 471, 472, 1829, 32767, 473, 474, 475, + 32767, 32767, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 32767, 486, 32767, 487, 488, + 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, 32767, 503, 504, + 505, 506, 507, 508, 509, 32767, 1604, 510, 511, 512, 32767, 513, 514, 515, 516, 517, 32767, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 32766, 542, 543, 544, 545, 546, 716, 547, 548, 549, 550, + 32767, 551, 552, 553, 554, 555, 32767, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 32767, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 32767, + 583, 584, 32767, 32767, 32767, 32767, 32767, 585, 586, 587, 588, 589, 590, 591, 592, 32767, + 593, 594, 595, 32767, 32767, 596, 597, 598, 599, 600, 1830, 601, 602, 32767, 603, 604, 605, + 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, 32767, 32767, 615, 616, 617, + 618, 619, 620, 621, 32767, 622, 623, 624, 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, + 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 32767, 255, + 32767, 256, 257, 258, 259, 32767, 261, 262, 32767, 263, 264, 265, 266, 267, 268, 269, 32767, + 32767, 270, 271, 272, 273, 274, 32767, 275, 1845, 277, 278, 279, 32767, 32767, 32767, 32767, + 281, 282, 283, 284, 285, 286, 32767, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, + 32767, 32767, 299, 300, 32767, 32767, 301, 32767, 32767, 32767, 32767, 32767, 303, 304, 980, + 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, + 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 326, 327, 32767, 32767, 328, + 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 981, 32767, 32766, 32767, 32767, 348, 349, 350, 351, 352, 32767, 353, + 32767, 354, 32767, 355, 32767, 32767, 32767, 358, 359, 360, 361, 32767, 362, 983, 363, 364, + 365, 32767, 984, 366, 32767, 367, 368, 369, 32767, 657, 371, 372, 32767, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 32767, 388, 389, 390, 391, 392, 393, 32767, + 394, 32767, 395, 396, 32767, 32767, 32767, 399, 32767, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, 32767, 985, + 422, 32767, 32767, 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32767, 986, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 987, 444, + 445, 446, 32767, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, + 32767, 988, 32767, 463, 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, 470, 471, 472, + 32767, 32767, 473, 474, 475, 32767, 32767, 476, 477, 32767, 479, 480, 32767, 482, 483, 484, + 485, 989, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 990, 991, 510, 511, 512, 32767, 513, + 514, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 32767, 532, 533, 32767, 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, 546, + 32767, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 32767, 556, 557, 558, 559, 560, + 32767, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32767, 992, 993, 32767, 585, 32767, 587, 588, + 589, 590, 591, 592, 32767, 593, 594, 595, 32767, 32767, 596, 597, 598, 599, 600, 32767, 601, + 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, + 32767, 32767, 615, 616, 617, 618, 619, 620, 621, 32767, 622, 32767, 624, 625, 626, 627, 32767, + 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, 637, + 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, + 1865, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32766, 32767, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32767, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, + 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 6134, 32766, 32766, 32767, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 1578, 32766, 32766, + 32767, 32767, 32767, 1579, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 1581, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, + 32766, 32766, 6135, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, + 32766, 32767, 1901, 32766, 32766, 32767, 1582, 32766, 32767, 32767, 32767, 32767, 32767, 1583, + 32767, 32766, 32766, 32767, 32767, 1584, 32767, 32767, 32767, 32766, 32767, 32766, 32767, + 32767, 32767, 32766, 32767, 1902, 32766, 32766, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 1585, 32766, 32766, + 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32767, + 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32767, 32767, + 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32767, 32766, 3949, 32767, 1586, 32767, 32766, + 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32766, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, + 32766, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 5848, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32767, + 32766, 32767, 32767, 32766, 32767, 32766, 32767, 32766, 32767, 32767, 32766, 5689, 32767, + 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 1689, 32766, 32767, + 32767, 1588, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, + 32767, 1589, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 1590, 5436, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 5690, 32767, 32766, 1591, 32767, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32767, + 32767, 32767, 32766, 1238, 32767, 32767, 32767, 5691, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32767, + 32767, 5692, 2807, 32767, 32767, 1593, 1594, 5693, 32767, 32767, 32766, 32767, 32767, 32767, + 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, -1691, + 32767, 32767, 32767, 32767, 5694, 32767, 32766, 32767, 32767, 5695, 32767, 32767, 32766, 32766, + 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32767, 5696, + 32767, 32766, 32767, 32767, 32766, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32766, + 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 1596, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 1913, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 5709, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 5697, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 5698, 32766, 32767, 32766, + 32767, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 4445, 32767, 32767, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, + 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 4545, 32767, 32766, 32767, + 32766, 32767, 4546, 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 4547, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32766, + 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 4548, 32767, 4549, 32766, 32767, + 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32766, 5104, 32767, 32766, + 32767, 32767, 32766, 32766, 5636, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, + 32767, 32767, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 4550, 32766, 32767, + 32767, 32767, 32766, 32766, 32766, 2806, 32767, 32766, 32767, 32766, 32767, 32767, 32766, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32767, + 32767, 32767, 32767, 4551, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32767, 32767, + 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32766, 32767, 32766, 32767, 32766, + 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32767, 32767, 32767, + 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, + 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32766, + 32767, 32767, 32767, 32767, 32767, 4552, 32766, 32767, 32767, 32767, 32766, 32766, 32767, + 32767, 32767, 4553, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, + 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 4554, 32767, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32767, 32766, 32767, 32766, + 32767, 32766, 4555, 32766, 32767, 32766, 32767, 32766, 5612, 32766, 32766, 32766, 32767, 32766, + 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32767, 32767, + 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, + 32766, 32766, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 4556, 32766, 32767, 32767, + 32767, 32767, 32767, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 32767, + 32767, 32766, 32766, 32767, 32767, 32766, 247, 248, 249, 32766, 250, 251, 252, 253, 32766, 255, + 32766, 256, 257, 258, 259, 32767, 261, 262, 32766, 263, 264, 265, 266, 267, 268, 269, 32767, + 32767, 270, 271, 272, 273, 274, 32767, 275, 276, 277, 278, 279, 32767, 32767, 32767, 32767, + 281, 282, 283, 284, 285, 286, 32767, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, + 32767, 32767, 299, 300, 32767, 32767, 301, 32767, 32767, 32767, 32767, 1632, 303, 304, 32767, + 1633, 32767, 305, 306, 307, 308, 309, 310, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, + 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 326, 327, 32767, -2511, 328, + 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 32767, 32767, 347, 32767, 32767, 348, 349, 350, 351, 352, 32767, 353, + 32767, 354, 32767, 355, 32767, 32767, 32767, 358, 359, 360, 361, 32767, 362, 32767, 363, 364, + 365, 32767, 32767, 366, 32767, 367, 368, 369, 32767, 657, 371, 32766, 32767, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 32767, 388, 389, 390, 391, 392, 393, + 32767, 394, 32767, 395, 396, 32767, 32767, 32767, 399, 32767, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, + 32767, 32767, 422, 32767, 32767, 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, + 443, 32767, 444, 445, 446, 32767, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 32767, 460, 461, 32767, 32767, 32767, 463, 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, + 470, 471, 472, 32767, 32767, 473, 474, 475, 32767, 32767, 476, 477, 32767, 479, 480, 32767, + 482, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, + 512, 32767, 513, 514, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 32767, 532, 533, 32767, 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, + 544, 545, 546, 32767, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 32767, 556, 557, 558, + 559, 560, 32767, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32767, 32767, 32767, 32767, 585, + 32767, 587, 588, 589, 590, 591, 592, 32767, 593, 594, 595, 32767, 32767, 596, 597, 598, 599, + 600, 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, + 612, 613, 614, 32767, 32767, 615, 616, 617, 618, 619, 620, 621, 32767, 622, 32767, 624, 625, + 626, 627, 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, + 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 247, + 248, 249, 32767, 250, 251, 252, 253, 32767, 255, 32767, 256, 257, 258, 259, 32767, 261, 262, + 32767, 263, 264, 265, 266, 267, 268, 269, 32767, 32767, 270, 271, 272, 273, 274, 32767, 275, + 276, 277, 278, 279, 32767, 32767, 32767, 32767, 281, 282, 283, 284, 285, 286, 32767, 288, 289, + 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, 32767, 299, 300, 32767, 32767, 301, + 32767, 32767, 32767, 32767, 32767, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 309, 310, + 311, 32767, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, + 32767, 324, 325, 326, 327, 32767, -2573, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, + 334, 335, 336, 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 32767, 32767, 347, + 32767, 32767, 348, 349, 350, 351, 352, 32767, 353, 32767, 354, 32767, 355, 32767, 32767, 32767, + 358, 359, 360, 361, 32767, 362, 32767, 363, 364, 365, 32767, 32767, 366, 32767, 367, 368, 369, + 32767, 657, 371, 32766, 32767, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 32767, 386, 32767, 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, 32767, 32767, + 32767, 399, 32767, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 32767, 32767, 32767, 419, 420, 32767, 32767, 422, 32767, 32767, 424, 425, 426, + 32767, 32767, 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, 32767, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, 32767, 32767, 32767, 463, + 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 473, 474, 475, + 32767, 32767, 476, 477, 32767, 479, 480, 32767, 482, 483, 484, 485, 32767, 486, 32767, 487, + 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, 32767, 503, + 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, + 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, + 32767, 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, 546, 32767, 547, 548, 549, + 550, 32767, 551, 552, 553, 554, 555, 32767, 556, 557, 558, 559, 560, 32767, 562, 563, 564, 565, + 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 32767, 583, 584, 32767, 32767, 32767, 32767, 32767, 585, 32767, 587, 588, 589, 590, 591, 592, + 32767, 593, 594, 595, 32767, 32767, 596, 597, 598, 599, 600, 32767, 601, 602, 32767, 603, 604, + 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, 32767, 32767, 615, 616, + 617, 618, 619, 620, 621, 32767, 622, 32767, 624, 625, 626, 627, 32767, 32767, 628, 32767, + 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645, 646, 647, 648, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, + 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 923, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 235, 236, 237, 238, 239, 240, 241, 242, 243, 2006, 244, 245, + 246, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, + 32767, 255, 32767, 256, 257, 258, 259, 32767, 261, 262, 32767, 263, 264, 265, 266, 267, 268, + 269, 32767, 32767, 270, 271, 272, 273, 274, 32767, 275, 276, 277, 278, 279, 32767, 32767, + 32767, 32767, 281, 282, 283, 284, 285, 286, 32767, 288, 289, 290, 291, 32767, 292, 293, 294, + 295, 296, 297, 32767, 32767, 299, 300, 32767, 32767, 301, 32767, 32767, 32767, 32767, 32767, + 303, 304, 32767, 32767, 32767, 2007, 306, 307, 308, 309, 310, 311, 32767, 312, 32767, 313, 314, + 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 2008, 326, 327, 32767, + 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 32767, 32767, 347, 32767, 32767, 348, 349, 350, 351, 352, + 32767, 353, 2009, 354, 32767, 355, 32767, 32767, 32767, 2010, 359, 360, 361, 32767, 362, 32767, + 363, 364, 365, 32767, 32767, 366, 32767, 367, 368, 369, 32767, 657, 371, 372, 32767, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 32767, 388, 389, 390, 391, 392, + 393, 32767, 394, 32767, 395, 396, 32767, 32767, 32767, 399, 32767, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 2011, 2012, 418, 32767, 32767, 32767, 419, + 420, 32767, 32767, 422, 32767, 32767, 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32767, + 32767, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, 32767, 32767, 32767, + 32767, 442, 443, 32767, 444, 445, 446, 32767, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 32767, 460, 461, 32767, 32767, 32767, 463, 464, 32767, 465, 32767, 466, 467, 468, + 469, 32767, 470, 471, 472, 32767, 32767, 473, 474, 475, 32767, 32767, 476, 477, 32767, 479, + 480, 32767, 482, 483, 484, 485, 32767, 486, 32767, 2013, 488, 489, 490, 491, 492, 493, 32767, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 2014, 507, 508, 509, 32767, + 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 32767, 535, 536, 537, 2015, 539, 540, 541, + 32767, 542, 543, 544, 2016, 546, 32767, 547, 548, 549, 550, 32767, 2017, 552, 553, 554, 555, + 32767, 556, 557, 558, 559, 560, 32767, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32767, 32767, + 32767, 2018, 585, 32767, 2019, 588, 589, 590, 591, 592, 32767, 593, 594, 595, 32767, 32767, + 596, 597, 598, 599, 600, 32767, 601, 602, 32767, 603, 32766, 605, 32767, 606, 607, 608, 609, + 32767, 32767, 610, 611, 612, 613, 614, 32767, 32767, 615, 616, 617, 618, 619, 620, 621, 32767, + 622, 32767, 624, 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, + 632, 633, 32767, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, 796, 246, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 32767, 255, 32767, 256, 257, + 258, 259, 32767, 261, 262, 32767, 263, 264, 265, 266, 267, 268, 269, 32767, 32767, 270, 271, + 272, 273, 274, 32767, 275, 276, 277, 278, 279, 32767, 32767, 32767, 32767, 281, 282, 283, 284, + 285, 286, 32767, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 797, 32767, 299, 300, + 32767, 32767, 301, 32767, 32767, 32767, 32767, 32767, 303, 304, 32767, 32767, 32767, 305, 306, + 307, 308, 309, 310, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, + 322, 323, 32767, 32767, 324, 325, 326, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, + 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 32767, 32767, 347, 32767, 32767, 348, 349, 350, 351, 352, 32767, 353, 32767, 354, 32767, 355, + 32767, 32767, 32767, 358, 359, 360, 361, 32767, 362, 32767, 363, 364, 365, 32767, 32767, 366, + 32767, 367, 368, 369, 32767, 657, 371, 372, 32767, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 32767, 386, 32767, 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, + 32767, 32767, 32767, 399, 32767, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, 32767, 32767, 422, 32767, 32767, + 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, + 32767, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, 32767, + 32767, 32767, 463, 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, 470, 471, 472, 32767, + 32767, 473, 474, 475, 32767, 32767, 476, 477, 32767, 479, 480, 32767, 482, 483, 484, 485, + 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, + 514, 515, 516, 517, 798, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 32767, 532, 533, 32767, 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, 546, + 32767, 547, 548, 549, 550, 32766, 551, 552, 553, 554, 555, 32767, 556, 557, 558, 559, 560, + 32767, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32767, 32767, 32767, 32767, 585, 32767, 587, + 588, 589, 590, 591, 592, 32767, 593, 594, 595, 32767, 32767, 596, 597, 598, 599, 600, 32767, + 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, + 614, 32767, 32767, 615, 616, 617, 618, 619, 620, 621, 32767, 622, 32767, 624, 625, 626, 627, + 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, -1950, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, -1950, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, -1979, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, -1979, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, -1979, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 1359, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, -1957, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + -1957, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 1242, + 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 254, 255, 1243, 256, 257, 258, 1244, + 260, 1245, 1246, 32767, 263, 264, 265, 266, 267, 268, 269, 1247, 1248, 270, 271, 1249, 273, + 1250, 32767, 275, 276, 277, 278, 1251, 32767, 1252, 32767, 32767, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, 298, 299, 300, 1253, 1254, + 301, 1255, 1256, 1257, 1258, 1259, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 1260, + 1261, 311, 1262, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, + 32767, 32767, 324, 325, 832, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, + 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 1263, 342, 343, 344, 345, 1264, 32767, 1265, + 347, 1266, 32767, 348, 349, 350, 1267, 352, 32767, 353, 32767, 354, 32767, 355, 356, 32767, + 357, 358, 359, 360, 361, 32767, 362, 32767, 1268, 1269, 365, 32767, 32767, 366, 32767, 367, + 368, 369, 782, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 32767, 386, 387, 388, 389, 390, 391, 392, 1270, 32767, 1271, 32767, 1272, 396, 32767, 397, 398, + 399, 400, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 410, 1282, 412, 413, 414, 415, + 416, 417, 418, 32767, 32767, 32767, 419, 1283, 421, 32767, 422, 423, 32767, 424, 425, 426, + 1284, 1285, 427, 428, 429, 430, 1286, 32767, 431, 432, 433, 434, 435, 436, 1287, 438, 439, 440, + 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 1288, 444, 445, 1289, 447, 1290, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 1291, 459, 1292, 460, 461, 462, 32767, 1293, 463, 1294, + 32767, 465, 1295, 1296, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 1297, 474, 475, + 32767, 32767, 476, 477, 478, 479, 480, 481, 1298, 483, 484, 485, 1299, 486, 1300, 487, 488, + 489, 490, 491, 492, 493, 32767, 494, 495, 496, 1301, 498, 499, 500, 501, 502, 32767, 503, 504, + 505, 506, 507, 508, 509, 32767, 1302, 510, 511, 512, 32767, 513, 1303, 515, 516, 517, 32767, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 534, + 535, 536, 537, 538, 539, 1304, 541, 32767, 542, 543, 544, 545, 546, 716, 547, 548, 549, 550, + 32767, 551, 552, 553, 554, 555, 1305, 556, 557, 558, 559, 560, 561, 562, 563, 1306, 565, 32767, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 1307, 582, 32767, + 583, 584, 1308, 32767, 32767, 32767, 32767, 585, 586, 587, 588, 589, 590, 591, 592, 32767, 593, + 1310, 1311, 32767, 32767, 596, 597, 1312, 599, 1313, 1314, 601, 602, 32767, 603, 604, 605, + 32767, 606, 607, 608, 609, 32767, 1315, 610, 611, 612, 613, 614, 1316, 32767, 615, 616, 617, + 618, 619, 620, 1317, 32767, 622, 623, 624, 625, 626, 627, -2323, 32767, 628, 32767, 32767, 629, + 630, 32767, 32767, 631, 632, 633, 1318, 634, 1319, 1320, 1321, 1322, 639, 1323, 1324, 1325, + 32766, 644, 645, 646, 647, 648, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 2040, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, -2873, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, -2873, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, -2873, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, -2873, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, -2873, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2042, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2043, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 1363, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, -1946, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, -1946, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 29, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2045, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 1367, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, -1959, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, -1959, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2046, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 2047, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, -1948, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, -1948, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, -1984, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, -1984, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, -1984, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + -1947, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, -1947, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 2048, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, -2004, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, -2004, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 2049, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 2050, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2051, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2052, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2053, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2054, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2055, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2056, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 2057, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 2058, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 2059, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 2060, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, + 32767, 32767, 32767, 32767, 1242, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 254, + 255, 1243, 256, 257, 258, 1244, 260, 1245, 1246, 32767, 263, 264, 265, 266, 267, 268, 269, + 1247, 1248, 270, 271, 1249, 273, 1250, 32767, 275, 276, 277, 278, 1251, 32767, 1252, 32767, + 32767, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, + 297, 32767, 298, 299, 300, 1253, 1254, 301, 1255, 1256, 1257, 1258, 1259, 303, 304, 32767, + 32767, 32767, 305, 306, 307, 308, 1260, 1261, 311, 1262, 312, 32767, 313, 314, 315, 316, 317, + 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 832, 327, 32767, 32767, 328, + 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 1263, + 342, 343, 344, 345, 1264, 32767, 1265, 347, 1266, 32767, 348, 349, 350, 1267, 352, 32767, 353, + 32767, 354, 32767, 355, 356, 32767, 357, 358, 359, 360, 361, 32767, 362, 32767, 1268, 1269, + 365, 32767, 32767, 366, 32767, 367, 368, 369, 782, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 32767, 386, 387, 388, 389, 390, 391, 392, 1270, 32767, 1271, + 32767, 1272, 396, 32767, 397, 398, 399, 400, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, + 1281, 410, 1282, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 1283, 421, 32767, + 422, 423, 32767, 424, 425, 426, 1284, 1285, 427, 428, 429, 430, 1286, 32767, 431, 432, 433, + 434, 435, 436, 1287, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 1288, + 444, 445, 1289, 447, 1290, 449, 450, 451, 452, 453, 454, 455, 456, 457, 1291, 459, 1292, 460, + 461, 462, 32767, 1293, 463, 1294, 32767, 465, 1295, 1296, 467, 468, 469, 32767, 470, 471, 472, + 32767, 32767, 1297, 474, 475, 32767, 32767, 476, 477, 478, 479, 480, 481, 1298, 483, 484, 485, + 1299, 486, 1300, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 1301, 498, 499, 500, + 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 1302, 510, 511, 512, 32767, 513, + 1303, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 32767, 532, 533, 534, 535, 536, 537, 538, 539, 1304, 541, 32767, 542, 543, 544, 545, 546, + 716, 547, 548, 549, 550, 47, 551, 552, 553, 554, 555, 1305, 556, 557, 558, 559, 560, 561, 562, + 563, 1306, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 1307, 582, 32767, 583, 584, 1308, 32767, 32767, 32767, 51, 585, 586, 587, 588, 589, 590, + 591, 592, 32767, 593, 1310, 1311, 32767, 32767, 596, 597, 1312, 599, 1313, 1314, 601, 602, + 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 1315, 610, 611, 612, 613, 614, 1316, + 32767, 615, 616, 617, 618, 1202, 620, 1317, 32767, 622, 623, 624, 625, 626, 627, 32767, 32767, + 628, 32767, 56, 629, 630, 32767, 57, 631, 632, 633, 1318, 634, 1319, 1320, 1321, 1322, 639, + 1323, 1324, 1325, 32766, 644, 645, 646, 647, 648, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2064, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 1369, 32766, 1370, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2066, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2069, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2070, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2071, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32767, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 2073, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, -1951, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, -1951, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 2075, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, -1949, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, -1949, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 2076, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 1374, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, -1987, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, -1987, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 1375, 1376, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 1378, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, -1987, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, -1987, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 1375, 1376, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 2077, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2078, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, -1974, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, -1974, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, -1974, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2081, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2082, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2083, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2084, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 2085, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 2086, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 2087, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 2088, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 1039, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 1040, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, + 2105, 2106, 2107, 2108, 2109, 2110, 2111, 32767, 2112, 2113, 2114, 2115, 2116, 2117, 2118, + 2119, 2120, 2121, 2122, 2123, 32767, 2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, + 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 32767, 2143, 32767, 2144, 2145, + 2146, 2147, 2148, 2149, 2150, 2151, 32767, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, + 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 32766, 2171, 2172, 2173, + 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 32767, 32766, 2185, 2186, + 32767, 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, + 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 32766, 32767, 2212, 2213, + 2214, 2215, 2216, 2217, 2218, 2219, 32767, 2220, 2221, 2222, 32766, 2223, 2224, 2225, 2226, + 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 32767, 32766, 32767, 2236, 2237, 2238, + 2239, 32766, 2240, 2241, 2242, 32766, 2243, 2244, 32766, 2245, 2246, 2247, 2248, 2249, 32766, + 2250, 2251, 2252, 2253, 2254, 32766, 2255, 2256, 32766, 2257, 2258, 32767, 32767, 2259, 2260, + 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, + 2277, 2278, 2279, 2280, 2281, 2282, 2283, 32766, 2284, 32766, 2285, 2286, 2287, 2288, 2289, + 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, + 2306, 2307, 2308, 2309, 2310, 32767, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 32766, 2318, + 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 32767, 2327, 2328, 2329, 2330, 2331, 2332, + 2333, 2334, 2335, 32767, 2336, 2337, 32767, 32767, 32767, 32767, 32767, 32767, 2338, 2339, + 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, + 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 32767, 2364, 2365, 2366, 2367, 2368, 2369, + 32766, 2370, 2371, 2372, 32766, 2373, 2374, 2375, 2376, 2377, 32766, 2378, 2379, 2380, 2381, + 32767, 32767, 2382, 2383, 2384, 2385, 2386, 2387, 32767, 2388, 2389, 2390, 2391, 2392, 2393, + 2394, 2395, 2396, 2397, 2398, 2399, 2400, 32767, 2401, 2402, 2403, 2404, 2405, 2406, 2407, + 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 32767, 2417, 2418, 2419, 2420, 2421, + 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430, 2431, 2432, 2433, 2434, 2435, 2436, + 32766, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 32766, 2447, 2448, 2449, + 2450, 2451, 32767, 2452, 2453, 32767, 2454, 2455, 2456, 2457, 2458, 2459, 2460, 2461, 2462, + 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, + 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, + 32766, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, + 2508, 32767, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, + 32767, 2522, 2523, 2524, 2525, 32766, 2526, 2527, 2528, 2529, 2530, 2531, 2532, 2533, 2534, + 2535, 2536, 2537, 2538, 2539, 2540, 2541, 32767, 2542, 2543, 2544, 2545, 2546, 2547, 32766, + 2548, 32766, 32766, 32767, 32767, 32767, 32767, 2549, 2550, 2551, 32767, 2552, 2553, 2554, + 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 32767, 2564, 2565, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 2571, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 2575, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2579, + 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 5533, 32767, 32767, 32767, 32767, + 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32767, + 32767, 32767, 32766, 32766, 32767, 32766, 32767, 5534, 32767, 32766, 32766, 32766, 32766, + 32767, 5535, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, + 32766, 32766, 32767, 5536, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32766, 32766, + 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 933, 32767, 32766, 32767, 2627, 32767, 32767, 32766, 32767, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 6001, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, + 32766, 5537, 32766, 32767, 32766, 32766, 6266, 6002, 32766, 32766, 32766, 32767, 32767, 32767, + 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 3521, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, + 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, + 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, 3522, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 5538, 32767, 32767, 32767, 32766, + 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 5539, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2584, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 1359, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 2589, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2595, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2596, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2598, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2599, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 2601, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 2602, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 2603, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 1737, 244, 245, 246, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 247, 248, 249, 1745, 250, 251, + 252, 253, 254, 255, 32767, 256, 257, 258, 259, 260, 261, 262, 1746, 263, 264, 265, 266, 267, + 268, 269, 1747, 1748, 270, 271, 272, 273, 274, 1749, 275, 276, 277, 278, 279, 1750, 280, 32767, + 1751, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 1752, 292, 293, 294, 295, 296, + 297, 1753, 298, 299, 300, 1754, 1755, 301, 1756, 302, 1757, 1758, 1759, 303, 304, 32767, 32767, + 32767, 305, 306, 307, 308, 309, 310, 311, 1760, 312, 1761, 313, 314, 315, 316, 317, 318, 319, + 1762, 320, 321, 322, 323, 1763, 1764, 324, 325, 326, 327, 32767, 32767, 328, 1765, 329, 330, + 331, 332, 1766, 333, 32767, 334, 335, 336, 1767, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 32767, 1768, 347, 32767, 1769, 348, 349, 350, 351, 352, 1770, 353, 1771, 354, 32767, 355, + 356, 1772, 357, 358, 359, 360, 361, 1773, 362, 32767, 363, 364, 365, 1774, 32767, 366, 1775, + 367, 368, 369, 32767, 1776, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 1777, 386, 387, 388, 389, 390, 391, 392, 393, 1778, 394, 1779, 395, 396, 1780, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 1781, 32767, 1782, 419, 420, 421, 32767, 422, 423, 1783, 424, 425, 426, 1784, 1785, + 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, + 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 455, 456, 457, 458, 459, 1786, 460, 461, 462, 32767, 32767, 463, 464, 32767, 465, 1787, + 466, 467, 468, 469, 1788, 470, 471, 472, 1789, 1790, 473, 474, 475, 1791, 1792, 476, 477, 478, + 479, 480, 481, 482, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 1793, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 1794, 503, 504, 505, 506, 507, 508, 509, 32767, + 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, 1795, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 1796, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 32767, 542, 543, 544, 545, 546, 32767, 547, 548, 549, 550, 1797, 551, 552, 553, 554, 555, 1798, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 1799, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 1800, 583, 584, 1801, 32767, 32767, 32767, 1803, + 585, 586, 587, 588, 589, 590, 591, 592, 1804, 593, 594, 595, 1805, 1806, 596, 597, 598, 599, + 600, 1807, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 1808, 1809, 610, 611, + 612, 613, 614, 1810, 1811, 615, 616, 617, 618, 619, 620, 621, 1812, 622, 623, 624, 625, 626, + 627, 1813, 1814, 628, 1815, 32766, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 2605, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 1363, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 1913, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, + 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, + 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, + 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, + 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, + 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, + 32767, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, + 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, + 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32766, + 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, + 32767, 32767, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 1913, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32767, 32767, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32767, + 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 1645, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 1646, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 1647, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 2579, 32767, + 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 4111, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32767, + 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 6248, + 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32766, 32767, 32767, 32766, 1648, 32766, 32767, 32766, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, 32766, 4112, 32767, 32766, 32767, 32767, 32767, 32767, 6249, 36, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32767, + 32766, 32767, 4113, 32767, 32767, 32767, 32767, 4114, 32767, 32766, 32767, 2627, 32767, 32767, + 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 1649, + 32767, 4066, 32767, 32766, 32766, 32767, 1650, 32766, 32767, 32767, 32767, 1651, 32766, 32767, + 32767, 32767, 32766, 32767, 4116, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 2953, 32767, 32767, 32767, 32767, 32767, 32767, + 32766, 32767, 32767, 32767, 32767, 32766, 4117, 32767, 32766, 32767, 32767, 32767, 32766, + 32767, 32766, 32767, 32767, 32767, 32767, 32767, 4118, 32767, 32767, 32767, 32767, 32767, + 32767, 32766, 47, 32767, 32766, 1653, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 4119, + 32766, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, + 32767, 32767, 32766, 32767, 32766, 32767, 32767, 4120, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 51, 32767, 32767, 32766, 32767, 32767, 1881, 4121, 32767, 32767, + 32767, 32767, 32767, 32767, 1655, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 1299, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, + 32766, 32766, 32766, 1656, 32766, 32767, 32767, 32766, 55, 32766, 32767, 32766, 32767, 4122, + 4123, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 56, 32767, 1658, 32767, 57, 32767, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 1659, 32767, 32766, 32767, 6267, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 4124, 4125, 32766, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, + 245, 246, 4126, 32767, 32767, 32766, 32767, 32766, 32766, 247, 248, 249, 32767, 250, 251, 252, + 253, 254, 255, 32766, 256, 257, 258, 259, 260, 261, 262, 32767, 263, 264, 265, 266, 267, 268, + 269, 32767, 32766, 270, 271, 272, 273, 274, 32766, 275, 276, 277, 278, 279, 32767, 280, 32766, + 32767, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, + 297, 32766, 298, 299, 300, 32767, 32766, 301, 32766, 302, 32767, 32767, 32766, 303, 304, 32767, + 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 2635, 312, 32767, 313, 314, 315, 316, 317, + 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 326, 327, 32766, 32767, 328, + 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32766, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 32767, 32767, 347, 32766, 32767, 348, 349, 350, 351, 352, 32767, 353, + 32767, 354, 32767, 355, 356, 32766, 357, 358, 359, 360, 361, 32767, 362, 32767, 363, 364, 365, + 32767, 32767, 366, 32767, 367, 368, 369, 32767, 966, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 32767, 386, 387, 388, 389, 390, 391, 392, 393, 32767, 394, + 32767, 395, 396, 32767, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, 421, 32767, 422, 423, + 32767, 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, 462, + 32767, 32767, 463, 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, 470, 471, 472, 32767, + 32767, 473, 474, 475, 32767, 32767, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 32767, + 486, 32766, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, + 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 32767, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, 546, 716, + 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 32767, 556, 557, 558, 559, 560, 561, 562, + 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 32767, 583, 584, 32767, 32767, 32767, 32767, 32767, 585, 586, 587, 588, 589, + 590, 591, 592, 32767, 593, 594, 595, 32767, 32767, 596, 597, 598, 599, 600, 32767, 601, 602, + 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, 32767, + 32767, 615, 616, 617, 618, 619, 620, 621, 32767, 622, 623, 624, 625, 626, 627, 32767, 32767, + 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, 249, 32767, + 250, 251, 252, 253, 254, 255, 32767, 256, 257, 258, 259, 260, 261, 262, 32767, 263, 264, 265, + 266, 267, 268, 269, 32767, 32767, 270, 271, 272, 273, 274, 32767, 275, 276, 277, 278, 279, + 32767, 280, 32767, 32767, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 32767, 292, + 293, 294, 295, 296, 297, 32767, 298, 299, 300, 32767, 32767, 301, 32767, 302, 32767, 32767, + 32767, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 2651, 312, 32767, 313, + 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 326, 327, + 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 32767, 1828, 347, 1602, 32767, 348, 349, 350, 351, + 352, 32767, 353, 32767, 354, 32767, 355, 356, 32767, 357, 358, 359, 360, 361, 32767, 362, + 32767, 363, 364, 365, 32767, 32767, 366, 32767, 367, 368, 369, 782, 966, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 387, 388, 389, 390, 391, + 392, 393, 32767, 394, 32767, 395, 396, 32767, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, 421, + 32767, 422, 423, 32767, 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, + 1603, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 32767, + 460, 461, 462, 32767, 32767, 463, 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, 470, 471, + 472, 1829, 32767, 473, 474, 475, 32767, 32767, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 32767, 486, 32766, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 1604, 510, 511, 512, 32767, + 513, 514, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 32767, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, + 546, 716, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 32767, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32767, 32767, 32767, 32767, 585, 586, 587, + 588, 589, 590, 591, 592, 32767, 593, 594, 595, 32767, 32767, 596, 597, 598, 599, 600, 1830, + 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, + 614, 32767, 32767, 615, 616, 617, 618, 619, 620, 621, 32767, 622, 623, 624, 625, 626, 627, + 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, 249, + 32767, 250, 251, 252, 253, 254, 255, 32767, 256, 257, 258, 259, 260, 261, 262, 32767, 263, 264, + 265, 266, 267, 268, 269, 32767, 32767, 270, 271, 272, 273, 274, 32767, 275, 276, 277, 278, 279, + 32767, 280, 32767, 32767, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 32767, 292, + 293, 294, 295, 296, 297, 32767, 298, 299, 300, 32767, 32767, 301, 32767, 302, 32767, 32767, + 32767, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32766, 312, 32767, + 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 326, 327, + 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 32767, 1828, 347, 1602, 32767, 348, 349, 350, 351, + 352, 32767, 353, 32767, 354, 32767, 355, 356, 32767, 357, 358, 359, 360, 361, 32767, 362, + 32767, 363, 364, 365, 32767, 32767, 366, 32767, 367, 368, 369, 782, 966, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 387, 388, 389, 390, 391, + 392, 393, 32767, 394, 32767, 395, 396, 32767, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, 421, + 32767, 422, 423, 32767, 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, + 1603, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 32767, + 460, 461, 462, 32767, 32767, 463, 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, 470, 471, + 472, 1829, 32767, 473, 474, 475, 32767, 32767, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 32767, 486, 2652, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 1604, 510, 511, 512, 32767, + 513, 514, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 32767, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, + 546, 716, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 32767, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32767, 32767, 32767, 32767, 585, 586, 587, + 588, 589, 590, 591, 592, 32767, 593, 594, 595, 32767, 32767, 596, 597, 598, 599, 600, 1830, + 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, + 614, 32767, 32767, 615, 616, 617, 618, 619, 620, 621, 32767, 622, 623, 624, 625, 626, 627, + 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, + 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, + 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, + 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, + 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 2667, 32766, 32766, 32766, 32766, 32766, 29, 32766, + 32766, 2668, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 2669, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 1645, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 663, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 2670, 36, 32766, 32766, 32767, + 1646, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2633, 32767, 32767, 32767, 32767, 32766, + 32767, 32767, 32767, 32766, 32767, 2184, 32767, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32767, + 32767, 1647, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 2233, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, -1436, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, + 32767, 32767, 47, 32767, 32767, 32767, 32767, 32767, 2251, 32767, 32767, 32766, 32767, 2255, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2671, 32767, 32767, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, -1436, 32767, 32767, 51, 32767, 32767, 32767, 32767, 32767, 2672, 2673, 2289, 1648, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 2315, + 32767, 2674, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 55, 32767, 32767, 32767, 2327, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 56, 32767, 32767, 32767, 57, + 32767, 32767, 32767, 32767, 2339, 32767, 1649, 32767, 32767, 32767, 32767, 32766, 32767, 1650, + 32766, 32767, 32767, 32767, 1651, 32767, 32767, 32767, 32767, 32766, 2359, 2360, 2361, 32766, + 32767, 32767, 1881, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 32767, 2675, 32767, 32767, 2676, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 2386, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 1653, 32767, 32767, + 32767, 32767, 32767, 32767, 2412, 2413, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 1655, 32767, 32767, + 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2677, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 1656, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 2494, 2495, 32767, 32767, 32766, 1658, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2518, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 1659, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32767, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 32766, 244, 245, 246, 32767, 32767, 32767, 32767, 1242, + 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 254, 255, 1243, 256, 257, 258, 1244, + 260, 1245, 1246, 32767, 263, 264, 265, 266, 267, 268, 269, 1247, 1248, 270, 271, 1249, 273, + 1250, 32767, 275, 276, 277, 278, 1251, 32767, 1252, 32767, 32767, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, 298, 299, 300, 1253, 1254, + 301, 1255, 1256, 1257, 1258, 1259, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 1260, + 1261, 311, 1262, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, + 32767, 32767, 324, 325, 832, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, + 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 1263, 342, 343, 344, 345, 1264, 32767, 1265, + 347, 1266, 32767, 348, 349, 350, 1267, 352, 32767, 353, 32767, 354, 32767, 355, 356, 32767, + 357, 358, 359, 360, 361, 32767, 362, 32767, 1268, 1269, 365, 32767, 32767, 366, 32767, 367, + 368, 369, 782, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 32767, 386, 387, 388, 389, 390, 391, 392, 1270, 32767, 1271, 32767, 1272, 396, 32767, 397, 398, + 399, 400, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 410, 1282, 412, 413, 414, 415, + 416, 417, 418, 32767, 32767, 32767, 419, 1283, 421, 32767, 422, 423, 32767, 424, 425, 426, + 1284, 1285, 427, 428, 429, 430, 1286, 32767, 431, 432, 433, 434, 435, 436, 1287, 438, 439, 440, + 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 1288, 444, 445, 1289, 447, 1290, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 1291, 459, 1292, 460, 461, 462, 32767, 1293, 463, 1294, + 32767, 465, 1295, 1296, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 1297, 474, 475, + 32767, 32767, 476, 477, 478, 479, 480, 481, 1298, 483, 484, 485, 1299, 486, 1300, 487, 488, + 489, 490, 491, 492, 493, 32767, 494, 495, 496, 1301, 498, 499, 500, 501, 502, 32767, 503, 504, + 505, 506, 507, 508, 509, 32767, 1302, 510, 511, 512, 32767, 513, 1303, 515, 516, 517, 32767, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 534, + 535, 536, 537, 538, 539, 1304, 541, 32767, 542, 543, 544, 545, 546, 716, 547, 548, 549, 550, + 32767, 551, 552, 553, 554, 555, 1305, 556, 557, 558, 559, 560, 561, 562, 563, 1306, 565, 32767, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 1307, 582, 32767, + 583, 584, 1308, 32767, 32767, 32767, 32767, 585, 586, 587, 588, 589, 590, 591, 592, 32767, 593, + 1310, 1311, 32767, 32767, 596, 597, 1312, 599, 1313, 1314, 601, 602, 32767, 603, 604, 605, + 32767, 606, 607, 608, 609, 32767, 1315, 610, 611, 612, 613, 614, 1316, 32767, 615, 616, 617, + 618, 619, 620, 1317, 32767, 622, 623, 624, 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, + 630, 32767, 32767, 631, 632, 633, 1318, 634, 1319, 1320, 1321, 1322, 639, 1323, 1324, 1325, + 1326, 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, + 246, 32767, 32767, 32767, 32767, 1242, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, + 254, 255, 1243, 256, 257, 258, 1244, 260, 1245, 1246, 32767, 263, 264, 265, 266, 267, 268, 269, + 1247, 1248, 270, 271, 1249, 273, 1250, 32767, 275, 276, 277, 278, 1251, 32767, 1252, 32767, + 32767, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, + 297, 32767, 298, 299, 300, 1253, 1254, 301, 1255, 1256, 1257, 1258, 1259, 303, 304, 32767, + 32767, 32767, 305, 306, 307, 308, 1260, 1261, 311, 1262, 312, 32767, 313, 314, 315, 316, 317, + 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 832, 327, 32767, 32767, 328, + 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 1263, + 342, 343, 344, 345, 1264, 32767, 1265, 347, 1266, 32767, 348, 349, 350, 1267, 352, 32767, 353, + 32767, 354, 32767, 355, 356, 32767, 357, 358, 359, 360, 361, 32767, 362, 32767, 1268, 1269, + 365, 32767, 32767, 366, 32767, 367, 368, 369, 782, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 32767, 386, 387, 388, 389, 390, 391, 392, 1270, 32767, 1271, + 32767, 1272, 396, 32767, 397, 398, 399, 400, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, + 1281, 410, 1282, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 1283, 421, 32767, + 422, 423, 32767, 424, 425, 426, 1284, 1285, 427, 428, 429, 430, 1286, 32767, 431, 432, 433, + 434, 435, 436, 1287, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 2703, + 444, 445, 1289, 447, 1290, 449, 450, 451, 452, 453, 454, 455, 456, 457, 1291, 459, 1292, 460, + 461, 462, 32767, 1293, 463, 1294, 32767, 465, 1295, 1296, 467, 468, 469, 32767, 470, 471, 472, + 32767, 32767, 1297, 474, 475, 32767, 32767, 476, 477, 478, 479, 480, 481, 1298, 483, 484, 485, + 1299, 486, 1300, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 1301, 498, 499, 500, + 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 32766, 510, 511, 512, 32767, 513, + 1303, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 32767, 532, 533, 534, 535, 536, 537, 538, 539, 1304, 541, 32767, 542, 543, 544, 545, 546, + 716, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 1305, 556, 557, 558, 559, 560, 561, + 562, 563, 1306, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, + 579, 580, 1307, 582, 32767, 583, 584, 1308, 32767, 32767, 32767, 32767, 585, 586, 587, 588, + 589, 590, 591, 592, 32767, 593, 1310, 1311, 32767, 32767, 596, 597, 1312, 599, 1313, 1314, 601, + 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 1315, 610, 611, 612, 613, 614, + 1316, 32767, 615, 616, 617, 618, 619, 620, 1317, 32767, 622, 623, 624, 625, 626, 627, 32767, + 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 1318, 634, 1319, 1320, 1321, + 1322, 639, 1323, 1324, 1325, 1326, 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 32767, 2725, 32767, 247, 248, 249, + 32767, 250, 251, 252, 253, 32767, 255, 32767, 256, 257, 258, 259, 32767, 261, 262, 32767, 263, + 264, 265, 266, 267, 268, 269, 32767, 32767, 270, 271, 272, 273, 274, 32767, 275, 276, 277, 278, + 279, 32767, 32767, 32767, 32767, 281, 282, 283, 284, 285, 286, 32767, 288, 289, 290, 291, + 32767, 292, 293, 294, 295, 296, 297, 32767, 32767, 299, 300, 32767, 32767, 301, 32767, 32767, + 32767, 32767, 32767, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32767, + 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, + 325, 326, 327, 32766, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, + 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 32767, 32767, 347, 32767, 32767, 348, + 349, 350, 351, 352, 32767, 353, 32767, 354, 32767, 355, 32767, 32767, 32767, 358, 359, 360, + 361, 32767, 362, 32767, 363, 364, 365, 32767, 32767, 366, 32767, 367, 368, 369, 32767, 657, + 371, 372, 32767, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 32767, + 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, 32767, 32767, 32767, 399, 32767, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 32767, 32767, 32767, 419, 420, 32767, 32767, 422, 32767, 32767, 424, 425, 426, 32767, 32767, + 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, + 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, 32767, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, 32767, 32767, 32767, 463, 464, 32767, 465, + 32767, 466, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 473, 474, 475, 32767, 32767, + 476, 477, 32767, 479, 480, 32767, 482, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, + 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, + 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, 32767, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32766, 532, 533, 32767, 535, 536, + 537, 538, 539, 540, 541, 32766, 542, 543, 544, 545, 546, 32767, 547, 548, 549, 550, 32767, 551, + 552, 553, 554, 555, 32767, 32766, 557, 558, 559, 560, 32767, 562, 563, 564, 565, 32767, 566, + 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 32767, 583, + 584, 32767, 32766, 32767, 32767, 32767, 585, 32767, 587, 588, 589, 590, 591, 592, 32767, 593, + 594, 595, 32767, 32767, 596, 597, 598, 599, 600, 32767, 601, 602, 32767, 603, 604, 605, 32767, + 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, 32767, 32766, 615, 616, 617, 618, + 619, 620, 621, 32767, 622, 32767, 624, 625, 626, 627, 32767, 32766, 628, 32767, 32767, 629, + 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 254, 255, + 32767, 256, 257, 32767, 825, 260, 826, 827, 32767, 263, 264, 265, 266, 267, 268, 269, 32767, + 32767, 270, 271, 828, 273, 829, 32767, 275, 276, 277, 278, 32767, 32767, 280, 32767, 32767, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, + 32767, 298, 299, 300, 32767, 32767, 301, 32767, 302, 32767, 32767, 32767, 303, 304, 32767, + 32767, 32767, 305, 306, 307, 308, 830, 831, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, + 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 832, 327, 32767, 32767, 328, + 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 32767, + 342, 343, 344, 345, 32767, 32767, 32767, 347, 32767, 32767, 348, 349, 350, 833, 352, 32767, + 353, 32767, 354, 32767, 355, 356, 32767, 357, 358, 359, 360, 361, 32767, 362, 32767, 32767, + 32767, 365, 32767, 32767, 366, 32767, 367, 368, 369, 32767, 834, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 387, 2733, 389, 390, 391, 392, 835, + 32767, 836, 32767, 837, 396, 2734, 397, 398, 399, 400, 838, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, + 32767, 421, 32767, 422, 423, 32767, 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32767, + 32767, 431, 432, 433, 434, 435, 436, 32767, 438, 439, 440, 441, 32767, 32767, 32767, 32767, + 32767, 442, 443, 32767, 444, 445, 839, 447, 840, 449, 450, 451, 452, 453, 454, 455, 456, 32767, + 32767, 459, 32767, 460, 461, 462, 32767, 32767, 463, 32767, 32767, 465, 32767, 841, 467, 468, + 469, 32767, 470, 471, 472, 32767, 32767, 473, 474, 475, 32767, 2735, 476, 477, 478, 2736, 480, + 481, 32767, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, + 495, 496, 32767, 498, 32767, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, + 32767, 510, 511, 512, 32767, 513, 842, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 534, 535, 536, 537, 538, 539, 32767, 541, + 32767, 542, 543, 544, 545, 546, 32767, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, + 32767, 556, 2737, 558, 559, 560, 561, 562, 563, 844, 565, 32767, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 32767, 582, 32767, 583, 584, 32767, 32767, 32767, + 2738, 32767, 585, 586, 587, 588, 589, 590, 591, 592, 32767, 593, 845, 846, 32767, 32767, 596, + 597, 32767, 599, 32767, 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, + 32767, 32767, 610, 611, 612, 613, 614, 32767, 32767, 615, 616, 617, 618, 32767, 620, 847, + 32766, 622, 623, 624, 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, + 631, 632, 633, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 645, 646, 647, 648, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 2605, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, + 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 2756, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, 249, 32767, + 250, 251, 252, 253, 32767, 255, 32767, 256, 257, 258, 259, 32767, 261, 262, 32767, 263, 264, + 265, 266, 267, 268, 269, 32767, 32767, 892, 271, 272, 273, 274, 32767, 275, 276, 277, 278, 279, + 32767, 32767, 32767, 32767, 281, 282, 283, 284, 285, 286, 32767, 288, 289, 290, 291, 32767, + 292, 293, 294, 295, 296, 297, 32767, 32767, 299, 300, 32767, 32767, 301, 32767, 32767, 32767, + 32767, 32767, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32767, 312, + 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, + 326, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, + 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 32767, 32767, 347, 32767, 32767, 348, + 349, 350, 351, 352, 32767, 353, 32767, 354, 32767, 355, 32767, 32767, 32767, 358, 359, 360, + 361, 32767, 362, 32767, 363, 364, 365, 32767, 32767, 366, 32767, 367, 368, 369, 32767, 657, + 371, 372, 32767, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 32767, + 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, 32767, 32767, 32767, 399, 32767, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 32767, 32767, 32767, 419, 420, 32767, 32767, 422, 32767, 32767, 424, 425, 426, 32767, 32767, + 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, + 32767, 32767, 32767, 32767, 442, 443, 32767, 895, 445, 446, 32767, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, 32767, 32767, 32767, 463, 464, 32767, 465, + 32767, 466, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 473, 474, 475, 32767, 32767, + 476, 477, 32767, 479, 480, 32767, 482, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, + 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, + 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, 32767, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 32767, 896, 536, + 537, 538, 539, 540, 541, 32767, 542, 543, 544, 897, 546, 32767, 547, 548, 549, 550, 32767, 551, + 552, 553, 554, 1431, 32767, 556, 557, 558, 559, 560, 32767, 562, 563, 564, 565, 32767, 566, + 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 32767, 583, + 584, 32767, 32767, 32767, 32767, 32767, 585, 32767, 32766, 588, 589, 590, 591, 592, 32767, 593, + 899, 595, 32767, 32767, 900, 597, 598, 599, 600, 32767, 601, 602, 32767, 603, 604, 605, 32767, + 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, 32767, 32767, 615, 616, 617, 618, + 619, 620, 621, 32767, 622, 32767, 624, 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, + 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 901, 646, 647, 648, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, + 32767, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2764, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32767, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 1548, 32767, 720, 32767, 32767, 32767, 32767, 2794, + 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32767, + 32766, 32767, 32767, 1549, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2795, 32766, + 32766, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 723, 32767, 32767, + 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, + 32766, 32766, 724, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 1056, 32766, 32767, 32767, 32767, + 32766, 32767, 32766, 32766, 1550, 32767, 32767, 32766, 32767, 32766, 32767, 32766, 32767, + 32767, 32766, 32767, 32766, 32767, 32766, 32767, 2796, 32767, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 727, 32767, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 728, 32767, 32767, 1551, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 729, 32767, 32767, 32767, 32767, 32767, 32767, 2797, + 32766, 32767, 32767, 32767, 5636, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32766, 32767, 32767, 1059, 32767, 1552, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, + 32766, -672, 32767, 32767, 32767, 32767, 4279, 32767, 32766, 32767, 32767, 32767, 32767, 32766, + 32767, 32766, 32767, 32766, 1554, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 733, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32767, + 32766, 1556, 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, + 32766, 2798, 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 42, 32767, 2826, + 32767, 32767, 1558, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 1559, 214, 2799, + 32767, 32767, 738, 32766, 32766, 32767, 32767, 32766, 1560, 32767, 32767, 32767, 32766, 32767, + 32767, 32766, 2827, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 1562, 32767, 32767, 32767, 1063, 32767, 32767, 2800, 32767, 1563, 32767, 6001, + 32767, 32767, 1564, 742, 32767, 32766, 32767, 32766, 32766, 32767, 32767, 743, 32767, 32766, + 744, 32767, 32767, 4370, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, + 32766, 32766, 32767, 32766, 32767, 32767, 745, 32767, 32767, 32767, 32766, 32766, 32767, 32767, + 1065, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 747, 32767, 32767, 1066, + 32766, 32767, 32767, 32767, 749, 32767, 32766, 32767, 1565, 32766, 32767, 32767, 2801, 32767, + 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 6002, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 32766, 244, 245, 246, 32767, 32766, 32767, 32766, 32767, 32766, 32767, + 247, 248, 249, 754, 250, 251, 252, 253, 32767, 255, 32767, 256, 257, 258, 259, 32767, 261, 262, + 32767, 263, 264, 265, 266, 267, 268, 269, 32767, 32767, 892, 271, 272, 273, 274, 32767, 275, + 276, 277, 278, 279, 32767, 32767, 32767, 32767, 281, 282, 283, 284, 285, 286, 32767, 288, 289, + 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, 32766, 299, 300, 32767, 32767, 301, + 32767, 32767, 32767, 32766, 32767, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 309, 310, + 311, 32766, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, + 32767, 324, 325, 326, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, + 334, 335, 336, 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 32767, 32767, 347, + 32767, 32766, 348, 349, 350, 351, 352, 32767, 353, 32767, 354, 32767, 355, 32767, 32767, 32766, + 358, 359, 360, 361, 32767, 362, 32767, 363, 364, 365, 32767, 32767, 366, 32767, 367, 368, 369, + 32767, 657, 371, 372, 32767, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, + 386, 32767, 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, 32767, 32767, 32767, + 399, 32767, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 32767, 32767, 32767, 419, 420, 32767, 32767, 422, 32767, 32767, 424, 425, 426, 32767, + 32767, 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, 895, 445, 446, 32767, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, 32767, 32767, 32767, 463, 464, 32767, + 465, 32767, 466, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 473, 474, 475, 32767, + 32767, 476, 477, 32767, 479, 480, 32767, 482, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, + 490, 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, 32767, 503, 504, 505, + 506, 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, 32767, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 32767, 896, + 536, 537, 538, 539, 540, 541, 32767, 542, 543, 544, 2821, 546, 32767, 547, 548, 549, 550, + 32767, 551, 552, 553, 554, 2822, 32767, 556, 557, 558, 559, 560, 32767, 562, 563, 564, 565, + 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 32767, 583, 584, 32767, 32767, 32767, 32767, 32767, 585, 32767, 587, 588, 589, 590, 591, 592, + 32767, 593, 899, 595, 32767, 32767, 32766, 597, 598, 599, 600, 32767, 601, 602, 32767, 603, + 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, 32767, 32767, 615, + 616, 617, 618, 619, 620, 621, 32767, 622, 32767, 624, 625, 626, 627, 32767, 32767, 628, 32767, + 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 901, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, + 245, 246, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, + 253, 254, 255, 32767, 256, 257, 32767, 825, 260, 826, 827, 32767, 263, 264, 265, 266, 267, 268, + 269, 32767, 32767, 270, 271, 828, 273, 829, 32767, 275, 276, 277, 278, 32767, 32767, 280, + 32767, 32767, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 32767, 292, 293, 294, 295, + 296, 297, 32767, 298, 299, 300, 32767, 32767, 301, 32767, 302, 32767, 32767, 32767, 303, 304, + 32767, 32767, 32767, 305, 306, 307, 308, 830, 831, 311, 32767, 312, 32767, 313, 314, 315, 316, + 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 832, 327, 32767, 32767, 328, + 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 32767, + 342, 343, 344, 345, 32767, 32767, 32767, 347, 32767, 32767, 348, 349, 350, 833, 352, 32767, + 353, 32767, 354, 32767, 355, 356, 32767, 357, 358, 359, 360, 361, 32767, 362, 32767, 32767, + 32767, 365, 32767, 32767, 366, 32767, 367, 368, 369, 32767, 834, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 387, 2733, 389, 390, 391, 392, 835, + 32767, 836, 32767, 837, 396, 2734, 397, 398, 399, 400, 838, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, + 32767, 421, 32767, 422, 423, 32767, 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32767, + 32767, 431, 432, 433, 434, 435, 436, 32767, 438, 439, 440, 441, 32767, 32767, 32767, 32767, + 32767, 442, 443, 32767, 444, 445, 839, 447, 840, 449, 450, 451, 452, 453, 454, 455, 456, 32767, + 32767, 459, 32767, 460, 461, 462, 32767, 32767, 463, 32767, 32767, 465, 32767, 841, 467, 468, + 469, 32767, 470, 471, 472, 32767, 32767, 473, 474, 475, 32767, 32767, 476, 477, 478, 2736, 480, + 481, 32767, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 32766, 494, + 495, 496, 32767, 498, 32767, 500, 501, 502, 32766, 503, 504, 505, 506, 507, 508, 509, 32767, + 32767, 510, 511, 512, 32767, 513, 842, 515, 516, 517, 32766, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 534, 535, 536, 537, 538, 539, 32767, 541, + 32766, 542, 543, 544, 545, 546, 32767, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, + 32767, 556, 2737, 558, 559, 560, 561, 562, 563, 844, 565, 32767, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 32767, 582, 32767, 583, 584, 32767, 32767, 32767, + 32766, 32766, 585, 586, 587, 588, 589, 590, 591, 592, 32767, 593, 845, 846, 32767, 32766, 596, + 597, 32766, 599, 32767, 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, + 32767, 32767, 610, 611, 612, 613, 614, 32766, 32766, 615, 616, 617, 618, 32767, 620, 847, 2739, + 622, 623, 624, 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, + 632, 633, 32767, 32767, 32767, 32767, 32767, 1645, 32767, 32767, 32766, 32766, 32767, 32767, + 645, 646, 647, 648, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, + 32766, 32767, 1646, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, + 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, + 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32766, 32767, 32767, 1647, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32767, 32767, + 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, + 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32766, + 1039, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32766, + 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32767, + 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32767, 32766, + 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32766, + 32767, 32766, 32767, 1648, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32766, + 32767, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 1040, 32767, + 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 1649, + 32766, 32767, 32767, -2424, 32766, 32767, 1650, 32766, 32767, 32767, 32767, 1651, 32766, 32767, + 32766, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32767, 2953, 32767, 32766, 32766, 32767, 32767, 32767, + 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, + 32767, 32766, 32767, 32767, 32766, 1653, 32766, 32767, 32767, 32766, 3267, 32766, 32767, 32766, + 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 32766, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32767, + 32767, 32766, 32767, 32766, 32767, 1655, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32766, + 32767, 32766, 32767, 32767, 32767, 1656, 32766, 32767, 32767, 32766, 32767, 32766, 32767, + 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32766, + 1658, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 3382, 32767, + 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 32766, 244, 245, 246, 32767, 32767, 32767, 32766, 1659, + 32766, 32766, 247, 248, 249, 32767, 250, 251, 252, 253, 32767, 255, 32767, 256, 257, 258, 259, + 32766, 261, 262, 32766, 263, 264, 265, 266, 267, 268, 269, 32767, 32767, 270, 271, 272, 273, + 274, 2838, 275, 276, 277, 278, 279, 32767, 32767, 32767, 2839, 281, 282, 283, 284, 285, 286, + 32767, 288, 289, 290, 291, 2840, 292, 293, 294, 295, 296, 297, 32767, 32766, 299, 300, 32766, + 32767, 301, 32767, 32767, 32767, 32767, 32767, 303, 304, 32767, 32767, 32767, 305, 306, 307, + 308, 309, 310, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, + 323, 32767, 32766, 324, 325, 326, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, + 333, 32767, 334, 335, 336, 32767, 2841, 338, 339, 340, 341, 342, 343, 344, 345, 346, 32767, + 32767, 347, 32767, 32767, 348, 349, 350, 351, 352, 32767, 353, 2842, 354, 32767, 355, 32767, + 32767, 32767, 358, 359, 360, 361, 32767, 362, 32767, 363, 364, 365, 32767, 32767, 366, 32767, + 367, 368, 369, 32767, 657, 371, 2843, 32767, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 32767, 386, 32767, 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, 32767, + 32767, 32767, 399, 32767, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, 32767, 32767, 422, 32767, 32767, 424, 425, + 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, 32767, 448, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, 32767, 32767, 32767, + 463, 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 473, 474, + 475, 32767, 32767, 476, 477, 32767, 479, 480, 32767, 482, 483, 484, 485, 32767, 486, 32767, + 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, 2844, + 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, + 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, + 32767, 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, 546, 32767, 547, 548, 549, + 550, 32767, 551, 552, 553, 554, 555, 32767, 556, 557, 558, 559, 560, 32767, 562, 563, 564, 565, + 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 32767, 583, 584, 32767, 32767, 32767, 32767, 32767, 585, 32767, 587, 588, 589, 590, 591, 592, + 32767, 593, 594, 595, 32767, 32767, 596, 597, 598, 599, 600, 32767, 601, 602, 32767, 603, 604, + 605, 32767, 606, 607, 608, 609, 32767, 32766, 610, 611, 612, 613, 614, 32767, 32767, 615, 616, + 617, 618, 619, 620, 621, 32767, 622, 32767, 624, 625, 626, 627, 32767, 32767, 628, 32767, + 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645, 646, 647, 648, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32767, 2850, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 2851, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, + 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, + 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32767, 2850, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 2858, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 1578, + 32767, 32767, 32766, 32767, 32767, 1579, 32767, 32767, 32767, 32766, 32766, 32767, 32767, + 32767, 1578, 32767, 32767, 32767, 32767, 32767, 1579, 32767, 32767, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32766, + 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32767, 1581, 32767, + 32766, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32767, + 1581, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32766, 2890, 32766, 32767, 32766, 32766, + 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32766, + 32766, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32767, + 32766, -1332, 32767, 32767, 32767, 32767, 1582, 32767, 32767, 32766, 32767, 32766, 32766, 1583, + 32766, 32767, 32767, 32767, 32766, 1584, 32766, 1582, 32766, 32767, 32767, 32767, 32766, 32767, + 1583, 32767, 32767, 32766, 32766, 32767, 1584, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 1585, 32767, 32767, 32767, 32767, + 32767, 32767, 32766, 32767, 32767, 3339, 32767, 32767, 32766, 32767, 1585, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 1586, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 1586, 32767, 5436, 32767, + 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32766, 32767, 32766, + 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32766, + 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32766, 32766, 32767, 32766, 32767, 32767, 1587, 32767, 32767, 32767, 1588, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 1589, 32767, 1588, 6416, + 32767, 32766, 32767, 32766, 32766, 32766, 1590, 32767, 32766, 32767, 32767, 1589, 32767, 32767, + 32767, 32767, 32767, 32767, 1591, 32767, 32767, 1590, 32767, 32767, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32767, 1591, 32767, 32766, 32767, 32767, 32766, 32766, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32766, + 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 2891, 32767, 3340, + 1593, 1594, 32767, 32766, 32767, 32766, 5803, 32767, 5804, 32767, 32767, 32767, 32766, 32767, + 32767, 1593, 1594, 32766, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32766, 32767, 32767, + 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32767, + 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 1595, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 32766, 244, 245, 246, 32767, 32766, 32767, 32767, 32767, 32766, + 32766, 247, 248, 249, 32767, 250, 251, 252, 253, 254, 255, 32767, 256, 257, 32767, 825, 260, + 826, 827, 32767, 263, 264, 265, 266, 267, 268, 269, 32767, 1596, 270, 271, 828, 273, 829, + 32767, 275, 276, 277, 278, 32767, 32767, 280, 32767, 1596, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, 298, 299, 300, 32767, 32767, + 301, 32767, 302, 32767, 32767, 32767, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 830, + 831, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, + 32767, 32767, 324, 325, 832, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, + 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 32767, 342, 343, 344, 345, 32767, 32767, + 32767, 347, 32767, 32767, 348, 349, 350, 833, 352, 32767, 353, 32767, 354, 32767, 355, 356, + 32767, 357, 358, 359, 360, 361, 32767, 362, 32767, 32767, 32767, 365, 32767, 32767, 366, 32767, + 367, 368, 369, 32767, 834, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 32767, 386, 387, 32767, 389, 390, 391, 392, 835, 32767, 836, 32767, 837, 396, 32767, + 397, 398, 399, 400, 838, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 32767, 421, 32767, 422, 423, + 32767, 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, + 436, 32767, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, + 839, 447, 840, 449, 450, 451, 452, 453, 454, 455, 456, 32766, 32767, 459, 32767, 460, 461, 462, + 32767, 32767, 463, 32767, 32767, 465, 32767, 841, 467, 468, 469, 32767, 470, 471, 472, 32767, + 32767, 473, 474, 475, 32767, 32767, 476, 477, 478, 32767, 480, 481, 32767, 483, 484, 485, + 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 32767, 498, 32767, + 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, + 513, 842, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 32767, 532, 533, 534, 535, 536, 537, 538, 539, 32767, 541, 32767, 542, 543, 544, 545, + 546, 32767, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 32767, 556, 843, 558, 559, 560, + 561, 562, 563, 844, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 32767, 582, 32767, 583, 584, 32767, 32767, 32767, 32767, 32767, 585, 586, 587, + 588, 589, 590, 591, 592, 32767, 593, 845, 846, 32767, 32767, 596, 597, 32767, 599, 32767, + 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, + 613, 614, 32767, 32767, 615, 616, 617, 618, 32767, 620, 847, 32767, 622, 623, 624, 625, 626, + 627, 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 645, 646, 647, 648, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 32767, 255, 32767, 256, 257, + 258, 259, 32767, 261, 262, 32767, 263, 264, 265, 266, 267, 268, 269, 32767, 32767, 270, 271, + 272, 273, 274, 32767, 275, 276, 277, 278, 279, 32767, 32767, 32767, 32767, 281, 282, 283, 284, + 285, 286, 32767, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, 32767, 299, + 300, 32767, 32767, 301, 32767, 32767, 32767, 32767, 32767, 303, 304, 980, 32767, 32767, 305, + 306, 307, 308, 309, 310, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, + 321, 322, 323, 32767, 32767, 324, 325, 326, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, + 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 981, + 32767, 347, 32767, 32767, 348, 349, 350, 351, 352, 32767, 353, 32767, 354, 32767, 355, 32767, + 32767, 32767, 358, 359, 360, 361, 32767, 362, 983, 363, 364, 365, 32767, 984, 366, 32767, 367, + 368, 369, 32767, 657, 371, 372, 32767, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 32767, 386, 32767, 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, 32767, + 32767, 32767, 399, 32767, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, 32767, 985, 422, 32767, 32767, 424, 425, + 426, 32767, 32767, 427, 428, 429, 430, 32767, 986, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 987, 444, 445, 446, 32767, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, 32767, 988, 32767, 463, 464, + 32767, 465, 32767, 466, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 473, 474, 475, + 32767, 32767, 476, 477, 32767, 479, 480, 32767, 482, 483, 484, 485, 989, 486, 32767, 487, 488, + 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, 32767, 503, 504, + 505, 506, 507, 508, 509, 990, 991, 510, 511, 512, 32767, 513, 514, 515, 516, 517, 32767, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 32767, 535, + 536, 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, 546, 32767, 547, 548, 549, 550, 32767, + 551, 552, 553, 554, 555, 32767, 556, 557, 558, 559, 560, 32767, 562, 563, 564, 565, 32767, 566, + 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 32767, 583, + 584, 32767, 32767, 992, 32766, 32767, 585, 32767, 587, 588, 589, 590, 591, 592, 32767, 593, + 594, 595, 32767, 32767, 596, 597, 598, 599, 600, 32767, 601, 602, 32767, 603, 604, 605, 32767, + 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, 32767, 32767, 615, 616, 617, 618, + 619, 620, 621, 32767, 622, 32767, 624, 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, + 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 32767, 255, + 32767, 256, 257, 258, 259, 32767, 261, 262, 32767, 263, 264, 265, 266, 267, 268, 269, 32767, + 32767, 892, 271, 272, 273, 274, 32767, 275, 276, 277, 278, 279, 32767, 32767, 32767, 32767, + 281, 282, 283, 284, 285, 286, 32767, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, + 32767, 32767, 299, 300, 32767, 32767, 301, 32767, 32767, 32767, 32767, 32767, 303, 304, 32767, + 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, + 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 326, 327, 32767, 32767, 328, + 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 32767, 32767, 347, 32767, 32767, 348, 349, 350, 351, 352, 32767, 353, + 32767, 354, 32767, 355, 32767, 32767, 32767, 358, 359, 360, 361, 32767, 362, 32767, 363, 364, + 365, 32767, 32767, 366, 32767, 367, 368, 369, 32767, 657, 371, 372, 32767, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 32767, 388, 389, 390, 391, 392, 393, 32767, + 394, 32767, 395, 396, 32767, 32767, 32767, 399, 32767, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, 32767, 32767, + 422, 32767, 32767, 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, + 32767, 895, 445, 446, 32767, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 32767, + 460, 461, 32767, 32767, 32767, 463, 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, 470, + 471, 472, 32767, 32767, 473, 474, 475, 32767, 32767, 476, 477, 32767, 479, 480, 32767, 482, + 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, + 32767, 513, 514, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 32767, 532, 533, 32767, 896, 536, 537, 538, 539, 540, 541, 32767, 542, 543, 544, + 32766, 546, 32767, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 2822, 32767, 556, 557, 558, + 559, 560, 32767, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32767, 32767, 32767, 32767, 585, + 32767, 587, 588, 589, 590, 591, 592, 32767, 593, 899, 595, 32767, 32767, 2823, 597, 598, 599, + 600, 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, + 612, 613, 614, 32767, 32767, 615, 616, 617, 618, 619, 620, 621, 32767, 622, 32767, 624, 625, + 626, 627, 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, + 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 901, 646, 647, 648, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 247, + 248, 249, 32767, 250, 251, 252, 253, 32767, 255, 32767, 256, 257, 258, 259, 32767, 261, 262, + 32767, 263, 264, 265, 266, 267, 268, 269, 32767, 32767, 270, 271, 272, 273, 274, 32767, 275, + 276, 277, 278, 279, 32767, 32767, 32767, 32767, 281, 282, 283, 284, 285, 286, 32767, 288, 289, + 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, 32767, 299, 300, 32767, 32767, 301, + 32767, 2910, 32767, 32767, 32767, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 309, 310, + 311, 32767, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, + 32767, 324, 325, 326, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, + 334, 335, 336, 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 32767, 32767, 347, + 32767, 32767, 348, 349, 350, 351, 352, 32767, 353, 32767, 354, 32767, 355, 32767, 32767, 32767, + 358, 359, 360, 361, 32767, 362, 32767, 363, 364, 365, 32767, 32767, 366, 32767, 367, 368, 369, + 32767, 657, 371, 372, 32767, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, + 386, 32767, 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, 32767, 32767, 32767, + 399, 32767, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 32767, 32767, 32767, 419, 420, 32767, 32767, 422, 32767, 32767, 424, 425, 426, 32767, + 32767, 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, 32767, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, 32767, 32767, 32767, 463, 464, 32767, + 465, 32767, 466, 467, 468, 469, 32767, 470, 471, 472, 32767, 912, 473, 474, 475, 32767, 32767, + 476, 477, 32767, 479, 480, 32767, 482, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, + 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, + 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, 32767, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 32767, 535, 536, + 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, 546, 32767, 547, 548, 549, 550, 32767, 551, + 552, 553, 554, 555, 32767, 556, 557, 558, 559, 560, 32767, 562, 563, 564, 565, 32767, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 32767, 583, 584, + 32767, 32767, 32767, 32767, 2911, 32766, 32767, 587, 588, 589, 590, 591, 592, 32767, 593, 594, + 595, 32767, 32767, 596, 597, 598, 599, 600, 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, + 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, 32767, 32767, 615, 616, 617, 618, 619, + 620, 621, 32767, 622, 32767, 624, 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, 630, + 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 32767, 255, 32767, + 256, 257, 258, 259, 32767, 261, 262, 32767, 263, 264, 265, 266, 267, 268, 269, 32767, 32767, + 270, 271, 272, 273, 274, 32767, 275, 276, 277, 278, 279, 32767, 32767, 32767, 32767, 281, 282, + 283, 284, 285, 286, 32767, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, + 32767, 299, 300, 32767, 32767, 301, 32767, 2910, 32767, 32767, 32767, 303, 304, 32767, 32767, + 32767, 305, 306, 307, 308, 309, 310, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, 318, 319, + 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 326, 327, 32767, 32767, 328, 32767, 329, + 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 32767, 32767, 347, 32767, 32767, 348, 349, 350, 351, 352, 32767, 353, 32767, 354, + 32767, 355, 32767, 32767, 32767, 358, 359, 360, 361, 32767, 362, 32767, 363, 364, 365, 32767, + 32767, 366, 32767, 367, 368, 369, 32767, 657, 371, 372, 32767, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 32767, 386, 32767, 388, 389, 390, 391, 392, 393, 32767, 394, + 32767, 395, 396, 32767, 32767, 32767, 399, 32767, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, 32767, 32767, 422, + 32767, 32767, 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 1862, 32767, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, 444, + 445, 446, 32767, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, + 32767, 32767, 32767, 463, 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, 470, 471, 472, + 32767, 912, 473, 474, 475, 32767, 32767, 476, 477, 32767, 479, 480, 32767, 482, 483, 484, 485, + 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, + 514, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 32767, 532, 533, 32767, 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, 546, + 32767, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 32767, 556, 557, 558, 559, 560, + 32767, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32767, 32767, 32767, 2911, 32766, 32767, 587, + 588, 589, 590, 591, 592, 32767, 593, 594, 595, 32767, 32767, 596, 597, 598, 599, 600, 32767, + 601, 602, 3900, 603, 604, 605, 32767, 606, 607, 608, 609, 32766, 32766, 610, 611, 612, 613, + 614, 32767, 32767, 615, 616, 617, 618, 619, 620, 621, 32767, 622, 32767, 624, 625, 626, 627, + 32766, 32766, 628, 32767, 32767, 629, 630, 32766, 32767, 631, 632, 633, 32767, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 32767, 32766, 32767, 2667, 32767, + 32767, 32767, 3736, 32767, 32767, 32766, 32767, 2668, 32766, 32767, 32767, 32766, 32767, 32767, + 32767, 32766, 2669, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 1946, 32767, 32767, 32767, 32766, + 32767, 32767, 2670, 32767, 32766, 32767, 1645, 32767, 32766, 32767, 32767, 32767, 32767, 32766, + 32766, 32766, 32767, 32767, 32766, 32767, 32766, 2577, 3737, 32767, 32766, 32767, 32767, 32766, + 32767, 1646, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 2184, 32766, 32766, -149, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, + 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32767, + 32766, 32767, 32767, 32767, 32767, 32767, -149, 32766, 32767, 3738, 32767, 32767, 32767, 32767, + 1647, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 3739, 32767, 32767, 2233, 32767, + 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32766, 32767, 3901, 32766, + 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 2251, 32767, 32767, + 32767, 32766, 2255, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 2671, 32767, + 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 2672, 2673, + 2289, 32767, 32766, 32766, -149, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32767, + 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 1648, 32767, 32766, 32767, 2315, + 32767, 2674, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 2327, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32766, 32767, 32767, 32767, 32767, 2339, 32767, 32767, 32767, 32767, 32766, 32767, 3740, 32767, + 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 2359, 2360, 2361, + 32767, 1649, 32767, -149, 32767, 32766, 32767, 32766, 1650, 32767, 32767, 32767, 32767, 1651, + 32767, 2675, 32766, 32767, 2676, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32767, 2386, 32767, 32767, 32767, 3902, 2953, 32767, 32766, 32766, 32766, 32767, 32767, + 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, + 32766, 32767, 32766, 2412, 2413, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32766, 1653, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 3903, 32766, 32766, 32766, 32767, 32767, 32767, + 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 2677, 32767, 32766, + 32766, 32767, 32766, 32767, 3741, 1655, 32767, 32766, 32766, 32767, 32767, 32766, 3742, 32766, + 32767, 3743, 32767, 32767, 32766, 32766, 32767, 32766, 32767, 32767, 32766, 2494, 2495, 32767, + 32767, 32767, 1632, 1656, 32767, 32767, 1633, 32767, 32766, 32766, 32767, 32766, 32767, 32767, + 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 2518, 32767, 1658, 32767, 32767, 32767, + 32766, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 1659, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32767, 2850, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 2978, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 2979, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, 249, 32767, + 250, 251, 252, 253, 254, 255, 32767, 256, 257, 258, 259, 260, 261, 262, 32767, 263, 264, 265, + 266, 267, 268, 269, 32767, 32767, 270, 271, 272, 273, 274, 32767, 275, 276, 277, 278, 279, + 32767, 280, 32767, 32767, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 32767, 292, + 293, 294, 295, 296, 297, 32767, 298, 299, 300, 32767, 32767, 301, 964, 302, 32767, 32767, 965, + 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32767, 312, 32767, 313, 314, + 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 326, 327, 32767, + 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 32767, 32767, 347, 32767, 32767, 348, 349, 350, 351, 352, + 32767, 353, 32767, 354, 32767, 355, 356, 32767, 357, 358, 359, 360, 361, 32767, 362, 32767, + 363, 364, 365, 32767, 32767, 366, 32767, 367, 368, 369, 32767, 966, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 387, 388, 389, 390, 391, 392, + 393, 32767, 394, 32767, 395, 396, 32767, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, 421, + 32767, 422, 423, 32767, 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, + 32767, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 32767, + 460, 461, 462, 32767, 32767, 463, 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, 470, 471, + 472, 32767, 32767, 473, 474, 475, 32767, 32767, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, + 513, 514, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 32767, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, + 546, 32767, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 967, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32767, 32767, 32767, 32767, 585, 586, 587, + 588, 589, 590, 591, 592, 32767, 593, 594, 595, 32767, 32767, 596, 597, 598, 599, 600, 32767, + 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, + 614, 32766, 32767, 615, 616, 617, 618, 619, 620, 621, 32767, 622, 623, 624, 625, 626, 627, + 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32767, 2850, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, + 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 3011, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2667, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2668, 32767, 32766, 32767, 32767, 32767, + 32766, 32767, 32767, 2669, 32767, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32767, + 32766, 32767, 1578, 2670, 32767, 32767, 32767, 32766, 1579, 32767, 32767, 32767, 32767, 4210, + 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32767, + 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 2184, + -2330, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32766, + 32767, 1581, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, + 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, + 32767, 32767, 32767, 2233, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 1582, 32767, 32766, + 32767, 32767, 2251, 32767, 1583, 32766, 32767, 2255, 32767, 32767, 1584, 32766, 32766, 32767, + 32767, 32767, 32767, 2671, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32767, + 32767, 1585, 32767, 32767, 2672, 2673, 2289, 32767, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 32767, 32767, 32767, 32767, 32767, 32766, 2315, 32766, 2674, 32767, 32767, 32766, 32767, 32767, + 1586, 32767, 32767, 32767, 32767, 32767, 2327, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32766, 2339, 32767, + 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32766, + 32767, 32767, 32767, 32767, 32767, 2359, 2360, 2361, 32767, 32767, 32766, 32767, 32767, 32767, + 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2675, 32767, 32767, 2676, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 2386, 32767, 32766, + 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 1689, 32767, 32767, + 32767, 1588, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 2412, 2413, + 1589, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 1590, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 1591, 32767, 32767, 32767, 32767, + 32767, 32766, 32767, 32766, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, + 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, + 32766, 32767, 32766, 32767, 32766, 2677, 32767, 32767, 32766, 32766, 32767, 32767, 32767, + 32767, 32766, 32767, 32766, 32767, 32767, 1593, 1594, 32766, 32767, 32767, 32767, 32767, 32767, + 5803, 32767, 5804, 32766, 32767, 32767, 2494, 2495, 32766, 32767, 32767, 32767, 32766, 32766, + 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32767, 32767, 1595, + 32767, 32767, 32767, 32766, 2518, 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 1596, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 32766, 244, 245, 246, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 32767, 255, 32767, 256, 257, 258, 259, + 32767, 261, 262, 32767, 263, 264, 265, 266, 267, 268, 269, 32767, 32767, 270, 271, 272, 273, + 274, 32767, 275, 276, 277, 278, 279, 32767, 32767, 32767, 32767, 281, 282, 283, 284, 285, 286, + 32767, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, 32767, 299, 300, 32767, + 32767, 301, 32767, 2910, 32767, 32767, 32767, 303, 304, 32767, 32767, 32767, 305, 306, 307, + 308, 309, 310, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, + 323, 32767, 32767, 324, 325, 326, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, + 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 32767, + 32767, 347, 32767, 32767, 348, 349, 350, 351, 352, 32767, 353, 32767, 354, 32767, 355, 32767, + 32767, 32767, 358, 359, 360, 361, 32767, 362, 32767, 363, 364, 365, 32767, 32767, 366, 32767, + 367, 368, 369, 32767, 657, 371, 372, 32767, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 32767, 386, 32767, 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, 32767, + 32767, 32767, 399, 32767, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, 32767, 32767, 422, 32767, 32767, 424, 425, + 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, 32767, 448, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, 32767, 32767, 32767, + 463, 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, 470, 471, 472, 32767, 912, 473, 474, + 475, 32767, 32767, 476, 477, 32767, 479, 480, 32767, 482, 483, 484, 485, 32767, 486, 32767, + 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, 32767, + 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, + 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, + 32767, 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, 546, 32767, 547, 548, 549, + 550, 32767, 551, 552, 553, 554, 555, 32767, 556, 557, 558, 559, 560, 32767, 562, 563, 564, 565, + 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 32767, 583, 584, 32767, 32767, 32767, 32767, 2911, 2912, 32767, 587, 588, 589, 590, 591, 592, + 32767, 593, 594, 595, 32767, 32767, 596, 597, 598, 599, 600, 32767, 601, 602, 32767, 603, 604, + 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, 32767, 32767, 615, 616, + 617, 618, 619, 620, 621, 32767, 622, 32767, 624, 625, 626, 627, 32767, 32767, 628, 32767, + 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645, 646, 647, 648, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, + 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32767, + 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, + 244, 245, 246, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, 249, 32767, 250, 251, + 252, 253, 32767, 255, 32767, 256, 257, 258, 259, 32767, 261, 262, 32767, 263, 264, 265, 266, + 267, 268, 269, 32767, 32767, 270, 271, 272, 273, 274, 32767, 275, 276, 277, 278, 279, 32767, + 32767, 32767, 32767, 281, 282, 283, 284, 285, 286, 32767, 288, 289, 290, 291, 32767, 292, 293, + 294, 295, 296, 297, 32767, 32767, 299, 300, 32767, 32767, 301, 32767, 32767, 32767, 32767, + 32767, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32767, 312, 32767, + 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 326, 327, + 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 32767, 32767, 347, 32767, 32767, 348, 349, 350, + 351, 352, 32767, 353, 32767, 354, 32767, 355, 32767, 32767, 32767, 358, 359, 360, 361, 32767, + 362, 32767, 363, 364, 365, 32767, 32767, 366, 32767, 367, 368, 369, 32767, 657, 371, 32766, + 32767, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 32767, 388, 389, + 390, 391, 392, 393, 32767, 394, 32767, 395, 396, 32767, 32767, 32767, 399, 32767, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, + 32767, 419, 420, 32767, 32767, 422, 32767, 32767, 424, 425, 426, 32767, 32767, 427, 428, 429, + 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, 32767, 32767, + 32767, 32767, 442, 443, 32767, 444, 445, 446, 32767, 448, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 458, 459, 32767, 460, 461, 32767, 32767, 32767, 463, 464, 32767, 465, 32767, 466, + 467, 468, 469, 32767, 470, 471, 472, -137, 32767, 473, 474, 475, 32767, 32767, 476, 477, 32767, + 479, 480, 32767, 482, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, + 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, + 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, 32767, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 32767, 535, 536, 537, 538, 539, + 540, 541, 32767, 542, 543, 544, 545, 546, 32767, 547, 548, 549, 550, 32767, 551, 552, 553, 554, + 555, 32767, 556, 557, 558, 559, 560, 32767, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32767, + 32767, 32767, 32767, 585, 32767, 587, 588, 589, 590, 591, 592, 32767, 593, 594, 595, 32767, + 32767, 596, 597, 598, 599, 600, 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, + 609, 32767, 32767, 610, 611, 612, 613, 614, 32767, 32767, 615, 616, 617, 618, 619, 620, 621, + 32767, 622, 32767, 624, 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, + 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, + 648, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 32767, 255, 32767, 256, + 257, 258, 259, 32767, 261, 262, 32767, 263, 264, 265, 266, 267, 268, 269, 32767, 32767, 270, + 271, 272, 273, 274, 32767, 275, 276, 277, 278, 279, 32767, 32767, 32767, 32767, 281, 282, 283, + 284, 285, 286, 32767, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, 32767, + 299, 300, 32767, 32767, 301, 32767, 32767, 32767, 32767, 32767, 303, 304, 32767, 32767, 32766, + 305, 306, 307, 308, 309, 310, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, + 320, 321, 322, 323, 32767, 32767, 324, 325, 326, 327, 32767, 32766, 328, 32767, 329, 330, 331, + 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 32767, 32767, 347, 32767, 32767, 348, 349, 350, 351, 352, 32767, 353, 32767, 354, 32767, 355, + 32767, 32766, 32767, 358, 359, 360, 361, 32767, 362, 32767, 363, 364, 365, 32767, 32767, 366, + 32767, 367, 368, 369, 32767, 657, 371, 372, 32767, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 32767, 386, 32767, 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, + 32767, 32767, 32767, 399, 32767, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 32767, 32766, 32767, 419, 420, 32767, 32767, 422, 32767, 32767, + 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, + 32767, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, 32767, + 32767, 32767, 463, 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, 470, 471, 472, 32767, + 32767, 473, 474, 475, 32767, 32767, 476, 477, 32767, 479, 480, 32767, 482, 483, 484, 485, + 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, + 514, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 32767, 532, 533, 32767, 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, 546, + 32767, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 32767, 556, 557, 558, 559, 560, + 32767, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32767, 32767, 32767, 32767, 585, 32767, 587, + 588, 589, 590, 591, 592, 32767, 593, 594, 595, 32766, 32767, 596, 597, 598, 599, 600, 32767, + 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, + 614, 32767, 32767, 615, 616, 617, 618, 619, 620, 621, 32767, 622, 32767, 624, 625, 626, 627, + 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, 249, + 32767, 250, 251, 252, 253, 254, 255, 32767, 256, 257, 258, 259, 260, 261, 262, 32767, 263, 264, + 265, 266, 267, 268, 269, 32767, 32767, 270, 271, 272, 273, 274, 32767, 275, 276, 277, 278, 279, + 32767, 280, 32767, 32767, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 32767, 292, + 293, 294, 295, 296, 297, 32767, 298, 299, 300, 32767, 32767, 301, 32767, 302, 32767, 32767, + 32767, 303, 304, 32767, 32767, 32766, 305, 306, 307, 308, 309, 310, 311, 32767, 312, 32767, + 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 326, 327, + 32767, 32766, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 32767, 32767, 347, 32767, 32767, 348, 349, 350, + 351, 352, 32767, 353, 32767, 354, 32767, 355, 356, 32766, 357, 358, 359, 360, 361, 32767, 362, + 32767, 363, 364, 365, 32767, 32767, 366, 32767, 367, 368, 369, 32767, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 387, 388, 389, 390, 391, + 392, 393, 32767, 394, 32767, 395, 396, 32767, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 32767, 32766, 32767, 419, 420, 421, + 32767, 422, 423, 32767, 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, + 32767, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 32767, + 460, 461, 462, 32767, 32767, 463, 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, 470, 471, + 472, 32767, 32767, 473, 474, 475, 32767, 32767, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, + 513, 514, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 32767, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, + 546, 32767, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 32767, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32767, 32767, 32767, 32767, 585, 586, 587, + 588, 589, 590, 591, 592, 32767, 593, 594, 595, 32766, 32767, 596, 597, 598, 599, 600, 32767, + 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, + 614, 32767, 32767, 615, 616, 617, 618, 619, 620, 621, 32767, 622, 623, 624, 625, 626, 627, + 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32766, + 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 1242, 32767, 32767, 247, + 248, 249, 32767, 250, 251, 252, 253, 254, 255, 1243, 256, 257, 258, 1244, 260, 1245, 1246, + 32767, 263, 264, 265, 266, 267, 268, 269, 1247, 1248, 270, 271, 1249, 273, 1250, 32767, 275, + 276, 277, 278, 1251, 32767, 1252, 32767, 32767, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, 298, 299, 300, 1253, 1254, 301, 1255, + 1256, 1257, 1258, 1259, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 1260, 1261, 311, + 1262, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, + 324, 325, 832, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, + 336, 32767, 337, 338, 339, 340, 1263, 342, 343, 344, 345, 1264, 32767, 1265, 347, 1266, 32767, + 348, 349, 350, 1267, 352, 32767, 353, 32767, 354, 32767, 355, 356, 32767, 357, 358, 359, 360, + 361, 32767, 362, 32767, 1268, 1269, 365, 32767, 32767, 366, 32767, 367, 368, 369, 782, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 387, + 388, 389, 390, 391, 392, 1270, 32767, 1271, 32767, 1272, 396, 32767, 397, 398, 399, 400, 1273, + 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 410, 1282, 412, 413, 414, 415, 416, 417, 418, + 32767, 2034, 32767, 419, 1283, 421, 32767, 422, 423, 32767, 424, 425, 426, 1284, 1285, 427, + 428, 429, 430, 1286, 32767, 431, 432, 433, 434, 435, 436, 1287, 438, 439, 440, 441, 32767, + 32767, 32767, 32767, 32767, 442, 443, 1288, 444, 445, 1289, 447, 1290, 449, 450, 451, 452, 453, + 454, 455, 456, 457, 1291, 459, 1292, 460, 461, 462, 32767, 1293, 463, 1294, 32767, 465, 1295, + 1296, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 1297, 474, 475, 32767, 32767, 476, + 477, 478, 479, 480, 481, 1298, 483, 484, 485, 1299, 486, 1300, 487, 488, 489, 490, 491, 492, + 493, 32767, 494, 495, 496, 1301, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, + 509, 32767, 1302, 510, 511, 512, 32766, 513, 1303, 515, 516, 517, 32767, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 534, 535, 536, 537, 538, + 539, 1304, 541, 32767, 542, 543, 544, 545, 546, 716, 547, 548, 549, 550, 32767, 551, 552, 553, + 554, 555, 1305, 556, 557, 558, 559, 560, 561, 562, 563, 1306, 565, 32767, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 1307, 582, 32767, 583, 584, 1308, 32767, + 32767, 32767, 32767, 585, 586, 587, 588, 589, 590, 591, 592, 32767, 593, 1310, 1311, 32767, + 2667, 596, 597, 1312, 599, 1313, 1314, 601, 602, 2668, 603, 604, 605, 32767, 606, 607, 608, + 609, 2669, 1315, 610, 611, 612, 613, 614, 1316, 32766, 615, 616, 617, 618, 619, 620, 1317, + 32767, 622, 623, 624, 625, 626, 627, 32767, 5842, 628, 2670, 32767, 629, 630, 32767, 32767, + 631, 632, 633, 1318, 634, 1319, 1320, 1321, 1322, 639, 1323, 1324, 1325, 1326, 644, 645, 646, + 647, 648, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 1578, 32767, 32767, 32767, 2184, + 32767, 1579, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 1687, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, + 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, + 32767, 32767, 32767, 32767, 32766, 32767, 4937, 32767, 1581, 32767, 32767, 32767, 32766, 32767, + 32767, 32767, 2233, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, + 32767, 2251, 32766, 32766, 32767, 32766, 2255, 32767, 32767, 32767, 32766, 32767, 32766, 32767, + 32767, 32767, 2671, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 1688, + 32767, 1582, 32767, 32767, 32767, 32767, 32767, 32766, 1583, 32767, 32767, 32767, 32767, 32767, + 1584, 2672, 2673, 2289, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32766, 32767, 2315, 1585, 2674, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 2327, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 2339, 32767, 32766, 32767, + 32766, 32767, 32767, 32767, 1586, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 2359, 2360, 2361, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2675, 32767, 32767, 2676, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2386, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 2412, 2413, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 32767, 1689, 32766, 32767, 32767, 1588, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32766, 32767, 32767, 1589, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 1590, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 1591, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, + 32766, 32767, 32767, 32767, 2494, 2495, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 3779, 32767, 32767, 1593, 1594, 32766, 32766, 32767, + 32767, 2518, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 1242, 32767, 32766, 247, + 248, 249, -2322, 250, 251, 252, 253, 254, 255, 1243, 256, 257, 258, 1244, 260, 1245, 1246, + 32766, 263, 264, 265, 266, 267, 268, 269, 1247, 1248, 270, 271, 1249, 273, 1250, 32767, 275, + 276, 277, 278, 1251, 32767, 1252, 32767, 32767, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 32766, 292, 293, 294, 295, 296, 297, 32766, 298, 299, 300, 1253, 1254, 301, 1255, + 1256, 1257, 1258, 1259, 303, 304, 32767, 32767, 1596, 305, 306, 307, 308, 1260, 1261, 311, + 1262, 312, 5488, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, + 324, 325, 832, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, + 336, 32767, 337, 338, 339, 340, 1263, 342, 343, 344, 345, 1264, 32767, 1265, 347, 1266, 32767, + 348, 349, 350, 1267, 352, 32767, 353, 32767, 354, 32767, 355, 356, 32767, 357, 358, 359, 360, + 361, 32767, 362, 32767, 1268, 1269, 365, 32767, 32767, 366, 32767, 367, 368, 369, 782, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 387, + 388, 389, 390, 391, 392, 1270, 32767, 1271, 32767, 1272, 396, 32767, 397, 398, 399, 400, 1273, + 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 410, 1282, 412, 413, 414, 415, 416, 417, 418, + 32767, 32767, 32767, 419, 1283, 421, 32767, 422, 423, 32767, 424, 425, 426, 1284, 1285, 427, + 428, 429, 430, 1286, 32767, 431, 432, 433, 434, 435, 436, 1287, 438, 439, 440, 441, 32767, + 32767, 32767, 32767, 32767, 442, 443, 1288, 444, 445, 1289, 447, 1290, 449, 450, 451, 452, 453, + 454, 455, 456, 457, 1291, 459, 1292, 460, 461, 462, 32767, 1293, 463, 1294, 32767, 465, 1295, + 1296, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 1297, 474, 475, 32767, 32767, 476, + 477, 478, 479, 480, 481, 1298, 483, 484, 485, 1299, 486, 1300, 487, 488, 489, 490, 491, 492, + 493, 32767, 494, 495, 496, 1301, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, + 509, 32767, 1302, 510, 511, 512, 32767, 513, 1303, 515, 516, 517, 32767, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32766, 532, 533, 534, 535, 536, 537, 538, + 539, 1304, 541, -2379, 542, 543, 544, 545, 546, 716, 547, 548, 549, 550, 47, 551, 552, 553, + 554, 555, 1305, 556, 557, 558, 559, 560, 561, 562, 563, 1306, 565, 32767, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 1307, 582, 32767, 583, 584, 1308, 32767, + 32767, 32767, 51, 585, 586, 587, 588, 589, 590, 591, 592, 32767, 593, 1310, 1311, 32767, 32767, + 596, 597, 1312, 599, 1313, 1314, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, + 32767, 1315, 610, 611, 612, 613, 614, 1316, 32767, 615, 616, 617, 618, 1202, 620, 1317, 32767, + 622, 623, 624, 625, 626, 627, 32767, 32767, 628, 32767, 56, 629, 630, 32767, 57, 631, 632, 633, + 1318, 634, 1319, 1320, 1321, 1322, 639, 1323, 1324, 1325, 1326, 644, 645, 646, 647, 648, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 1242, + 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 254, 255, 1243, 256, 257, 258, 1244, + 260, 1245, 1246, 32767, 263, 264, 265, 266, 267, 268, 269, 1247, 1248, 270, 271, 1249, 273, + 1250, 32767, 275, 276, 277, 278, 1251, 32767, 1252, 32767, 32767, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, 298, 299, 300, 1253, 1254, + 301, 1255, 1256, 1257, 1258, 1259, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 1260, + 1261, 311, 1262, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, + 32767, 32767, 324, 325, 832, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, + 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 1263, 342, 343, 344, 345, 1264, 32767, 1265, + 347, 1266, 32767, 348, 349, 350, 1267, 352, 32767, 353, 32767, 354, 32767, 355, 356, 32767, + 357, 358, 359, 360, 361, 32767, 362, 32767, 1268, 1269, 365, 32767, 32767, 366, 32767, 367, + 368, 369, 782, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 32767, 386, 387, 388, 389, 390, 391, 392, 1270, 32767, 1271, 32767, 1272, 396, 32767, 397, 398, + 399, 400, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 410, 1282, 412, 413, 414, 415, + 416, 417, 418, 32767, 32767, 32767, 419, 1283, 421, 32767, 422, 423, 32767, 424, 425, 426, + 1284, 1285, 427, 428, 429, 430, 1286, 32767, 431, 432, 433, 434, 435, 436, 1287, 438, 439, 440, + 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 1288, 444, 445, 1289, 447, 1290, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 1291, 459, 1292, 460, 461, 462, 32767, 1293, 463, 1294, + 32767, 465, 1295, 1296, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 1297, 474, 475, + 32767, 32767, 476, 477, 478, 479, 480, 481, 1298, 483, 484, 485, 1299, 486, 1300, 487, 488, + 489, 490, 491, 492, 493, 32767, 494, 495, 496, 1301, 498, 499, 500, 501, 502, 32767, 503, 504, + 505, 506, 507, 508, 509, 32767, 1302, 510, 511, 512, 32767, 513, 1303, 515, 516, 517, 32767, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32766, 532, 533, 534, + 535, 536, 537, 538, 539, 1304, 541, -2379, 542, 543, 544, 545, 546, 716, 547, 548, 549, 550, + 32767, 551, 552, 553, 554, 555, 1305, 556, 557, 558, 559, 560, 561, 562, 563, 1306, 565, 32767, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 1307, 582, 32767, + 583, 584, 1308, 32767, 32767, 32767, 32767, 585, 586, 587, 588, 589, 590, 591, 592, 32767, 593, + 1310, 1311, 32767, 32766, 596, 597, 1312, 599, 1313, 1314, 601, 602, 32766, 603, 604, 605, + 32767, 606, 607, 608, 609, 32766, 1315, 610, 611, 612, 613, 614, 1316, 32767, 615, 616, 617, + 618, 619, 620, 1317, 32767, 622, 623, 624, 625, 626, 627, 32767, 32767, 628, 32766, 32767, 629, + 630, 32767, 32767, 631, 632, 633, 1318, 634, 1319, 1320, 1321, 1322, 639, 1323, 1324, 1325, + 1326, 644, 645, 646, 647, 648, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 2667, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32766, 2668, 32766, 32767, 32767, 32767, + 32767, 32767, 32766, 32767, 2669, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 1039, 32767, 32767, 32767, 32767, 32767, + 32767, 32766, 32767, 32767, 2670, 32767, 32767, -1703, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32766, 6415, 32767, 32766, 32767, 32767, 32767, -1703, 32766, 32767, 32767, + 32767, 32767, -1703, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 4066, 32767, 32767, + 32767, 2184, 32767, -2273, 32766, 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32767, + 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32766, 32767, + 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, -1703, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 2233, 32767, 32767, 32767, 32767, 32767, 32766, 32767, + 32766, 32766, 32767, 32767, 32767, 1040, 32767, 32767, 32767, 32767, 32766, 32767, 32766, + -1703, 32767, 32767, 32767, 2251, 32767, 32767, 32767, 32767, 2255, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 2671, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 3350, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 2672, 2673, 2289, 32767, 32766, 32766, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, -1703, 32767, 32767, 32767, 32767, + 32767, 32766, 32766, 32767, 32766, -1703, 32767, 32767, 2315, 32767, 2674, 32767, 32767, 32767, + 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 2327, 32767, 32767, 32767, 32767, + 32766, 32767, 6416, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 2339, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2359, 2360, 2361, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2675, + 32767, 1238, 2676, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, + 2386, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 2412, 2413, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32766, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, -1703, 32767, 32767, 32767, 32767, 32767, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2677, 32767, 32767, 32767, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, + 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2494, 2495, 32766, + 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2518, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2518, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 2668, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 2669, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 2670, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2184, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 2233, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2251, + 32766, 32766, 32766, 32766, 2255, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 2671, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 2672, 2673, 2289, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 2315, 32766, 2674, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 2327, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 2339, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 2359, 2360, 2361, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2675, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 2386, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2412, 2413, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 2677, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2494, 2495, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 2518, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, + 32767, 1242, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 254, 255, 1243, 256, 257, + 258, 1244, 260, 1245, 1246, 32767, 263, 264, 265, 266, 267, 268, 269, 1247, 1248, 270, 271, + 1249, 273, 1250, 32767, 275, 276, 277, 278, 1251, 32767, 1252, 32767, 32767, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, 298, 299, + 300, 1253, 1254, 301, 1255, 1256, 1257, 1258, 1259, 303, 304, 32767, 32767, 32767, 305, 306, + 307, 308, 1260, 1261, 311, 1262, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, + 321, 322, 323, 32767, 32767, 324, 325, 832, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, + 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 1263, 342, 343, 344, 345, 1264, + 32767, 1265, 347, 1266, 32767, 348, 349, 350, 1267, 352, 32767, 353, 32767, 354, 32767, 355, + 356, 32767, 357, 358, 359, 360, 361, 32767, 362, 32767, 1268, 1269, 365, 32767, 32767, 366, + 32767, 367, 368, 369, 782, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 32767, 386, 387, 388, 389, 390, 391, 392, 1270, 32767, 1271, 32767, 1272, 396, + 32767, 397, 398, 399, 400, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 410, 1282, + 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 1283, 421, 32767, 422, 423, 32767, + 424, 425, 426, 1284, 1285, 427, 428, 429, 430, 1286, 32767, 431, 432, 433, 434, 435, 436, 1287, + 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 1288, 444, 445, 1289, 447, + 1290, 449, 450, 451, 452, 453, 454, 455, 456, 457, 1291, 459, 1292, 460, 461, 462, 32767, 1293, + 463, 1294, 32767, 465, 1295, 1296, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 1297, + 474, 475, 32767, 32767, 476, 477, 478, 479, 480, 481, 1298, 483, 484, 485, 1299, 486, 1300, + 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 1301, 498, 499, 500, 501, 502, 32767, + 503, 504, 505, 506, 507, 508, 509, 32767, 1302, 510, 511, 512, 32767, 513, 1303, 515, 516, 517, + 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, + 534, 535, 536, 537, 538, 539, 1304, 541, -2281, 542, 543, 544, 545, 546, 716, 547, 548, 549, + 550, 32767, 551, 552, 553, 554, 555, 1305, 556, 557, 558, 559, 560, 561, 562, 563, 1306, 565, + 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 1307, 582, + 32767, 583, 584, 1308, 32767, 32767, 32767, 32767, 585, 586, 587, 588, 589, 590, 591, 592, + 32767, 593, 1310, 1311, 32767, 32767, 596, 597, 1312, 599, 1313, 1314, 601, 602, 32767, 603, + 604, 605, 32767, 606, 607, 608, 609, 32767, 1315, 610, 611, 612, 613, 614, 1316, 32767, 615, + 616, 617, 618, 619, 620, 1317, 32767, 622, 623, 624, 625, 626, 627, 32767, 32767, 628, 32767, + 32767, 629, 630, 32767, 32767, 631, 632, 633, 1318, 634, 1319, 1320, 1321, 1322, 639, 1323, + 1324, 1325, 32766, 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, + 244, 245, 246, 32767, 32767, 32767, 32767, 1242, 32767, 32767, 247, 248, 249, 32767, 250, 251, + 252, 253, 254, 255, 1243, 256, 257, 258, 1244, 260, 1245, 1246, 32767, 263, 264, 265, 266, 267, + 268, 269, 1247, 1248, 270, 271, 1249, 273, 1250, 32767, 275, 276, 277, 278, 1251, 32767, 1252, + 32767, 32767, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 32767, 292, 293, 294, 295, + 296, 297, 32767, 298, 299, 300, 1253, 1254, 301, 1255, 1256, 1257, 1258, 1259, 303, 304, 32767, + 32767, 32767, 305, 306, 307, 308, 1260, 1261, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, + 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 832, 327, 32767, 32767, 328, + 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 1263, + 342, 343, 344, 345, 1264, 32767, 1265, 347, 1266, 32767, 348, 349, 350, 1267, 352, 32767, 353, + 32767, 354, 32767, 355, 356, 32767, 357, 358, 359, 360, 361, 32767, 362, 32767, 1268, 1269, + 365, 32767, 32767, 366, 32767, 367, 368, 369, 782, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 32767, 386, 387, 388, 389, 390, 391, 392, 1270, 32767, 1271, + 32767, 1272, 396, 32767, 397, 398, 399, 400, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, + 1281, 410, 1282, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 1283, 421, 32767, + 422, 423, 32767, 424, 425, 426, 1284, 1285, 427, 428, 429, 430, 3300, 32767, 431, 432, 433, + 434, 435, 436, 1287, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 3301, + 444, 445, 1289, 447, 1290, 449, 450, 451, 452, 453, 454, 455, 456, 457, 1291, 459, 32767, 460, + 461, 462, 32767, 32767, 463, 1294, 32767, 465, 1295, 1296, 467, 468, 469, 32767, 470, 471, 472, + 32767, 32767, 1297, 474, 475, 32767, 32767, 476, 477, 478, 479, 480, 481, 1298, 483, 484, 485, + 1299, 486, 1300, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 1301, 498, 499, 500, + 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 3302, 510, 511, 512, 32767, 513, + 1303, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 32767, 532, 533, 534, 535, 536, 537, 538, 539, 32766, 541, 32767, 542, 543, 544, 545, 546, + 716, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 1305, 556, 557, 558, 559, 560, 561, + 562, 563, 1306, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, + 579, 580, 1307, 582, 32767, 583, 584, 1308, 32767, 32767, 32767, 32767, 585, 586, 587, 588, + 589, 590, 591, 592, 32767, 593, 1310, 1311, 32767, 32767, 596, 597, 1312, 599, 1313, 1314, 601, + 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, + 1316, 32767, 615, 616, 617, 618, 619, 620, 1317, 32767, 622, 623, 624, 625, 626, 627, 32767, + 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 1318, 634, 1319, 1320, 1321, + 1322, 639, 1323, 1324, 1325, 1326, 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 1242, 32767, 32767, 247, 248, 249, + 32767, 250, 251, 252, 253, 254, 255, 1243, 256, 257, 258, 1244, 260, 1245, 1246, 32767, 263, + 264, 265, 266, 267, 268, 269, 1247, 1248, 270, 271, 1249, 273, 1250, 32767, 275, 276, 277, 278, + 1251, 32767, 1252, 32767, 32767, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 32767, + 292, 293, 294, 295, 296, 297, 32767, 298, 299, 300, 1253, 1254, 301, 1255, 1256, 1257, 1258, + 1259, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 1260, 1261, 311, 1262, 312, 32767, + 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 832, 327, + 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, + 338, 339, 340, 1263, 342, 343, 344, 345, 1264, 32767, 1265, 347, 1266, 32767, 348, 349, 350, + 1267, 352, 32767, 353, 32767, 354, 32767, 355, 356, 32767, 357, 358, 359, 360, 361, 32767, 362, + 32767, 1268, 1269, 365, 32767, 32767, 366, 32767, 367, 368, 369, 782, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 387, 388, 389, 390, 391, + 392, 1270, 32767, 1271, 32767, 1272, 396, 32767, 397, 398, 399, 400, 1273, 1274, 1275, 1276, + 1277, 1278, 1279, 1280, 1281, 410, 1282, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, + 32767, 419, 1283, 421, 32767, 422, 423, 32767, 424, 425, 426, 1284, 1285, 427, 428, 429, 430, + 1286, 32767, 431, 432, 433, 434, 435, 436, 1287, 438, 439, 440, 441, 32767, 32767, 32767, + 32767, 32767, 442, 443, 1288, 444, 445, 1289, 447, 1290, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 1291, 459, 1292, 460, 461, 462, 32767, 1293, 463, 1294, 32767, 465, 1295, 1296, 467, + 468, 469, 32767, 470, 471, 472, 32767, 32767, 1297, 474, 475, 32767, 32767, 476, 477, 478, 479, + 480, 481, 1298, 483, 484, 485, 1299, 486, 1300, 487, 488, 489, 490, 491, 492, 493, 32767, 494, + 495, 496, 1301, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 1302, + 510, 511, 512, 32767, 513, 1303, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 32767, 532, 533, 534, 535, 536, 537, 538, 539, 1304, 541, 32766, + 542, 543, 544, 545, 546, 716, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 1305, 556, + 557, 558, 559, 560, 561, 562, 563, 1306, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 1307, 582, 32767, 583, 584, 1308, 32767, 32767, 32767, + 32767, 585, 586, 587, 588, 589, 590, 591, 592, 32767, 593, 1310, 1311, 32767, 32767, 596, 597, + 1312, 599, 1313, 1314, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 1315, + 610, 611, 612, 613, 614, 1316, 32767, 615, 616, 617, 618, 619, 620, 1317, 32767, 622, 623, 624, + 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 1318, + 634, 1319, 1320, 1321, 1322, 639, 1323, 1324, 1325, 1326, 644, 645, 646, 647, 648, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 1242, + 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 254, 255, 1243, 256, 257, 258, 1244, + 260, 1245, 1246, 3314, 263, 264, 265, 266, 267, 268, 269, 1247, 1248, 270, 271, 1249, 273, + 1250, 32767, 275, 276, 277, 278, 1251, 32767, 1252, 32767, 32767, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, 298, 299, 300, 1253, 1254, + 301, 1255, 1256, 1257, 1258, 1259, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 1260, + 1261, 311, 1262, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, + 32767, 32767, 324, 325, 832, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, + 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 1263, 342, 343, 344, 345, 1264, 32767, 1265, + 347, 1266, 32767, 348, 349, 350, 1267, 352, 32767, 353, 32767, 354, 32767, 355, 356, 3315, 357, + 358, 359, 360, 361, 32767, 362, 32767, 1268, 1269, 365, 32767, 32767, 366, 32767, 367, 368, + 369, 782, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 32767, 386, 387, 388, 389, 390, 391, 392, 1270, 32767, 1271, 32767, 1272, 396, 32767, 397, 398, + 399, 400, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 410, 1282, 412, 413, 414, 415, + 416, 417, 418, 32767, 32767, 3316, 419, 1283, 421, 32767, 422, 423, 32767, 424, 425, 426, 1284, + 1285, 427, 428, 429, 430, 1286, 32767, 431, 432, 433, 434, 435, 436, 1287, 438, 439, 440, 441, + 32767, 32767, 32767, 32767, 32767, 442, 443, 1288, 444, 445, 1289, 447, 1290, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 1291, 459, 1292, 460, 461, 462, 32767, 1293, 463, 1294, 32767, + 465, 1295, 1296, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 1297, 474, 475, 32767, + 32767, 476, 477, 478, 479, 480, 481, 1298, 483, 484, 485, 1299, 486, 1300, 487, 488, 489, 490, + 491, 492, 493, 32767, 494, 495, 496, 1301, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, + 507, 508, 509, 32767, 1302, 510, 511, 512, 32767, 513, 1303, 515, 516, 517, 32767, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 534, 535, 536, + 537, 538, 539, 1304, 541, 32767, 542, 543, 544, 545, 546, 716, 547, 548, 549, 550, 32767, 551, + 552, 553, 554, 555, 1305, 556, 557, 558, 559, 560, 561, 562, 563, 1306, 565, 32767, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 1307, 582, 32767, 583, 584, + 1308, 32767, 32767, 32767, 32767, 585, 586, 587, 588, 589, 590, 591, 592, 32767, 593, 1310, + 1311, 32767, 32766, 596, 597, 1312, 599, 1313, 1314, 601, 602, 32767, 603, 604, 605, 32767, + 606, 607, 608, 609, 32767, 1315, 610, 611, 612, 613, 614, 1316, 32767, 615, 616, 617, 618, 619, + 620, 1317, 32767, 622, 623, 624, 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, 630, + 32767, 32767, 631, 632, 633, 1318, 634, 1319, 1320, 1321, 1322, 639, 1323, 1324, 1325, 1326, + 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, + 32767, 32767, 32767, 32767, 1242, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 254, + 255, 1243, 256, 257, 258, 1244, 260, 1245, 1246, 32767, 263, 264, 265, 266, 267, 268, 269, + 1247, 1248, 270, 271, 1249, 273, 1250, 32767, 275, 276, 277, 278, 1251, 32767, 1252, 32767, + 32767, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, + 297, 32767, 298, 299, 300, 1253, 1254, 301, 1255, 1256, 1257, 1258, 1259, 303, 304, 32767, + 32767, 32767, 305, 306, 307, 308, 1260, 1261, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, + 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 832, 327, 32767, 32767, 328, + 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 1263, + 342, 343, 344, 345, 1264, 32767, 1265, 347, 1266, 32767, 348, 349, 350, 1267, 352, 32767, 353, + 32767, 354, 32767, 355, 356, 32767, 357, 358, 359, 360, 361, 32767, 362, 32767, 1268, 1269, + 365, 32767, 32767, 366, 32767, 367, 368, 369, 782, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 32767, 386, 387, 388, 389, 390, 391, 392, 1270, 32767, 1271, + 32767, 1272, 396, 32767, 397, 398, 399, 400, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, + 1281, 410, 1282, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 1283, 421, 32767, + 422, 423, 32767, 424, 425, 426, 1284, 1285, 427, 428, 429, 430, 3300, 32767, 431, 432, 433, + 434, 435, 436, 1287, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, + 444, 445, 1289, 447, 1290, 449, 450, 451, 452, 453, 454, 455, 456, 457, 1291, 459, 32767, 460, + 461, 462, 32767, 32767, 463, 1294, 32767, 465, 1295, 1296, 467, 468, 469, 32767, 470, 471, 472, + 32767, 32767, 473, 474, 475, 32767, 32767, 476, 477, 478, 479, 480, 481, 1298, 483, 484, 485, + 32767, 486, 1300, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 1301, 498, 499, 500, + 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, + 1303, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 32767, 532, 533, 534, 535, 536, 537, 538, 539, 32766, 541, 32767, 542, 543, 544, 545, 546, + 716, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 1305, 556, 557, 558, 559, 560, 561, + 562, 563, 1306, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, + 579, 580, 1307, 582, 32767, 583, 584, 1308, 32767, 32767, 32767, 32767, 585, 586, 587, 588, + 589, 590, 591, 592, 32767, 593, 1310, 1311, 32767, 32767, 596, 597, 1312, 599, 1313, 1314, 601, + 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, + 1316, 32767, 615, 616, 617, 618, 619, 620, 1317, 32767, 622, 623, 624, 625, 626, 627, 32767, + 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 1318, 634, 1319, 1320, 1321, + 1322, 639, 1323, 1324, 1325, 1326, 644, 645, 646, 647, 648, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 1383, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 1384, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 1386, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 1387, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 1388, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 1389, 32766, 32766, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 1242, 32767, 32767, 247, 248, 249, + 32767, 250, 251, 252, 253, 254, 255, 1243, 256, 257, 258, 1244, 260, 1245, 1246, 32767, 263, + 264, 265, 266, 267, 268, 269, 1247, 1248, 270, 271, 1249, 273, 1250, 32767, 275, 276, 277, 278, + 1251, 32767, 1252, 32767, 32767, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 32767, + 292, 293, 294, 295, 296, 297, 32766, 298, 299, 300, 1253, 1254, 301, 1255, 1256, 1257, 1258, + 1259, 303, 304, 32767, 32767, 32766, 305, 306, 307, 308, 1260, 1261, 311, 1262, 312, 32767, + 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 832, 327, + 32766, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32766, 337, + 338, 339, 340, 1263, 342, 343, 344, 345, 1264, 32767, 1265, 347, 1266, 32766, 348, 349, 350, + 1267, 352, 32766, 353, 32767, 354, 32766, 355, 356, 32766, 357, 358, 359, 360, 361, 32766, 362, + 32767, 1268, 1269, 365, 32766, 32767, 366, 32766, 367, 368, 369, 782, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 387, 388, 389, 390, 391, + 392, 1270, 32766, 1271, 32766, 1272, 396, 32767, 397, 398, 399, 400, 1273, 1274, 1275, 1276, + 1277, 1278, 1279, 1280, 1281, 410, 1282, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, + 32767, 419, 1283, 421, 32767, 422, 423, 32766, 424, 425, 426, 1284, 1285, 427, 428, 429, 430, + 1286, 32767, 431, 432, 433, 434, 435, 436, 1287, 438, 439, 440, 441, 32767, 32767, 32767, + 32767, 32767, 442, 443, 1288, 444, 445, 1289, 447, 1290, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 1291, 459, 1292, 460, 461, 462, 32767, 1293, 463, 1294, 32767, 465, 1295, 1296, 467, + 468, 469, 32766, 470, 471, 472, 32766, 32767, 1297, 474, 475, 32767, 32766, 476, 477, 478, 479, + 480, 481, 1298, 483, 484, 485, 1299, 486, 1300, 487, 488, 489, 490, 491, 492, 493, 32767, 494, + 495, 496, 1301, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 1302, + 510, 511, 512, 32767, 513, 1303, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 32766, 532, 533, 534, 535, 536, 537, 538, 539, 1304, 541, 32766, + 542, 543, 544, 545, 546, 716, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 1305, 556, + 557, 558, 559, 560, 561, 562, 563, 1306, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 1307, 582, 32767, 583, 584, 1308, 32766, 32767, 32767, + 32767, 585, 586, 587, 588, 589, 590, 591, 592, 32767, 593, 1310, 1311, 32767, 32767, 596, 597, + 1312, 599, 1313, 1314, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32766, 1315, + 610, 611, 612, 613, 614, 1316, 32767, 615, 616, 617, 618, 619, 620, 1317, 32767, 622, 623, 624, + 625, 626, 627, 32767, 32766, 628, 32766, 32766, 629, 630, 32767, 32767, 631, 632, 633, 1318, + 634, 1319, 1320, 1321, 1322, 639, 1323, 1324, 1325, 1326, 644, 645, 646, 647, 648, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 3341, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, -2999, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, -2999, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, -2999, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, -2999, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, -2999, 32766, + 32766, 32766, 32766, 32766, -2999, 32766, 32767, 32766, -2999, 32766, 32766, -2999, 32766, + 32766, 32766, 32766, 32766, -2999, 32766, 32767, 32766, 32766, 32766, -2999, 32767, 32766, + -2999, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, -2999, 32766, -2999, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32767, + 32766, 32766, -2999, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, -2999, + 32766, 32766, 32766, -2999, 32767, 32766, 32766, 32766, 32767, -2999, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, -2999, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, -2999, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 3342, 32766, 32766, 32766, -2999, 32767, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, -2999, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, -2999, + 32766, -2999, -2999, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 32767, 255, 32767, 256, 257, + 258, 259, 32767, 261, 262, 32767, 263, 264, 265, 266, 267, 268, 269, 32767, 32767, 270, 271, + 272, 273, 274, 32767, 275, 276, 277, 278, 279, 32767, 32767, 32767, 32767, 281, 282, 283, 284, + 285, 286, 32767, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32766, 32767, 299, + 300, 32767, 32767, 301, 32767, 32767, 32767, 32767, 32767, 303, 304, 32767, 32767, 32766, 305, + 306, 307, 308, 309, 310, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, + 321, 322, 323, 32767, 32767, 324, 325, 326, 327, 32766, 32767, 328, 32767, 329, 330, 331, 332, + 32767, 333, 32767, 334, 335, 336, 32766, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 32767, 32767, 347, 32767, 32766, 348, 349, 350, 351, 352, 32766, 353, 32767, 354, 32766, 355, + 32767, 32766, 32767, 358, 359, 360, 361, 32766, 362, 32767, 363, 364, 365, 32766, 32767, 366, + 32766, 367, 368, 369, 32767, 657, 371, 372, 32767, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 32767, 386, 32767, 388, 389, 390, 391, 392, 393, 32766, 394, 32766, 395, 396, + 32767, 32767, 32767, 399, 32767, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, 32767, 32767, 422, 32767, 32766, + 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, + 32767, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, 32767, + 32767, 32767, 463, 464, 32767, 465, 32767, 466, 467, 468, 469, 32766, 470, 471, 472, 32766, + 32767, 473, 474, 475, 32767, 32766, 476, 477, 32767, 479, 480, 32767, 482, 483, 484, 485, + 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, + 514, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 32766, 532, 533, 32767, 535, 536, 537, 538, 539, 540, 541, 32766, 542, 543, 544, 545, 546, + 32767, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 32767, 556, 557, 558, 559, 560, + 32767, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32766, 32767, 32767, 32767, 585, 32767, 587, + 588, 589, 590, 591, 592, 32767, 593, 594, 595, 32767, 32767, 596, 597, 598, 599, 600, 32767, + 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32766, 32767, 610, 611, 612, 613, + 614, 32767, 32767, 615, 616, 617, 618, 619, 620, 621, 32767, 622, 32767, 624, 625, 626, 627, + 32767, 32766, 628, 32766, 32766, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 32766, 244, 245, 246, 32767, 32767, 32767, 32766, 1242, 32767, 32767, 247, 248, 249, + 32767, 250, 251, 252, 253, 254, 255, 1243, 256, 257, 258, 1244, 260, 1245, 1246, 32767, 263, + 264, 265, 266, 267, 268, 269, 1247, 1248, 270, 271, 1249, 273, 1250, 32767, 275, 276, 277, 278, + 1251, 32767, 1252, 32767, 32767, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 32767, + 292, 293, 294, 295, 296, 297, 32767, 298, 299, 300, 1253, 1254, 301, 1255, 1256, 1257, 1258, + 1259, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 1260, 1261, 311, 1262, 312, 32767, + 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 832, 327, + 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, + 338, 339, 340, 1263, 342, 343, 344, 345, 1264, 32767, 1265, 347, 1266, 32767, 348, 349, 350, + 1267, 352, 32767, 353, 32767, 354, 32767, 355, 356, 32767, 357, 358, 359, 360, 361, 32767, 362, + 32767, 1268, 1269, 365, 32767, 32767, 366, 32767, 367, 368, 369, 782, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 387, 388, 389, 390, 391, + 392, 1270, 32767, 1271, 32767, 1272, 396, 32767, 397, 398, 399, 400, 1273, 1274, 1275, 1276, + 1277, 1278, 1279, 1280, 1281, 410, 1282, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, + 32767, 419, 1283, 421, 32767, 422, 423, 32767, 424, 425, 426, 1284, 1285, 427, 428, 429, 430, + 1286, 32767, 431, 432, 433, 434, 435, 436, 1287, 438, 439, 440, 441, 32767, 32767, 32767, + 32767, 32767, 442, 443, 1288, 444, 445, 1289, 447, 1290, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 1291, 459, 1292, 460, 461, 462, 32767, 1293, 463, 1294, 32767, 465, 1295, 1296, 467, + 468, 469, 32767, 470, 471, 472, 32767, 32767, 1297, 474, 475, 32767, 32767, 476, 477, 478, 479, + 480, 481, 1298, 483, 484, 485, 1299, 486, 1300, 487, 488, 489, 490, 491, 492, 493, 32767, 494, + 495, 496, 1301, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 1302, + 510, 511, 512, 32767, 513, 1303, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 32767, 532, 533, 534, 535, 536, 537, 538, 539, 1304, 541, 32767, + 542, 543, 544, 545, 546, 716, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 1305, 556, + 557, 558, 559, 560, 561, 562, 563, 1306, 565, 32766, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 1307, 582, 32767, 583, 584, 1308, 32767, 32767, 32767, + 32767, 585, 586, 587, 588, 589, 590, 591, 592, 32767, 593, 1310, 1311, 32767, 32767, 596, 597, + 1312, 599, 1313, 1314, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 1315, + 610, 611, 612, 613, 614, 1316, 32767, 615, 616, 617, 618, 619, 620, 1317, 32767, 622, 623, 624, + 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 1318, + 634, 1319, 1320, 1321, 1322, 639, 1323, 1324, 1325, 1326, 644, 645, 646, 647, 648, 235, 236, + 237, 238, 239, 240, 241, 242, 243, -2271, 244, 245, 246, 32767, 32767, 32767, -2271, 1242, + 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 254, 255, 1243, 256, 257, 258, 1244, + 260, 1245, 1246, 32767, 263, 264, 265, 266, 267, 268, 269, 1247, 1248, 270, 271, 1249, 273, + 1250, 32767, 275, 276, 277, 278, 1251, 32767, 1252, 32767, 32767, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32766, 298, 299, 300, 1253, 1254, + 301, 1255, 1256, 1257, 1258, 1259, 303, 304, 32767, 32767, 32766, 305, 306, 307, 308, 1260, + 1261, 311, 1262, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, + 32767, 32767, 324, 325, 832, 327, 32766, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, + 32767, 334, 335, 336, 32766, 337, 338, 339, 340, 1263, 342, 343, 344, 345, 1264, 32767, 1265, + 347, 1266, 32766, 348, 349, 350, 1267, 352, 32766, 353, 32767, 354, 32766, 355, 356, 32766, + 357, 358, 359, 360, 361, 32766, 362, 32767, 1268, 1269, 365, 32766, 32767, 366, 32766, 367, + 368, 369, 782, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 32767, 386, 387, 388, 389, 390, 391, 392, 1270, 32766, 1271, 32766, 1272, 396, 32767, 397, 398, + 399, 400, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 410, 1282, 412, 413, 414, 415, + 416, 417, 418, 32767, 32767, 32767, 419, 1283, 421, 32767, 422, 423, 32766, 424, 425, 426, + 1284, 1285, 427, 428, 429, 430, 1286, 32767, 431, 432, 433, 434, 435, 436, 1287, 438, 439, 440, + 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 1288, 444, 445, 1289, 447, 1290, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 1291, 459, 1292, 460, 461, 462, 32767, 1293, 463, 1294, + 32767, 465, 1295, 1296, 467, 468, 469, 32766, 470, 471, 472, 32766, 32767, 1297, 474, 475, + 32767, 32766, 476, 477, 478, 479, 480, 481, 1298, 483, 484, 485, 1299, 486, 1300, 487, 488, + 489, 490, 491, 492, 493, 32767, 494, 495, 496, 1301, 498, 499, 500, 501, 502, 32767, 503, 504, + 505, 506, 507, 508, 509, 32767, 1302, 510, 511, 512, 32767, 513, 1303, 515, 516, 517, 32767, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32766, 532, 533, 534, + 535, 536, 537, 538, 539, 1304, 541, 32766, 542, 543, 544, 545, 546, 716, 547, 548, 549, 550, + 32767, 551, 552, 553, 554, 555, 1305, 556, 557, 558, 559, 560, 561, 562, 563, 1306, 565, -2271, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 1307, 582, 32767, + 583, 584, 1308, 32766, 32767, 32767, 32767, 585, 586, 587, 588, 589, 590, 591, 592, 32767, 593, + 1310, 1311, 32767, 32767, 596, 597, 1312, 599, 1313, 1314, 601, 602, 32767, 603, 604, 605, + 32767, 606, 607, 608, 609, 32766, 1315, 610, 611, 612, 613, 614, 1316, 32767, 615, 616, 617, + 618, 619, 620, 1317, 32767, 622, 623, 624, 625, 626, 627, 32767, 32766, 628, 32766, 32766, 629, + 630, 32767, 32767, 631, 632, 633, 1318, 634, 1319, 1320, 1321, 1322, 639, 1323, 1324, 1325, + 1326, 644, 645, 646, 647, 648, 32766, 32767, 32767, 1578, 32767, 32767, 32767, 32767, 32767, + 1579, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, + 32767, 32767, 32767, 32767, 3353, 32767, 3354, 32767, 32767, 32767, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 1581, 32766, 32767, 32767, 32766, 32767, 32767, + 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 3355, 32767, 32767, 32766, + 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32766, + 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32766, 32766, + 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 32767, 32767, 1582, 32767, 32767, 4230, 32767, 32767, 32766, 1583, 32767, 32767, 32767, 32767, + 32767, 1584, 32767, 32766, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 3356, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 1585, 32767, 32767, 32766, 32767, 32767, 32767, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 1586, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 3357, 3358, 3359, 3360, 32767, 32767, 32767, 3361, 3362, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 3363, 32767, 32767, 32767, 32767, 32766, 32767, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32767, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 1689, 32767, 32767, 32767, 1588, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 1589, 32767, 32767, 32767, + 32766, 32767, 32767, 32767, 32767, 32766, 1590, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32766, 32767, 32767, 32767, 1591, 32766, 32767, 32767, 32767, 32767, 32767, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 3826, 32767, 32767, 1593, 1594, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 3364, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, + 3365, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 235, + 236, 237, 238, 239, 240, 241, 242, 243, -2269, 244, 245, 246, 32766, 32767, 32767, -2269, 1242, + 32766, 32766, 247, 248, 249, 32767, 250, 251, 252, 253, 254, 255, 1243, 256, 257, 258, 1244, + 260, 1245, 1246, 32767, 263, 264, 265, 266, 267, 268, 269, 1247, 1248, 270, 271, 1249, 273, + 1250, 32767, 275, 276, 277, 278, 1251, 32767, 1252, 32767, 1596, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32766, 298, 299, 300, 1253, 1254, + 301, 1255, 1256, 1257, 1258, 1259, 303, 304, 32767, 32767, 32766, 305, 306, 307, 308, 1260, + 1261, 311, 1262, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, + 32767, 32767, 324, 325, 832, 327, 32766, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, + 32767, 334, 335, 336, 32766, 337, 338, 339, 340, 1263, 342, 343, 344, 345, 1264, 32767, 1265, + 347, 1266, 32766, 348, 349, 350, 1267, 352, 32766, 353, 32767, 354, 32766, 355, 356, 32766, + 357, 358, 359, 360, 361, 32766, 362, 32767, 1268, 1269, 365, 32766, 32767, 366, 32766, 367, + 368, 369, 782, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 32767, 386, 387, 388, 389, 390, 391, 392, 1270, 32766, 1271, 32766, 1272, 396, 32767, 397, 398, + 399, 400, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 410, 1282, 412, 413, 414, 415, + 416, 417, 418, 32767, 32767, 32767, 419, 1283, 421, 32767, 422, 423, 32766, 424, 425, 426, + 1284, 1285, 427, 428, 429, 430, 1286, 32767, 431, 432, 433, 434, 435, 436, 1287, 438, 439, 440, + 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 1288, 444, 445, 1289, 447, 1290, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 1291, 459, 1292, 460, 461, 462, 32767, 1293, 463, 1294, + 32767, 465, 1295, 1296, 467, 468, 469, 32766, 470, 471, 472, 32766, 32767, 1297, 474, 475, + 32767, 32766, 476, 477, 478, 479, 480, 481, 1298, 483, 484, 485, 1299, 486, 1300, 487, 488, + 489, 490, 491, 492, 493, 32767, 494, 495, 496, 1301, 498, 499, 500, 501, 502, 32767, 503, 504, + 505, 506, 507, 508, 509, 32767, 1302, 510, 511, 512, 32767, 513, 1303, 515, 516, 517, 32767, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32766, 532, 533, 534, + 535, 536, 537, 538, 539, 1304, 541, 32766, 542, 543, 544, 545, 546, 716, 547, 548, 549, 550, + 32767, 551, 552, 553, 554, 555, 1305, 556, 557, 558, 559, 560, 561, 562, 563, 1306, 565, -2269, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 1307, 582, 32767, + 583, 584, 1308, 32766, 32767, 32767, 32767, 585, 586, 587, 588, 589, 590, 591, 592, 32767, 593, + 1310, 1311, 32767, 32767, 596, 597, 1312, 599, 1313, 1314, 601, 602, 32767, 603, 604, 605, + 32767, 606, 607, 608, 609, 32766, 1315, 610, 611, 612, 613, 614, 1316, 32767, 615, 616, 617, + 618, 619, 620, 1317, 32767, 622, 623, 624, 625, 626, 627, 32767, 32766, 628, 32766, 32766, 629, + 630, 32767, 32766, 631, 632, 633, 1318, 634, 1319, 1320, 1321, 1322, 639, 1323, 1324, 1325, + 1326, 644, 645, 646, 647, 648, 32766, 32767, 32767, 1578, 32767, 32767, 32767, 32767, 32767, + 1579, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32767, 4111, 32767, 32766, + 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32766, 32767, 32767, + 32767, 32767, 32766, 32767, 32767, 32767, 32766, 1581, 32767, 32767, 32767, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32766, + 32766, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32767, + 32766, 4112, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 4113, 32767, 32767, 1582, 32767, 4114, 32767, 32767, 32767, 32767, 1583, 32767, 32766, 32767, + 32767, 32767, 1584, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 4116, 32767, 32767, 32767, 1585, 32767, 32767, 32767, 32767, 32767, 32767, + 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 3378, + 32767, 32767, 32767, 32767, 4117, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 4118, 32767, 1586, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 4119, 32767, 32767, + 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, + 32767, 32766, 32766, 32767, 32767, 4120, 32767, 32766, 32766, 32767, 32767, 32766, 32767, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 4121, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 1299, 32767, + 32767, 32767, 32767, 6416, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32766, 32767, 32767, 32767, 32767, 1689, 32767, 32767, 32767, 1588, 32767, 32766, 4122, + 4123, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 1589, 32767, 32767, 32766, 32767, + 32767, 32767, 32767, 32767, 32766, 1590, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 1591, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 4258, 32767, 4259, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 4344, 32767, + 32767, 1593, 1594, 32766, 32767, 32766, 32767, 4124, 4125, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32767, + 32766, 32767, 32766, 32766, 32767, 4126, 32767, 32767, 32766, 32767, 32767, 32767, 32766, + 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, -2249, 32766, 32766, 32766, 32766, 32767, + 32766, -2249, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 1596, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, -2249, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 2668, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 2670, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 2184, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 2339, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2412, 2413, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 2494, 2495, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 2518, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 3397, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 254, 255, 32767, 256, 257, 258, 259, + 260, 261, 262, 32767, 263, 264, 265, 266, 267, 268, 269, 32767, 1248, 270, 271, 272, 273, 274, + 32767, 275, 276, 277, 278, 1251, 32767, 1252, 32767, 32767, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, 298, 299, 300, 1253, 1254, 301, + 1255, 1256, 1257, 1258, 1259, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 309, 310, 311, + 32767, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, + 324, 325, 326, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, + 336, 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 1264, 32767, 32767, 347, 32767, 32767, + 348, 349, 350, 351, 352, 32767, 353, 32767, 354, 32767, 355, 356, 32767, 357, 358, 359, 360, + 361, 32767, 362, 32767, 1268, 364, 365, 32767, 32767, 366, 32767, 367, 368, 369, 32767, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 387, + 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, 32767, 397, 398, 399, 400, 3399, + 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 3400, 1282, 412, 413, 414, 415, 416, 417, 418, + 3401, 32767, 32767, 419, 1283, 421, 32767, 422, 423, 32767, 424, 425, 426, 1284, 1285, 427, + 428, 429, 430, 3402, 32767, 431, 432, 433, 434, 435, 436, 1287, 438, 439, 440, 441, 32767, + 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 455, 456, 457, 1291, 459, 32767, 460, 461, 462, 32767, 32767, 463, 1294, 32767, 465, + 32767, 466, 467, 468, 469, 32767, 470, 471, 472, 32767, 912, 473, 474, 475, 32767, 32767, 476, + 477, 478, 479, 480, 481, 1298, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, 491, 492, + 493, 32767, 494, 495, 496, 1301, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, + 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, 32767, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 534, 535, 536, 537, 538, + 539, 540, 3403, 32767, 542, 543, 544, 545, 546, 32767, 547, 548, 549, 550, 32767, 551, 552, + 553, 554, 555, 1305, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 32767, 566, 567, 568, + 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 1307, 582, 32767, 583, 584, 1308, + 32767, 32767, 32767, 32767, 585, 586, 587, 588, 589, 590, 591, 592, 32767, 593, 594, 595, + 32767, 32767, 596, 597, 1312, 599, 1313, 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, + 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, 1316, 32767, 615, 616, 617, 618, 619, + 620, 621, 32767, 622, 623, 624, 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, 630, + 32767, 32767, 631, 632, 633, 32767, 634, 1319, 1320, 1321, 1322, 639, 1323, 1324, 1325, 1326, + 32766, 645, 646, 647, 648, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 1039, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 1040, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, -2424, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, -2424, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, -2424, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 3425, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 720, 32766, + 32766, 32766, 32766, 3458, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 2667, + 32767, 32766, 32766, 32767, 32766, 32767, 2667, 32767, 2668, 32767, 32766, 32767, 32767, 32767, + 32767, 2668, 32767, 2669, 32767, 32767, 32767, 32767, 32767, 32767, 2669, 32766, 32767, 32767, + 32767, 723, 32767, 3459, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 2670, 32767, 32767, 32766, 724, 32766, 32767, 2670, 32767, 32767, 32767, 32767, 32767, + 32766, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 1056, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 2184, 32767, 32766, + 32767, 32767, 32767, 32766, 2184, 4082, 32766, 32767, 32767, 32767, 3460, 32767, 32766, 32767, + 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 727, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 728, 32767, 32767, 32767, 32767, 32767, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 729, 32766, 32767, 2233, 32767, 32767, + 32767, 3461, 32767, 32767, 2233, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32767, 3196, 2251, 32767, 32767, 32767, 32767, 2255, + 32767, 2251, 32767, 1059, 32766, 32767, 2255, 32766, 32767, 2671, 32767, 32767, 32767, 32767, + 32767, 32767, 2671, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 2672, 2673, 2289, 32767, 32767, + -672, 3462, 2672, 2673, 2289, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 2315, 32766, 2674, 733, + 32767, 32766, 32767, 2315, 32767, 2674, 32767, 32766, 32767, 32767, 2327, 32766, 32767, 32766, + 32767, 32767, 32767, 2327, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, + 32767, 32767, 2339, 32767, 32767, 32767, 32767, 32767, 32767, 2339, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2359, 2360, 2361, 32767, 32767, 32767, + 32767, 2359, 2360, 2361, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2675, 32767, + 32766, 2676, 32767, 32766, 32767, 2675, 32767, 32767, 2676, 32767, 32767, 32767, 32767, 2386, + 32766, 32767, 32767, 32767, 32767, 32766, 2386, 214, 3463, 32767, 32767, 738, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 2412, 2413, 32767, 32767, 32766, 32767, 32767, 2412, 2413, 32767, 32767, 32767, 32767, 32767, + 32767, 1063, 32767, 32767, 3464, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 742, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 743, 32767, 32767, 744, 32767, 32767, 32767, 32767, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 32767, 32767, 745, 32766, 32767, 2677, 32767, 32767, 32767, 32767, 1065, 32767, 2677, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 747, 32767, 32767, 1066, 32767, 32766, 32767, 3418, + 749, 32766, 32766, 32767, 32767, 2494, 2495, 32766, 32767, 32767, 32767, 32767, 2494, 2495, + 5709, 32767, 32767, 32766, 32767, 32767, 32767, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 2518, 244, 245, 246, 32767, 32767, 32767, 2518, 32767, 32767, 32767, 247, 248, 249, 754, 250, + 251, 252, 253, 32767, 255, 32767, 256, 257, 258, 259, 32767, 261, 262, 32767, 263, 264, 265, + 266, 267, 268, 269, 32767, 32767, 270, 271, 272, 273, 274, 32767, 275, 276, 277, 278, 279, + 32767, 32767, 32766, 32767, 281, 282, 283, 284, 285, 286, 32767, 288, 289, 290, 291, 32767, + 292, 293, 294, 295, 296, 297, 32767, 32767, 299, 300, 32767, 32767, 301, 32767, 32767, 32767, + 32767, 32767, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32767, 312, + 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32766, 32767, 324, 325, + 326, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, + 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 32767, 32767, 347, 32767, 32767, 348, + 349, 350, 351, 352, 32767, 353, 32767, 354, 32767, 355, 32767, 32767, 32767, 358, 359, 360, + 3468, 32767, 362, 32767, 363, 364, 365, 32767, 32767, 366, 32767, 367, 368, 369, 32767, 657, + 371, 372, 32767, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 32767, + 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, 32767, 32767, 32767, 399, 32767, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 32767, 32767, 32767, 419, 420, 32767, 32767, 422, 32767, 32767, 424, 425, 3469, 32767, 32767, + 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, + 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, 32767, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, 32767, 32767, 32767, 463, 464, 32767, 465, + 32767, 466, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 473, 474, 475, 32767, 32767, + 476, 477, 32767, 479, 480, 32767, 482, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, + 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, + 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, 32767, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 32767, 535, 536, + 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, 546, 32767, 547, 548, 549, 550, 32767, 551, + 552, 553, 554, 555, 32767, 556, 557, 558, 559, 560, 32767, 562, 563, 564, 565, 32767, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 32767, 583, 584, + 32767, 32767, 32767, 32767, 3470, 585, 32767, 587, 588, 3471, 590, 3472, 592, 32767, 593, 594, + 595, 32767, 32767, 596, 597, 598, 599, 600, 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, + 607, 608, 609, 32767, 32767, 610, 611, 32766, 613, 614, 32767, 32767, 615, 616, 617, 618, 619, + 620, 621, 32767, 622, 32767, 624, 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, 630, + 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32767, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32767, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 2667, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 2668, 32767, 32767, 32767, 32766, 32767, + 32767, 32766, 32767, 2669, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, + 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 2670, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 3482, 32767, 32767, + 32767, 32767, 32766, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 2184, + 32766, 32766, 32767, 4111, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 32767, 32767, 32766, 2233, 32767, 32767, 32766, 4112, 32766, 32767, 32767, 32766, 32767, 32766, + 32767, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 32767, 2251, 32767, 32767, 32766, 4113, 2255, 32766, 32767, 32767, 4114, 32767, 32767, 32767, + 32767, 32767, 2671, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32766, + 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, + 32767, 32767, 32767, 2672, 2673, 2289, 32767, 32767, 4116, 32767, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 2315, 32767, 2674, 32767, 4117, 32767, 32767, 32767, 32767, + 32767, 32767, 32766, 32767, 32766, 2327, 32767, 32767, 32767, 4118, 32767, 32766, 32767, 32767, + 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 2339, 32767, 32766, + 32767, 4119, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 4566, 32766, + 32766, 32767, 32767, 2359, 2360, 2361, 32767, 32766, 4120, 32767, 32767, 32767, 32767, 32767, + 32766, 32766, 32767, 32767, 32767, 32766, 32767, 2675, 32767, 32766, 2676, 4121, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 2386, 32767, 32767, 32767, 1299, 32767, + 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32767, 32766, 32767, 32766, 2412, 2413, 32767, 32767, 4122, + 4123, 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32766, 32767, 32766, + 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32767, + 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32767, 32767, 32767, + 32767, 32766, 32767, 32766, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32767, + 32766, 32767, 32767, 2677, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 2494, 2495, 32767, 32766, 4124, 4125, 32767, 32767, 32767, + 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32766, 32767, 2518, 32766, 32767, 32767, 4126, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 4, 5, 32767, 32767, 32767, 32767, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, + 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, + 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32766, + 32767, 32767, 32766, 32766, 32766, 3341, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 3342, 32766, 32766, + 32766, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 3968, 2667, 32767, 32767, 32767, + 3498, 32767, 32767, 32767, 32767, 2668, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, + 2669, 32767, 32767, 32767, 32767, 32767, 1548, 32766, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 2667, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 2668, 2670, 32767, + 32766, 32767, 32767, 32767, 32766, 32767, 2669, 32766, 32767, 32766, 32767, 32767, 32767, + 32766, 32767, 1549, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 2670, 32767, 2184, 32767, 32766, 32767, 32766, 32767, + 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32766, + 32767, 3499, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32766, + 32766, 32767, 2184, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32766, 32767, 32767, 1550, 32767, 32767, 32767, 32767, 32766, 2233, 32767, 32767, + 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 2251, 32767, 32767, 32766, + 32767, 2255, 32767, 32767, 32767, 2233, 32767, 32767, 32767, 1551, 32767, 2671, 32767, 32767, + 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 2251, 32767, 32766, 32767, 32767, 2255, 32766, 32767, 2672, 2673, 2289, + 32767, 32766, 32767, 32767, 2671, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 3969, + 32767, 32767, 32767, 32767, 32767, 1552, 32767, 32767, 32767, 32767, 32767, 32767, 2315, 32767, + 2674, 32766, 32767, 2672, 2673, 2289, 32767, 32766, 32767, 32767, 32767, 32766, 2327, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 2339, 2315, 32767, 2674, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, 1554, 32767, 2327, 32767, 32767, 32766, 32767, 2359, 2360, 2361, 32767, + 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 2339, 32767, 32766, + 32767, 2675, 32767, 32767, 2676, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 1556, + 32766, 32767, 2386, 2359, 2360, 2361, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32767, 2675, 32767, 32767, 2676, 4260, 32767, 4261, + 32767, 32767, 2412, 2413, 32767, 32767, 32766, 32767, 2386, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 42, 32767, 32767, 32766, 32766, 3970, 32767, 32767, + 32766, 32767, 32767, 32767, 32767, 32766, 1559, 32767, 2412, 2413, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 1560, 32767, 32767, 32766, 32767, 32766, 32766, 32767, 2827, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 2677, 32767, 32767, 32767, 1562, 32767, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 1563, 32767, 32767, 32767, 32767, 1564, 32767, 32767, 32767, + 32767, 32766, 32767, 32767, 32767, 32766, 2494, 2495, 32766, 32767, 32766, 32766, 2677, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 3971, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 2518, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2494, + 2495, 32767, 32767, 32767, 32767, 32767, 32767, 3500, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 1565, 32766, 32766, 32766, 3972, 32767, 32767, 2518, 32766, 32766, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, + 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 1242, 32767, 32767, 247, 248, 249, 32767, + 250, 251, 252, 253, 254, 255, 1243, 256, 257, 258, 1244, 260, 1245, 1246, 32767, 263, 264, 265, + 266, 267, 268, 269, 1247, 1248, 270, 271, 1249, 273, 1250, 32767, 275, 276, 277, 278, 1251, + 32767, 1252, 32767, 32767, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 32767, 292, + 293, 294, 295, 296, 297, 32767, 298, 299, 300, 1253, 1254, 301, 1255, 1256, 1257, 1258, 1259, + 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 1260, 1261, 311, 32767, 312, 32767, 313, + 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 832, 327, + 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, + 338, 339, 340, 1263, 342, 343, 344, 345, 1264, 32767, 1265, 347, 1266, 32767, 348, 349, 350, + 1267, 352, 32767, 353, 32767, 354, 32767, 355, 356, 32767, 357, 358, 359, 360, 361, 32767, 362, + 32767, 1268, 1269, 365, 32767, 32767, 366, 32767, 367, 368, 369, 782, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 387, 388, 389, 390, 391, + 392, 1270, 32767, 1271, 32767, 1272, 396, 32767, 397, 398, 399, 400, 1273, 1274, 1275, 1276, + 1277, 1278, 1279, 1280, 1281, 410, 1282, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, + 32767, 419, 1283, 421, 32767, 422, 423, 32767, 424, 425, 426, 1284, 1285, 427, 428, 429, 430, + 3300, 32767, 431, 432, 433, 434, 435, 436, 1287, 438, 439, 440, 441, 32767, 32767, 32767, + 32767, 32767, 442, 443, 3502, 444, 445, 1289, 447, 1290, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 1291, 459, 32767, 460, 461, 462, 32767, 32767, 463, 1294, 32767, 465, 1295, 1296, + 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 473, 474, 475, 32767, 32767, 476, 477, 478, + 479, 480, 481, 1298, 483, 484, 485, 32767, 486, 1300, 487, 488, 489, 490, 491, 492, 493, 32767, + 494, 495, 496, 1301, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, + 3503, 510, 511, 512, 32767, 513, 1303, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 534, 535, 536, 537, 538, 539, 3504, 32766, + 32767, 542, 543, 544, 545, 546, 716, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 1305, + 556, 557, 558, 559, 560, 561, 562, 563, 1306, 565, 32767, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 1307, 582, 32767, 583, 584, 1308, 32767, 32767, 32767, + 32767, 585, 586, 587, 588, 589, 590, 591, 592, 32767, 593, 1310, 1311, 32767, 32767, 596, 597, + 1312, 599, 1313, 1314, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, + 610, 611, 612, 613, 614, 1316, 32767, 615, 616, 617, 618, 619, 620, 1317, 32767, 622, 623, 624, + 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 1318, + 634, 1319, 1320, 1321, 1322, 639, 1323, 1324, 1325, 1326, 644, 645, 646, 647, 648, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 1242, + 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 254, 255, 1243, 256, 257, 258, 1244, + 260, 1245, 1246, 32767, 263, 264, 265, 266, 267, 268, 269, 1247, 1248, 270, 271, 1249, 273, + 1250, 32767, 275, 276, 277, 278, 1251, 32767, 1252, 32767, 32767, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, 298, 299, 300, 1253, 1254, + 301, 1255, 1256, 1257, 1258, 1259, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 1260, + 1261, 311, 1262, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, + 32767, 32767, 324, 325, 832, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, + 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 1263, 342, 343, 344, 345, 1264, 32767, 1265, + 347, 32766, 32767, 348, 349, 350, 1267, 352, 32767, 353, 32767, 354, 32767, 355, 356, 32767, + 357, 358, 359, 360, 361, 32767, 362, 32767, 1268, 1269, 365, 32767, 32767, 366, 32767, 367, + 368, 369, 782, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 32767, 386, 387, 388, 389, 390, 391, 392, 1270, 32767, 1271, 32767, 1272, 396, 32767, 397, 398, + 399, 400, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 410, 1282, 412, 413, 414, 415, + 416, 417, 418, 32767, 32767, 32767, 419, 1283, 421, 32767, 422, 423, 32767, 424, 425, 426, + 1284, 1285, 427, 428, 429, 430, 1286, 32767, 431, 432, 433, 434, 435, 436, 1287, 438, 439, 440, + 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 1288, 444, 445, 1289, 447, 1290, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 1291, 459, 1292, 460, 461, 462, 32767, 1293, 463, 1294, + 32767, 465, 1295, 1296, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 1297, 474, 475, + 32767, 32767, 476, 477, 478, 479, 480, 481, 1298, 483, 484, 485, 1299, 486, 1300, 487, 488, + 489, 490, 491, 492, 493, 32767, 494, 495, 496, 1301, 498, 499, 500, 501, 502, 32767, 503, 504, + 505, 506, 507, 508, 509, 32767, 1302, 510, 511, 512, 32767, 513, 1303, 515, 516, 517, 32767, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 534, + 535, 536, 537, 538, 539, 1304, 541, 32767, 542, 543, 544, 545, 546, 716, 547, 548, 549, 550, + 32767, 551, 552, 553, 554, 555, 1305, 556, 557, 558, 559, 560, 561, 562, 563, 1306, 565, 32767, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 1307, 582, 32767, + 583, 584, 1308, 32767, 32767, 32767, 32767, 585, 586, 587, 588, 589, 590, 591, 592, 32767, 593, + 1310, 1311, 32767, 32767, 596, 597, 1312, 599, 1313, 1314, 601, 602, 32767, 603, 604, 605, + 32767, 606, 607, 608, 609, 32767, 1315, 610, 611, 612, 613, 614, 1316, 32767, 615, 616, 617, + 618, 619, 620, 1317, 32767, 622, 623, 624, 625, 626, 627, 32766, 32767, 628, 32767, 32767, 629, + 630, 32766, 32766, 631, 632, 633, 1318, 634, 1319, 1320, 1321, 1322, 639, 1323, 1324, 1325, + 1326, 644, 645, 646, 647, 648, 2667, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 2668, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 2669, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 2670, 32767, 32767, 32767, 32766, + 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, + 5796, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32766, + 32766, 32766, 32767, 32767, 32766, 2184, 32767, 32767, 32767, 32767, 32766, 32767, 32766, + 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32766, + 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32766, 2233, 32767, 32767, 32767, + 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32767, 32766, + 32767, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 2251, 32767, 32767, 32767, 32767, 2255, + 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 2671, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 2672, 2673, 2289, 32767, + 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 2315, + 32767, 2674, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 2327, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 2339, 32766, 32767, 32767, 32767, 32767, 32767, 32766, + 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 2359, 2360, + 2361, 32767, 5711, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32766, + 32766, 32767, 2675, 32767, 32767, 2676, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32766, + 32767, 32767, 32767, 2386, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32766, 32767, 32767, 32767, 2412, 2413, 32767, 32767, 32767, 32767, 32766, 32767, 32766, + 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, + 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, -1774, -1774, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2677, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32766, 2494, 2495, 32766, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2518, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, + 32767, 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32767, + 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32766, 32767, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, + 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 3545, 32766, 32766, 32767, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32766, 32767, 32767, 32766, + 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, + 249, 32767, 250, 251, 252, 253, 254, 255, 32767, 256, 257, 32767, 825, 260, 826, 827, 32767, + 263, 264, 265, 266, 267, 268, 269, 32767, 32767, 270, 271, 828, 273, 829, 32767, 275, 276, 277, + 278, 32767, 32767, 280, 32767, 32767, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 32767, 292, 293, 294, 295, 296, 297, 32767, 298, 299, 300, 32767, 32767, 301, 32767, 302, + 32767, 32767, 32767, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 830, 831, 311, 32767, + 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, + 325, 832, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, + 32767, 337, 338, 339, 340, 32767, 342, 343, 344, 345, 32767, 32767, 32767, 347, 32767, 32767, + 348, 349, 350, 833, 352, 32767, 353, 32767, 354, 32767, 355, 356, 32767, 357, 358, 359, 360, + 361, 32767, 362, 32767, 32767, 32767, 365, 32767, 32767, 366, 32767, 367, 368, 369, 32767, 834, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 387, + 32767, 389, 390, 391, 392, 835, 32767, 836, 32767, 837, 396, 32767, 397, 398, 399, 400, 838, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 412, 413, 414, 415, 416, + 417, 418, 32767, 32767, 32767, 419, 32767, 421, 32767, 422, 423, 32767, 424, 425, 426, 32767, + 32767, 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 32767, 438, 439, 440, + 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 839, 447, 840, 449, 450, + 451, 452, 453, 454, 455, 456, 32767, 32767, 459, 32767, 460, 461, 462, 32767, 32767, 463, + 32767, 32767, 465, 32767, 841, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 473, 474, + 475, 32767, 32767, 476, 477, 478, 32767, 480, 481, 32767, 483, 484, 485, 32767, 486, 32767, + 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 32767, 498, 32767, 500, 501, 502, + 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, 842, 515, + 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, + 532, 533, 534, 535, 536, 537, 538, 539, 32767, 541, 32767, 542, 543, 544, 545, 546, 32767, 547, + 548, 549, 550, 32767, 551, 552, 553, 554, 555, 32767, 556, 32766, 558, 559, 560, 561, 562, 563, + 844, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, + 32767, 582, 32767, 583, 584, 32767, 32767, 32767, 32767, 32767, 585, 586, 587, 588, 589, 590, + 591, 592, 32767, 593, 845, 846, 32767, 32767, 596, 597, 32767, 599, 32767, 32767, 601, 602, + 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, 32767, + 32767, 615, 616, 617, 618, 32767, 620, 847, 32767, 622, 623, 624, 625, 626, 627, 32767, 32767, + 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 645, 646, 647, 648, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 247, + 248, 249, 32767, 250, 251, 252, 253, 254, 255, 32767, 256, 257, 32767, 825, 260, 826, 827, + 32767, 263, 264, 265, 266, 267, 268, 269, 32767, 32767, 270, 271, 828, 273, 829, 32767, 275, + 276, 277, 278, 32767, 32767, 280, 32767, 32767, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, 298, 299, 300, 32767, 32767, 301, 32767, + 302, 32767, 32767, 32767, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 830, 831, 311, + 32767, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, + 324, 325, 832, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, + 336, 32767, 337, 338, 339, 340, 32767, 342, 343, 344, 345, 32767, 32767, 32767, 347, 32767, + 32767, 348, 349, 350, 833, 352, 32767, 353, 32767, 354, 32767, 355, 356, 32767, 357, 358, 359, + 360, 361, 32767, 362, 32767, 32767, 32767, 365, 32767, 32767, 366, 32767, 367, 368, 369, 32767, + 834, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, + 387, 2733, 389, 390, 391, 392, 835, 32767, 836, 32767, 837, 396, 2734, 397, 398, 399, 400, 838, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 412, 413, 414, 415, 416, + 417, 418, 32767, 32767, 32767, 419, 32767, 421, 32767, 422, 423, 32767, 424, 425, 426, 32767, + 32767, 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 32767, 438, 439, 440, + 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 839, 447, 840, 449, 450, + 451, 452, 453, 454, 455, 456, 32767, 32767, 459, 32767, 460, 461, 462, 32767, 32767, 463, + 32767, 32767, 465, 32767, 841, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 473, 474, + 475, 32767, 32767, 476, 477, 478, 2736, 480, 481, 32767, 483, 484, 485, 32767, 486, 32767, 487, + 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 32767, 498, 32767, 500, 501, 502, 32767, + 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, 842, 515, 516, 517, + 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, + 534, 535, 536, 537, 538, 539, 32767, 541, 32767, 542, 543, 544, 545, 546, 32767, 547, 548, 549, + 550, 32767, 551, 552, 553, 554, 555, 32767, 556, 2737, 558, 559, 560, 561, 562, 563, 844, 565, + 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 32767, 582, + 32767, 583, 584, 32767, 32767, 32767, 32767, 32767, 585, 586, 587, 588, 589, 590, 591, 592, + 32767, 593, 845, 846, 32767, 32767, 596, 597, 1578, 599, 32767, 32767, 601, 602, 1579, 603, + 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, 32767, 32767, 615, + 616, 617, 618, 32766, 620, 847, 32766, 622, 623, 624, 625, 626, 627, 32767, 32767, 628, 32767, + 32766, 629, 630, 32767, 32767, 631, 632, 633, 32766, 4211, 1581, 32766, 32766, 32766, 32767, + 32767, 32767, 32767, 32766, 32767, 645, 646, 647, 648, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32767, + 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, + 32767, 32767, 32767, 1582, 32766, 32766, 32767, 32767, 32767, 32767, 1583, 32767, 32767, 32767, + 32766, 32767, 1584, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, + 32767, 4212, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32766, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 1585, 32767, 32766, 32767, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 4213, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32767, + 32767, 32767, 4214, 32767, 32767, 32767, 32767, 32767, 1586, 32766, 32767, 32767, 32767, 32767, + 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 4215, + 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 4216, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, + 32766, 32767, 32767, 32767, 32766, 32766, 32767, 1689, 32766, 32766, 32766, 1588, 32767, 32767, + 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 1589, 32767, 32766, + 32766, 32767, 32767, 32767, 32767, 32767, 32767, 1590, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32767, 1591, 32767, 32767, 32766, 32767, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, + 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 4217, + 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32766, + 32766, 4415, 32767, 32767, 1593, 1594, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32766, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, + 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32767, + 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, + 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, + 32766, 32766, 32767, 32767, 32767, 5291, 32766, 32766, 32767, 32767, 32767, 1596, 32767, 32767, + 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32767, 32767, 1881, 32767, -1946, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, + 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32767, -1946, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, -1946, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32767, 1392, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, -1946, + 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 1632, + 32767, 32766, 32767, 1633, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, -1946, + 32767, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 1363, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32767, -1946, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, -1946, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, 32767, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32766, 32766, 32766, 32766, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, + 245, 246, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, + 253, 32767, 255, 32767, 256, 257, 258, 259, 32767, 261, 262, 32767, 263, 264, 265, 266, 267, + 268, 269, 32767, 32767, 270, 271, 272, 273, 274, 32767, 275, 276, 277, 278, 279, 32767, 32767, + 32767, 32767, 281, 282, 283, 284, 285, 286, 32767, 288, 289, 290, 291, 32767, 292, 293, 294, + 295, 296, 297, 32767, 32767, 299, 300, 32767, 32767, 301, 32767, 32767, 32767, 32767, 32767, + 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32767, 312, 32767, 313, 314, + 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 326, 327, 32767, + 32766, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 32766, 32767, 347, 32767, 32767, 348, 349, 350, 351, 352, + 32767, 353, 32767, 354, 32767, 355, 32767, 32766, 32767, 358, 359, 360, 361, 32767, 362, 32767, + 363, 364, 365, 32767, 32767, 366, 32767, 367, 368, 369, 32767, 657, 371, 372, 32767, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 32767, 388, 389, 390, 391, 392, + 393, 32767, 394, 32767, 395, 396, 32767, 32767, 32767, 399, 32767, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, + 32767, 32767, 422, 32767, 32767, 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, + 443, 32767, 444, 445, 446, 32767, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 32767, 460, 461, 32767, 32767, 32767, 463, 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, + 470, 471, 472, 32767, 32767, 473, 474, 475, 32767, 32767, 476, 477, 32767, 479, 480, 32767, + 482, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, + 512, 32767, 513, 514, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 32767, 532, 533, 32767, 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, + 544, 545, 546, 32767, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 32767, 556, 557, 558, + 559, 560, 32767, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32767, 32767, 32767, 32767, 585, + 32767, 587, 588, 589, 590, 591, 592, 32767, 593, 594, 595, 32766, 32767, 596, 597, 598, 599, + 600, 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, + 612, 613, 614, 32767, 32767, 615, 616, 617, 618, 619, 620, 621, 32767, 622, 32767, 624, 625, + 626, 627, 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, + 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32766, + 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, + 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 254, 255, 32767, 256, 257, 258, 259, 260, 261, + 262, 32767, 263, 264, 265, 266, 267, 268, 269, 32767, 32767, 270, 271, 272, 273, 274, 32767, + 275, 276, 277, 278, 279, 32767, 280, 32767, 32767, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, 298, 299, 300, 32767, 32767, 301, 32767, + 302, 32767, 32767, 32767, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 309, 310, 311, + 32766, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, + 324, 325, 326, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, + 336, 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 32767, 1828, 347, 1602, 32767, + 348, 349, 350, 351, 352, 32767, 353, 32767, 354, 32767, 355, 356, 32767, 357, 358, 359, 360, + 361, 32767, 362, 32767, 363, 364, 365, 32767, 32767, 366, 32767, 367, 368, 369, 782, 966, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 387, 388, + 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, 32767, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, + 419, 420, 421, 32767, 422, 423, 32767, 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32767, + 32767, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, 32767, 32767, 32767, + 32767, 442, 443, 1603, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 32767, 460, 461, 462, 32767, 32767, 463, 464, 32767, 465, 32767, 466, 467, 468, 469, + 32767, 470, 471, 472, 1829, 32767, 473, 474, 475, 32767, 32767, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 1604, 510, 511, + 512, 32767, 513, 514, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 32767, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, + 544, 545, 546, 716, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 32767, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32767, 32767, 32767, 32767, 585, + 586, 587, 588, 589, 590, 591, 592, 32767, 593, 594, 595, 32767, 32767, 596, 597, 598, 599, 600, + 1830, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, + 613, 614, 32767, 32767, 615, 616, 617, 618, 619, 620, 621, 32767, 622, 623, 624, 625, 626, 627, + 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, 249, + 32767, 250, 251, 252, 253, 32767, 255, 32767, 256, 257, 258, 259, 32767, 261, 262, 32767, 263, + 264, 265, 266, 267, 268, 269, 32767, 32767, 270, 271, 272, 273, 274, 32767, 275, 3601, 277, + 278, 279, 32767, 32767, 32767, 32767, 281, 282, 283, 284, 285, 286, 32767, 288, 289, 290, 291, + 32767, 292, 293, 294, 295, 296, 297, 32767, 32767, 299, 300, 32767, 32767, 301, 32767, 32767, + 32767, 32767, 32767, 303, 304, 980, 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32767, + 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, + 325, 326, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, + 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 981, 32767, 32766, 32767, 32767, 348, + 349, 350, 351, 352, 32767, 353, 32767, 354, 32767, 355, 32767, 32767, 32767, 358, 359, 360, + 361, 32767, 362, 983, 363, 364, 365, 32767, 984, 366, 32767, 367, 368, 369, 32767, 657, 371, + 372, 32767, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 32767, 388, + 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, 32767, 32767, 32767, 399, 32767, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 32767, + 32767, 32767, 419, 420, 32767, 985, 422, 32767, 32767, 424, 425, 426, 32767, 32767, 427, 428, + 429, 430, 32767, 986, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, 32767, + 32767, 32767, 32767, 442, 443, 987, 444, 445, 446, 32767, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 32767, 460, 461, 32767, 988, 32767, 463, 464, 32767, 465, 32767, 466, + 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 473, 474, 475, 32767, 32767, 476, 477, + 32767, 479, 480, 32767, 482, 483, 484, 485, 989, 486, 32767, 487, 488, 489, 490, 491, 492, 493, + 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, + 990, 991, 510, 511, 512, 32767, 513, 514, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 32767, 535, 536, 537, 538, 539, 540, + 541, 32767, 542, 543, 544, 545, 546, 32767, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, + 32767, 556, 557, 558, 559, 560, 32767, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32767, 992, 993, + 32767, 585, 32767, 587, 588, 589, 590, 591, 592, 32767, 593, 594, 595, 32767, 32767, 596, 597, + 598, 599, 600, 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, + 610, 611, 612, 613, 614, 32767, 32767, 615, 616, 617, 618, 619, 620, 621, 32767, 622, 32767, + 624, 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, + 32767, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 2850, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, + 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32766, + 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, + 32767, 32767, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 3619, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 32767, 255, 32767, 256, 257, 258, 259, + 32767, 261, 262, 32767, 263, 264, 265, 266, 267, 268, 269, 32767, 32767, 270, 271, 272, 273, + 274, 32767, 275, 276, 277, 278, 279, 32767, 32767, 32767, 32767, 281, 282, 283, 284, 285, 286, + 32767, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, 32767, 299, 300, 32767, + 32767, 301, 32767, 32767, 32767, 32767, 32767, 303, 304, 32767, 32767, 32767, 305, 306, 307, + 308, 309, 310, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, + 323, 32767, 32767, 324, 325, 326, 327, 32767, 32766, 328, 32767, 329, 330, 331, 332, 32767, + 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 32766, + 32767, 347, 32767, 32767, 348, 349, 350, 351, 352, 32767, 353, 32767, 354, 32767, 355, 32767, + 32766, 32767, 358, 359, 360, 361, 32767, 362, 32767, 363, 364, 365, 32767, 32767, 366, 32767, + 367, 368, 369, 32767, 657, 371, 372, 32767, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 32767, 386, 32767, 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, 32767, + 32767, 32767, 399, 32767, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, 32767, 32767, 422, 32767, 32767, 424, 425, + 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, 32767, 448, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, 32767, 32767, 32767, + 463, 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 473, 474, + 475, 32767, 32767, 476, 477, 32767, 479, 480, 32767, 482, 483, 484, 485, 32767, 486, 1438, 487, + 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, 32767, 503, + 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, + 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, + 32767, 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, 546, 716, 547, 548, 549, + 550, 32767, 551, 552, 553, 554, 555, 32767, 556, 557, 558, 559, 560, 32767, 562, 563, 564, 565, + 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 32767, 583, 584, 32767, 32767, 32767, 32767, 32767, 585, 32767, 587, 588, 589, 590, 591, 592, + 32767, 593, 594, 595, 32766, 32767, 596, 597, 598, 599, 600, 32767, 601, 602, 32767, 603, 604, + 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, 32767, 32767, 615, 616, + 617, 618, 619, 620, 621, 32767, 622, 32767, 624, 625, 626, 627, 32767, 32767, 628, 32767, + 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, + 245, 246, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, + 253, 32767, 255, 32767, 256, 257, 258, 259, 32767, 261, 262, 32767, 263, 264, 265, 266, 267, + 268, 269, 32767, 32767, 892, 271, 272, 273, 274, 32767, 275, 276, 277, 278, 279, 32767, 32767, + 32767, 32767, 281, 282, 283, 284, 285, 286, 32767, 288, 289, 290, 291, 32767, 292, 293, 294, + 295, 296, 297, 32767, 32767, 299, 300, 32767, 32767, 301, 32767, 32767, 32767, 32767, 32767, + 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32767, 312, 32767, 313, 314, + 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 326, 327, 32767, + 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 32767, 32767, 347, 32767, 32767, 348, 349, 350, 351, 352, + 32767, 353, 32767, 354, 32767, 355, 32767, 32767, 32767, 358, 359, 360, 361, 32767, 362, 32767, + 363, 364, 365, 32767, 32767, 366, 32767, 367, 368, 369, 32767, 657, 371, 372, 32767, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 32767, 388, 389, 390, 391, 392, + 393, 32767, 394, 32767, 395, 396, 32767, 32767, 32767, 399, 32767, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, + 32767, 32767, 422, 32767, 32767, 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, + 443, 32767, 895, 445, 446, 32767, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 32767, 460, 461, 32767, 32767, 32767, 463, 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, + 470, 471, 472, 32767, 32767, 473, 474, 475, 32767, 32767, 476, 477, 32767, 479, 480, 32767, + 482, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, + 512, 32767, 513, 514, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 32767, 532, 533, 32767, 896, 536, 537, 538, 539, 540, 541, 32767, 542, 543, + 544, 897, 546, 32767, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 2822, 32767, 556, 557, + 558, 559, 560, 32767, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, + 575, 576, 577, 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32767, 32767, 32767, 32767, + 585, 32767, 587, 588, 589, 590, 591, 592, 32767, 593, 899, 595, 32767, 32767, 32766, 597, 598, + 599, 600, 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, + 611, 612, 613, 614, 32767, 32767, 615, 616, 617, 618, 619, 620, 621, 32767, 622, 32767, 624, + 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, + 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 901, 646, 647, 648, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32766, 32766, + 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, -1098, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32767, + 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32766, 32767, + 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 3641, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, + 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32766, + 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 3644, 32766, 32766, 32766, + 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, + 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32766, + 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32767, 32767, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32767, + 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 32767, 255, 32767, 256, 257, + 258, 259, 32767, 261, 262, 32767, 263, 264, 265, 266, 267, 268, 269, 32767, 32767, 270, 271, + 272, 273, 274, 32767, 275, 276, 277, 278, 279, 32767, 32767, 32767, 32767, 281, 282, 283, 284, + 285, 286, 32767, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, 32767, 299, + 300, 32767, 32767, 301, 32767, 32767, 32767, 32767, 32767, 303, 304, 32767, 32767, 32767, 305, + 306, 307, 308, 309, 310, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, + 321, 322, 323, 32767, 32767, 324, 325, 326, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, + 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 32767, 32767, 347, 32767, 32767, 348, 349, 350, 351, 352, 32767, 353, 32767, 354, 32767, 355, + 32767, 32767, 32767, 358, 359, 360, 361, 32767, 362, 32767, 363, 364, 365, 32767, 32767, 366, + 32767, 367, 368, 369, 32766, 657, 371, 372, 32767, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 32767, 386, 32767, 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, + 32767, 32767, 32767, 399, 32767, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, 32767, 32767, 422, 32767, 32767, + 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, + 32767, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, 32767, + 32767, 32767, 463, 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, 470, 471, 472, 32767, + 32767, 473, 474, 475, 32767, 32767, 476, 477, 32767, 479, 480, 32767, 482, 483, 484, 485, + 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, + 514, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 32767, 532, 533, 32767, 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, 546, + 32767, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 32767, 556, 557, 558, 559, 560, + 32767, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32767, 32767, 32767, 32767, 585, 32767, 587, + 588, 589, 590, 591, 592, 32767, 593, 594, 595, 32767, 32767, 596, 597, 598, 599, 600, 32767, + 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, + 614, 32767, 32767, 615, 616, 617, 618, 619, 620, 621, 32767, 622, 32767, 624, 625, 626, 627, + 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 3657, 244, 245, 246, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, 249, + 32767, 250, 251, 252, 253, 32767, 255, 32767, 256, 257, 258, 259, 32767, 261, 262, 32767, 263, + 264, 265, 266, 267, 268, 269, 32767, 32767, 270, 271, 272, 273, 274, 32767, 275, 276, 277, 278, + 279, 32767, 32767, 32767, 32767, 281, 282, 283, 284, 285, 286, 32767, 288, 289, 290, 291, + 32767, 292, 293, 294, 295, 296, 297, 32767, 32767, 299, 300, 32767, 32767, 301, 32767, 32767, + 32767, 32767, 32767, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32767, + 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, + 325, 326, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, + 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 32767, 32767, 347, 32767, 32767, 348, + 349, 350, 351, 352, 32767, 353, 32767, 354, 32767, 355, 32767, 32767, 32767, 358, 359, 360, + 361, 32767, 362, 32767, 363, 364, 365, 32767, 32767, 366, 32767, 367, 368, 369, 32767, 657, + 371, 372, 32767, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 32767, + 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, 32767, 32767, 32767, 399, 32767, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 32767, 32767, 32767, 419, 420, 32767, 32767, 422, 32767, 32767, 424, 425, 426, 32767, 32767, + 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, + 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, 32767, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, 32767, 32767, 32767, 463, 464, 32767, 465, + 32767, 466, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 473, 474, 475, 32767, 32767, + 476, 477, 32767, 479, 480, 32767, 482, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, + 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, + 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, 32767, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 32767, 535, 536, + 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, 546, 32767, 547, 548, 549, 550, 32767, 551, + 552, 553, 554, 555, 32767, 556, 557, 558, 559, 560, 32767, 562, 563, 564, 565, 32767, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 32767, 583, 584, + 32767, 32767, 32767, 32767, 32767, 585, 32767, 587, 588, 589, 590, 591, 592, 32767, 593, 594, + 595, 32767, 32767, 596, 597, 598, 599, 600, 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, + 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, 32766, 32767, 615, 616, 617, 618, 619, + 620, 621, 32767, 622, 32767, 624, 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, 630, + 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, 242, 243, 3670, 244, 245, 246, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 32767, 255, 32767, + 256, 257, 258, 259, 32767, 261, 262, 32767, 263, 264, 265, 266, 267, 268, 269, 32767, 32767, + 270, 271, 272, 273, 274, 32767, 275, 276, 277, 278, 279, 32767, 32767, 32767, 32767, 281, 282, + 283, 284, 285, 286, 32767, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, + 32767, 299, 300, 32767, 32767, 301, 32767, 32767, 32767, 32767, 32767, 303, 304, 32767, 32767, + 32767, 305, 306, 307, 308, 309, 310, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, 318, 319, + 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 326, 327, 32767, 32767, 328, 32767, 329, + 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 32767, 32767, 347, 32767, 32767, 348, 349, 350, 351, 352, 32767, 353, 32767, 354, + 32767, 355, 32767, 32767, 32767, 358, 359, 360, 361, 32767, 362, 32767, 363, 364, 365, 32767, + 32767, 366, 32767, 367, 368, 369, 32767, 657, 371, 372, 32767, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 32767, 386, 32767, 388, 389, 390, 391, 392, 393, 32767, 394, + 32767, 395, 396, 32767, 32767, 32767, 399, 32767, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, 32767, 32767, 422, + 32767, 32767, 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, + 444, 445, 446, 32767, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 32767, 460, + 461, 32767, 32767, 32767, 463, 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, 470, 471, + 472, 32767, 32767, 473, 474, 475, 32767, 32767, 476, 477, 32767, 479, 480, 32767, 482, 483, + 484, 485, 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, + 32767, 513, 514, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 32767, 532, 533, 32767, 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, 544, + 545, 546, 32767, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 32767, 556, 557, 558, 559, + 560, 32767, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32767, 32767, 32767, 32767, 585, 32767, + 587, 588, 589, 590, 591, 592, 32767, 593, 594, 595, 32767, 32767, 596, 597, 598, 599, 600, + 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, + 613, 614, 32766, 32767, 615, 616, 617, 618, 619, 620, 621, 32767, 622, 32767, 624, 625, 626, + 627, 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, + 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, 3676, + 241, 242, 243, 1737, 244, 245, 246, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 247, 248, 249, + 1745, 250, 251, 252, 253, 254, 255, 32767, 256, 257, 258, 259, 260, 261, 262, 1746, 263, 264, + 265, 266, 267, 268, 269, 1747, 1748, 270, 271, 272, 273, 274, 1749, 275, 276, 277, 278, 279, + 1750, 280, 32767, 1751, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 1752, 292, 293, + 294, 295, 296, 297, 1753, 298, 299, 300, 1754, 1755, 301, 1756, 302, 1757, 1758, 1759, 303, + 304, 32767, 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 1760, 312, 1761, 313, 314, 315, + 316, 317, 318, 319, 1762, 320, 321, 322, 323, 1763, 1764, 324, 325, 326, 3677, 32767, 32767, + 328, 1765, 329, 330, 331, 332, 1766, 333, 32767, 334, 335, 336, 1767, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 32767, 1768, 347, 32767, 1769, 348, 349, 350, 351, 352, 1770, 353, + 1771, 354, 32767, 355, 356, 1772, 357, 358, 359, 360, 361, 1773, 362, 32767, 363, 364, 365, + 1774, 32767, 366, 1775, 367, 368, 369, 32767, 1776, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 1777, 386, 387, 388, 389, 390, 391, 392, 393, 1778, 394, + 1779, 395, 396, 1780, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 1781, 32767, 1782, 419, 420, 421, 32767, 422, 423, + 1783, 424, 425, 426, 1784, 1785, 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 1786, 460, 461, 462, + 32767, 32767, 463, 464, 32767, 465, 1787, 466, 467, 468, 469, 1788, 470, 471, 472, 1789, 1790, + 473, 474, 475, 1791, 1792, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 32767, 486, 32767, + 487, 488, 489, 490, 491, 492, 493, 1793, 494, 495, 496, 497, 498, 499, 500, 501, 502, 1794, + 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, + 1795, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 1796, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, 546, 32767, 547, 548, 549, + 550, 1797, 551, 552, 553, 554, 555, 1798, 32766, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 1799, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 1800, 583, 584, 1801, 32767, 32767, 32767, 1803, 585, 586, 587, 588, 589, 590, 591, 592, 1804, + 593, 594, 595, 1805, 1806, 596, 597, 598, 599, 600, 1807, 601, 602, 32767, 603, 604, 605, + 32767, 606, 607, 608, 609, 1808, 1809, 610, 611, 612, 613, 614, 1810, 1811, 615, 616, 617, 618, + 619, 620, 621, 1812, 622, 623, 624, 625, 626, 627, 1813, 1814, 628, 1815, 1816, 629, 630, + 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 2850, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, + 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32767, 32766, + 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32767, + 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, + 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 3704, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 32767, 255, + 32767, 256, 257, 258, 259, 32767, 261, 262, 32767, 263, 264, 265, 266, 267, 268, 269, 32767, + 32767, 892, 271, 272, 273, 274, 32767, 275, 276, 277, 278, 279, 32767, 32767, 32767, 32767, + 281, 282, 283, 284, 285, 286, 32767, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, + 32767, 32767, 299, 300, 32767, 32767, 301, 32767, 32767, 32767, 32767, 32767, 303, 304, 32767, + 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, + 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 326, 327, 32767, 32767, 328, + 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 32767, 32767, 347, 32767, 32767, 348, 349, 350, 351, 352, 32767, 353, + 32767, 354, 32767, 355, 32767, 32767, 32767, 358, 359, 360, 361, 32767, 362, 32767, 363, 364, + 365, 32767, 32767, 366, 32767, 367, 368, 369, 32767, 657, 371, 372, 32767, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 32767, 388, 389, 390, 391, 392, 393, 32767, + 394, 32767, 395, 396, 32767, 32767, 32767, 399, 32767, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, 32767, 32767, + 422, 32767, 32767, 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, + 32767, 895, 445, 446, 32767, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 32767, + 460, 461, 32767, 32767, 32767, 463, 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, 470, + 471, 472, 32767, 32767, 473, 474, 475, 32767, 32767, 476, 477, 32767, 479, 480, 32767, 482, + 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, + 32767, 513, 514, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 32767, 532, 533, 32767, 896, 536, 537, 538, 539, 540, 541, 32767, 542, 543, 544, + 897, 546, 32767, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 32766, 32767, 556, 557, 558, + 559, 560, 32767, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 32767, 583, 584, 1578, 32767, 32767, 32767, 32767, 585, + 1579, 587, 588, 589, 590, 591, 592, 1645, 593, 899, 595, 32767, 32767, 900, 597, 598, 599, 600, + 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 1646, 32767, 610, 611, 612, + 613, 614, 32767, 32767, 615, 616, 617, 618, 619, 620, 621, 1581, 622, 32767, 624, 625, 626, + 627, 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, + 636, 637, 638, 639, 640, 641, 642, 643, 644, 901, 646, 647, 648, 32767, 32767, 1647, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 1582, 32767, 32766, 32767, + 32767, 32767, 32767, 1583, 32767, 32767, 32767, 32767, 32767, 1584, 32767, 32767, 32767, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, + 1585, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 1648, 32767, 32767, + 32767, 1586, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 1649, 32767, 32767, 32767, 32767, 32767, 32766, 1650, + 32767, 32767, 32767, 32767, 1651, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 1652, 32767, 32767, 32767, 1588, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 1589, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 1590, + 1227, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 1653, 1591, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 3752, 32767, 32767, 1593, 1594, 1655, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 1656, 32767, 32767, 32767, + 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 1658, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, + 245, 246, 32767, 32767, 32767, 1659, 1242, 32767, 32767, 247, 248, 249, 1596, 250, 251, 252, + 253, 254, 255, 1243, 256, 257, 258, 1244, 260, 1245, 1246, 32766, 263, 264, 265, 266, 267, 268, + 269, 1247, 1248, 270, 271, 1249, 273, 1250, 32767, 275, 276, 277, 278, 1251, 32767, 1252, + 32767, 32767, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 32766, 292, 293, 294, 295, + 296, 297, 32767, 298, 299, 300, 1253, 1254, 301, 1255, 1256, 1257, 1258, 1259, 303, 304, 32767, + 32767, 32767, 305, 306, 307, 308, 1260, 1261, 311, 1262, 312, 32767, 313, 314, 315, 316, 317, + 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 832, 327, 32767, 32767, 328, + 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 1263, + 342, 343, 344, 345, 1264, 32767, 1265, 347, 1266, 32767, 348, 349, 350, 1267, 352, 32767, 353, + 32767, 354, 32767, 355, 356, 32767, 357, 358, 359, 360, 361, 32767, 362, 32767, 1268, 1269, + 365, 32767, 32767, 366, 32767, 367, 368, 369, 782, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 32767, 386, 387, 388, 389, 390, 391, 392, 1270, 32767, 1271, + 32767, 1272, 396, 32767, 397, 398, 399, 400, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, + 1281, 410, 1282, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 1283, 421, 32767, + 422, 423, 32767, 424, 425, 426, 1284, 1285, 427, 428, 429, 430, 1286, 32767, 431, 432, 433, + 434, 435, 436, 1287, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 1288, + 444, 445, 1289, 447, 1290, 449, 450, 451, 452, 453, 454, 455, 456, 457, 1291, 459, 1292, 460, + 461, 462, 32767, 1293, 463, 1294, 32767, 465, 1295, 1296, 467, 468, 469, 32767, 470, 471, 472, + 32767, 32767, 1297, 474, 475, 32767, 32767, 476, 477, 478, 479, 480, 481, 1298, 483, 484, 485, + 1299, 486, 1300, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 1301, 498, 499, 500, + 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 1302, 510, 511, 512, 32767, 513, + 1303, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 32767, 532, 533, 534, 535, 536, 537, 538, 539, 1304, 541, 32767, 542, 543, 544, 545, 546, + 716, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 1305, 556, 557, 558, 559, 560, 561, + 562, 563, 1306, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, + 579, 580, 1307, 582, 32767, 583, 584, 1308, 32767, 32767, 32767, 32767, 585, 586, 587, 588, + 589, 590, 591, 592, 32767, 593, 1310, 1311, 32767, 32767, 596, 597, 1312, 599, 1313, 1314, 601, + 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 1315, 610, 611, 612, 613, 614, + 1316, 32767, 615, 616, 617, 618, 619, 620, 1317, 32766, 622, 623, 624, 625, 626, 627, 32767, + 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 1318, 634, 1319, 1320, 1321, + 1322, 639, 1323, 1324, 1325, 1326, 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 1242, 32767, 32767, 247, 248, 249, + 32767, 250, 251, 252, 253, 254, 255, 1243, 256, 257, 258, 1244, 260, 1245, 1246, 32767, 263, + 264, 265, 266, 267, 268, 269, 1247, 1248, 270, 271, 1249, 273, 1250, 32767, 275, 276, 277, 278, + 1251, 32767, 1252, 32767, 32767, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 32767, + 292, 293, 294, 295, 296, 297, 32767, 298, 299, 300, 1253, 1254, 301, 1255, 1256, 1257, 1258, + 1259, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 1260, 1261, 311, 1262, 312, 32767, + 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 832, 327, + 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, + 338, 339, 340, 1263, 342, 343, 344, 345, 1264, 32767, 1265, 347, 1266, 32767, 348, 349, 350, + 1267, 352, 32767, 353, 32767, 354, 32767, 355, 356, 32767, 357, 358, 359, 360, 361, 32767, 362, + 32767, 1268, 1269, 365, 32767, 32767, 366, 32767, 367, 368, 369, 782, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 387, 388, 389, 390, 391, + 392, 1270, 32767, 1271, 32767, 1272, 396, 32767, 397, 398, 399, 400, 1273, 1274, 1275, 1276, + 1277, 1278, 1279, 1280, 1281, 410, 1282, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, + 32767, 419, 1283, 421, 32767, 422, 423, 32767, 424, 425, 426, 1284, 1285, 427, 428, 429, 430, + 1286, 32767, 431, 432, 433, 434, 435, 436, 1287, 438, 439, 440, 441, 32767, 32767, 32767, + 32767, 32767, 442, 443, 1288, 444, 445, 1289, 447, 1290, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 1291, 459, 1292, 460, 461, 462, 32767, 1293, 463, 1294, 32767, 465, 1295, 1296, 467, + 468, 469, 32767, 470, 471, 472, 32767, 32767, 1297, 474, 475, 32767, 32767, 476, 477, 478, 479, + 480, 481, 1298, 483, 484, 485, 1299, 486, 1300, 487, 488, 489, 490, 491, 492, 493, 32767, 494, + 495, 496, 1301, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 1302, + 510, 511, 512, -2331, 513, 1303, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 32767, 532, 533, 534, 535, 536, 537, 538, 539, 1304, 541, 32767, + 542, 543, 544, 545, 546, 716, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 1305, 556, + 557, 558, 559, 560, 561, 562, 563, 1306, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 1307, 582, 32767, 583, 584, 1308, 32767, 32767, 32767, + 32767, 585, 586, 587, 588, 589, 590, 591, 592, 32767, 593, 1310, 1311, 32767, 32767, 596, 597, + 1312, 599, 1313, 1314, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 1315, + 610, 611, 612, 613, 614, 1316, 32767, 615, 616, 617, 618, 619, 620, 1317, 32767, 622, 623, 624, + 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 1318, + 634, 1319, 1320, 1321, 1322, 639, 1323, 1324, 1325, 32766, 644, 645, 646, 647, 648, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 32767, 255, 32767, 256, 257, 258, 259, + 32767, 261, 262, 32767, 263, 264, 265, 266, 267, 268, 269, 32767, 32767, 270, 271, 272, 273, + 274, 32767, 275, 276, 277, 278, 279, 32767, 32767, 32767, 32767, 281, 282, 283, 284, 285, 286, + 32767, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, 32767, 299, 300, 32767, + 32767, 301, 32767, 32767, 32767, 32767, 32767, 303, 304, 32767, 32767, 32767, 305, 306, 307, + 308, 309, 310, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, + 323, 32767, 32767, 324, 32766, 326, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, + 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 32767, + 32767, 347, 32767, 32767, 348, 349, 350, 351, 352, 32767, 353, 32767, 354, 32767, 355, 32767, + 32767, 32767, 358, 359, 360, 361, 32767, 362, 32767, 363, 364, 365, 32767, 32767, 366, 32767, + 367, 368, 369, 32767, 657, 371, 372, 32767, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 32767, 386, 32767, 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, 32767, + 32767, 32767, 399, 32767, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, 32767, 32767, 422, 32767, 32767, 424, 425, + 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, 32767, 448, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, 32767, 32767, 32767, + 463, 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 473, 474, + 475, 32767, 32767, 476, 477, 32767, 479, 480, 32767, 482, 483, 484, 485, 32767, 486, 32767, + 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, 32767, + 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, + 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, + 32767, 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, 546, 32767, 547, 548, 549, + 550, 32767, 551, 552, 553, 554, 555, 32767, 556, 557, 558, 559, 560, 32767, 562, 563, 564, 565, + 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 32767, 583, 584, 32767, 32767, 32767, 32767, 32767, 585, 32767, 587, 588, 589, 590, 591, 592, + 32767, 593, 594, 595, 32767, 32767, 596, 597, 598, 599, 600, 32767, 601, 602, 32767, 603, 604, + 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, 32767, 32767, 615, 616, + 617, 618, 619, 620, 621, 32767, 622, 32767, 624, 625, 626, 627, 32767, 32767, 628, 32767, + 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, + 245, 246, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, + 253, 32767, 255, 32767, 256, 257, 258, 259, 32767, 261, 262, 32767, 263, 264, 265, 266, 267, + 268, 269, 32767, 32767, 270, 271, 272, 273, 274, 2838, 275, 276, 277, 278, 279, 32767, 32767, + 32767, 32767, 281, 282, 283, 284, 285, 286, 32767, 288, 289, 290, 291, 2840, 292, 293, 294, + 295, 296, 297, 32767, 32767, 299, 300, 32767, 32767, 301, 32767, 32767, 32767, 32767, 32767, + 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32767, 312, 32767, 313, 314, + 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 326, 327, 32767, + 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 2841, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 32767, 32767, 347, 32767, 32767, 348, 349, 350, 351, 352, + 32767, 353, 2842, 354, 32767, 355, 32767, 32767, 32767, 358, 359, 360, 361, 32767, 362, 32767, + 363, 364, 365, 32767, 32767, 366, 32767, 367, 368, 369, 32767, 657, 371, 372, 32767, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 32767, 388, 389, 390, 391, 392, + 393, 32767, 394, 32767, 395, 396, 32767, 32767, 32767, 399, 32767, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, + 32767, 32767, 422, 32766, 32767, 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, + 443, 32767, 444, 445, 446, 32767, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 32767, 460, 461, 32767, 32767, 32767, 463, 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, + 470, 471, 472, 32767, 32767, 473, 474, 475, 32767, 32767, 476, 477, 32767, 479, 480, 32767, + 482, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 2844, 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, + 512, 32767, 513, 514, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 32767, 532, 533, 32767, 535, 536, 537, 538, 539, 540, 541, -475, 542, 543, + 544, 545, 546, 32767, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 32767, 556, 557, 558, + 559, 560, 32767, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32767, 32767, 32767, 32767, 585, + 32767, 587, 588, 589, 590, 591, 592, 32767, 593, 594, 595, 32767, 32767, 596, 597, 598, 599, + 600, 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 2845, 610, 611, + 612, 613, 614, 32767, 32767, 615, 616, 617, 618, 619, 620, 621, 32767, 622, 32767, 624, 625, + 626, 627, 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, + 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 247, + 248, 249, 32767, 250, 251, 252, 253, -137, 255, 32767, 256, 257, 258, 259, 32767, 261, 262, + 32767, 263, 264, 265, 266, 267, 268, 269, 32767, 32767, 270, 271, 272, 273, 274, 32767, 275, + 276, 277, 278, 279, 32767, 32767, 32767, 32767, 281, 282, 283, 284, 285, 286, 32767, 288, 289, + 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, 32767, 299, 300, 32767, 32767, 301, + 32767, 32767, 32767, 32767, 32767, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 309, 310, + 311, 32767, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, + 32767, 324, 325, 326, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, + 334, 335, 336, 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 32767, 32767, 347, + 32767, 32767, 348, 349, 350, 351, 352, 32767, 353, 32767, 354, 32767, 355, 32767, 32767, 32767, + 358, 359, 360, 361, 32767, 362, 32767, 363, 364, 365, 32767, 32767, 366, 32767, 367, 368, 369, + 32767, 32766, 371, 372, 32767, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 32767, 386, 32767, 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, 32767, 32767, + 32767, 399, 32767, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 32767, 32767, 32767, 419, 420, 32767, 32767, 422, 32767, 32767, 424, 425, 426, + 32767, 32767, 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, 32767, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, 32767, 32767, 32767, 463, + 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 473, 474, 475, + 32767, 32767, 476, 477, 32767, 479, 480, 32767, 482, 483, 484, 485, 32767, 486, 32767, 487, + 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, 32767, 503, + 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, + 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, + 32767, 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, 546, 32767, 547, 548, 549, + 550, 32767, 551, 552, 553, 554, 555, 32767, 556, 557, 558, 559, 560, 32767, 562, 563, 564, 565, + 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 32767, 583, 584, 32767, 32767, 32767, 32767, 32767, 585, 32767, 587, 588, 589, 590, 591, 592, + 32767, 593, 594, 595, 32767, 32767, 596, 597, 598, 599, 600, 32767, 601, 602, 32767, 603, 604, + 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, 32767, 32767, 615, 616, + 617, 618, 619, 620, 621, 32767, 622, 32767, 624, 625, 626, 627, 32767, 32767, 628, 32767, + 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, + 245, 246, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, + 253, 254, 255, 32767, 256, 257, 258, 259, 260, 261, 262, 32767, 263, 264, 265, 266, 267, 268, + 269, 32767, 1248, 270, 271, 272, 273, 274, 32767, 275, 276, 277, 278, 1251, 32767, 1252, 32767, + 32767, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, + 297, 32767, 298, 299, 300, 1253, 1254, 301, 1255, 1256, 1257, 1258, 1259, 303, 304, 32767, + 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, + 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 326, 327, 32767, 32767, 328, + 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 1264, 32767, 32767, 347, 32767, 32767, 348, 349, 350, 351, 352, 32767, 353, + 32767, 354, 32767, 355, 356, 32767, 357, 358, 359, 360, 361, 32767, 362, 32767, 1268, 364, 365, + 32767, 32767, 366, 32767, 367, 368, 369, 32767, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 32767, 386, 387, 388, 389, 390, 391, 392, 393, 32767, 394, + 32767, 395, 396, 32767, 397, 398, 399, 400, 3399, 1274, 1275, 1276, 1277, 1278, 1279, 1280, + 1281, 410, 1282, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 1283, 421, 32767, + 422, 423, 32767, 424, 425, 426, 1284, 1285, 427, 428, 429, 430, 32766, 32767, 431, 432, 433, + 434, 435, 436, 1287, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, + 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 1291, 459, 32767, 460, + 461, 462, 32767, 32767, 463, 1294, 32767, 465, 32767, 466, 467, 468, 469, 32767, 470, 471, 472, + 32767, 32767, 473, 474, 475, 32767, 32767, 476, 477, 478, 479, 480, 481, 1298, 483, 484, 485, + 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 1301, 498, 499, + 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, + 513, 514, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 32767, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, + 546, 32767, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 1305, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 1307, 582, 32767, 583, 584, 1308, 32767, 32767, 32767, 32767, 585, 586, 587, + 588, 589, 590, 591, 592, 32767, 593, 594, 595, 32767, 32767, 596, 597, 1312, 599, 1313, 32767, + 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, + 614, 1316, 32767, 615, 616, 617, 618, 619, 620, 621, 32767, 622, 623, 624, 625, 626, 627, + 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, 1319, 1320, + 1321, 1322, 639, 1323, 1324, 1325, 1326, 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, + 249, 32767, 250, 251, 252, 253, 32767, 255, 32767, 256, 257, 258, 259, 32767, 261, 262, 32767, + 263, 264, 265, 266, 267, 268, 269, 32767, 32767, 270, 271, 272, 273, 274, 32767, 275, 276, 277, + 278, 279, 32767, 32767, 32767, 32767, 281, 282, 283, 284, 285, 286, 32767, 288, 289, 290, 291, + 32767, 292, 293, 294, 295, 296, 297, 32767, 32767, 299, 300, 32767, 32767, 301, 32767, 32767, + 32767, 32767, 32767, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32767, + 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, + 325, 326, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, + 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 32767, 32767, 347, 32767, 32767, 348, + 349, 350, 351, 352, 32767, 353, 32767, 354, 32767, 355, 32767, 32767, 32767, 358, 359, 360, + 361, 32767, 362, 32767, 363, 364, 365, 32767, 32767, 366, 32767, 367, 368, 369, 32767, 32766, + 371, 372, 32767, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 32767, + 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, 32767, 32767, 32767, 399, 32767, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 32767, 32767, 32767, 419, 420, 32767, 32767, 422, 32767, 32767, 424, 425, 426, 32767, 32767, + 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, + 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, 32767, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, 32767, 32767, 32767, 463, 464, 32767, 465, + 32767, 466, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 473, 474, 475, 32767, 32767, + 476, 477, 32767, 479, 480, 32767, 482, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, + 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, + 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, 32767, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 32767, 535, 536, + 537, 538, 539, 540, 541, -1884, 542, 543, 544, 545, 546, 32767, 547, 548, 549, 550, 32767, 551, + 552, 553, 554, 555, 32767, 556, 557, 558, 559, 560, 32767, 562, 563, 564, 565, 32767, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 32767, 583, 584, + 32767, 32767, 32767, 32767, 32767, 585, 32767, 587, 588, 589, 590, 591, 592, 32767, 593, 594, + 595, 32767, 32767, 596, 597, 598, 599, 600, 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, + 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, 32767, 32767, 615, 616, 617, 618, 619, + 620, 621, 32767, 622, 32767, 624, 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, 630, + 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 254, 255, 32767, + 256, 257, 32767, 825, 260, 826, 827, 32767, 263, 264, 265, 266, 267, 268, 269, 32767, 32767, + 270, 271, 828, 273, 829, 32767, 275, 276, 277, 278, 32767, 32767, 280, 32767, 32767, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, 298, + 299, 300, 32767, 32767, 301, 32767, 302, 32767, 32767, 32767, 303, 304, 32767, 32767, 32767, + 305, 306, 307, 308, 830, 831, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, + 320, 321, 322, 323, 32767, 32767, 324, 325, 832, 327, 32767, 32767, 328, 32767, 329, 330, 331, + 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 32767, 342, 343, 344, 345, + 32767, 32767, 32767, 347, 32767, 32767, 348, 349, 350, 833, 352, 32767, 353, 32767, 354, 32767, + 355, 356, 32767, 357, 358, 359, 360, 361, 32767, 362, 32767, 32767, 32767, 365, 32767, 32767, + 366, 32767, 367, 368, 369, 32767, 32766, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 32767, 386, 387, 2733, 389, 390, 391, 392, 835, 32767, 836, 32767, 837, + 396, 2734, 397, 398, 399, 400, 838, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 32767, 421, 32767, + 422, 423, 32767, 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, 431, 432, 433, + 434, 435, 436, 32767, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, + 444, 445, 839, 447, 840, 449, 450, 451, 452, 453, 454, 455, 456, 32767, 32767, 459, 32767, 460, + 461, 462, 32767, 32767, 463, 32767, 32767, 465, 32767, 841, 467, 468, 469, 32767, 470, 471, + 472, 32767, 32767, 473, 474, 475, 32767, 2735, 476, 477, 478, 2736, 480, 481, 32767, 483, 484, + 485, 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 32767, 498, + 32767, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, + 32767, 513, 842, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 32767, 532, 533, 534, 535, 536, 537, 538, 539, 32767, 541, 32767, 542, 543, 544, + 545, 546, 32767, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 32767, 556, 2737, 558, + 559, 560, 561, 562, 563, 844, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 32767, 582, 32767, 583, 584, 32767, 32767, 32767, 2738, 32767, 585, + 586, 587, 588, 589, 590, 591, 592, 32767, 593, 845, 846, 32767, 32767, 596, 597, 32767, 599, + 32767, 32767, 601, 602, 32767, 603, 604, 605, 32766, 606, 607, 608, 609, 32767, 32767, 610, + 611, 612, 613, 614, 32767, 32767, 615, 616, 617, 618, 3968, 620, 847, 2739, 622, 623, 624, 625, + 626, 627, 32767, 32767, 628, 32767, 32766, 629, 630, 32766, 32767, 631, 632, 633, 32767, 32766, + 32767, 1548, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 645, 646, 647, 648, 32766, + 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 1549, 32766, 32767, + 32767, 32767, 32766, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 4111, 32767, 32766, 32767, 32767, 32767, 32766, + 32766, 32767, 32766, 32766, 32767, 32766, 32767, 32767, 32767, 4545, 32767, 32767, 32767, + 32767, 32767, 4546, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, + 32767, 32767, 32767, 32767, 4547, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 1550, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 4112, 32767, 32767, 32767, + 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 4548, 32767, 4549, 32767, 32767, 32767, + 32766, 32767, 32766, 32766, 32767, 32767, 32767, 4113, 32767, 32767, 32766, 32767, 4114, 32767, + 32767, 32766, 32767, 1551, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 4116, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 4550, 3969, 32767, 32767, 32767, 32767, + 32767, 1552, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 4117, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 4118, 4551, 32767, + 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 4119, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 1554, + 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 4120, 32767, 32767, + 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 4121, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 1556, 32766, 32767, 32767, + 32767, 32767, 1299, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 4552, 32767, + 32767, 32767, 32767, 32767, 4122, 4123, 32767, 32767, 4553, 32767, 32767, 32767, 32766, 32767, + 32767, 32766, 32766, 32767, 32767, 42, 32767, 32767, 32766, 32767, 1558, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 1559, 32767, 32767, 32767, 32767, 32766, 32767, 32767, + 32766, 32767, 32767, 1560, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2827, 32767, 4554, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 1562, 32766, 32767, + 32767, 32767, 32767, 32767, 32766, 4555, 1563, 32767, 32767, 32767, 32767, 1564, 32767, 32767, + 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 4124, 4125, 32766, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32766, 3971, 32767, 32767, 32767, 32767, 32767, + 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 4126, 32767, 32767, 32767, 32767, + 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 1565, 244, 245, 246, 3972, 32767, 32766, 32767, 32766, 32766, 32767, 247, + 248, 249, 32767, 250, 251, 252, 253, 254, 255, 32767, 256, 257, 258, 259, 260, 261, 262, 32767, + 263, 264, 265, 266, 267, 268, 269, 32767, 32767, 270, 271, 272, 273, 274, 4556, 275, 276, 277, + 278, 279, 32767, 280, 32767, 32767, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 32767, 292, 293, 294, 295, 296, 297, 32767, 298, 299, 300, 32767, 32767, 301, 964, 302, 32767, + 32767, 965, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32767, 312, + 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, + 326, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, + 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 32767, 32767, 347, 32767, 32767, 348, + 349, 350, 351, 352, 32767, 353, 32767, 354, 32767, 355, 356, 32767, 357, 358, 359, 360, 361, + 32767, 362, 32767, 363, 364, 365, 32766, 32767, 366, 32767, 367, 368, 369, 32767, 966, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 387, 388, + 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, 32767, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, + 419, 420, 421, 32767, 422, 423, 32767, 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32767, + 32767, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, 32767, 32767, 32767, + 32767, 442, 443, 32767, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 32767, 460, 461, 462, 32767, 32767, 463, 464, 32767, 465, 32767, 466, 467, 468, 469, + 32767, 470, 471, 472, 32767, 32767, 473, 474, 475, 32767, 32767, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, + 512, 32767, 513, 514, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 32767, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, + 544, 545, 546, 32767, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 967, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32767, 32767, 32767, 32767, 585, + 586, 587, 588, 589, 590, 591, 592, 32767, 593, 594, 595, 32767, 32767, 596, 597, 598, 599, 600, + 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, + 613, 614, 32767, 32767, 615, 616, 617, 618, 619, 620, 621, 32767, 622, 623, 624, 625, 626, 627, + 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 1645, 32767, 32767, 2667, 32767, 32767, 32766, 32767, + 32767, 32767, 32767, 32766, 2668, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 2669, + 32767, 1646, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2670, + 32767, 32767, 4937, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 1647, 32767, 32767, 32767, 32767, 4947, 32767, 2184, 32766, 32766, 32767, 2783, + 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 1039, 32767, 32767, 32767, + 32767, 32767, 4948, 32767, 32767, 32767, 32767, 32767, 32767, -1703, 32767, 32767, 2233, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, -1703, 32767, 4066, 4949, + 32767, 32767, -1703, 32767, 32767, 32767, 32766, 32767, 32766, 2251, 32767, 32767, 32767, + 32767, 2255, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 2671, 1648, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32766, 32767, 5206, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 2672, 2673, 2289, + -1703, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 2315, 32766, 2674, 1040, 32767, 32767, 1649, 2875, 32766, 32767, 32766, -1703, 32767, 1650, + 2327, 32767, 32767, 32767, 1651, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32767, + 2667, 32766, 32767, 32767, 32767, 2339, 32767, 32767, 32767, 2668, 32766, 32767, 2953, 32766, + 32767, 32767, 4950, 32767, 2669, 32767, 32767, 32766, 32767, 32767, 32767, 2359, 2360, 2361, + 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32767, 32767, 2675, 2670, -1703, 2676, 32766, 32767, 32766, 1653, 32766, 32767, 32767, 32766, + -1703, 32767, 32767, 2386, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32767, + 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32767, 2184, + 32767, 32767, 32767, 32767, 32767, 2412, 2413, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 32766, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 1655, 32767, 32766, 32767, 32767, + 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, + 32767, 32766, 32766, 32767, 32766, 32767, 32767, 32766, 1656, 32766, 32766, 32767, 32767, + 32767, 32767, 2233, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 2677, 32767, + 32767, 32767, 1658, 32767, 32766, 32766, 32766, 4370, 32767, 32767, 32766, 32767, 32767, 2251, + 32767, 32766, 32767, 32767, 2255, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 2494, 2495, + 2671, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 2667, 32766, 32767, 32767, 32767, 32767, + 32766, 32767, 32767, 2668, 32767, 32766, 32766, 32766, 32766, 2518, 32767, 32766, 2669, 2672, + 2673, 2289, 1659, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, -1703, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 2670, 32767, 32767, + 32767, 2315, 32767, 2674, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, + 32766, 2327, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 2184, 2339, 4100, 32766, 32766, 32767, 32767, 32767, + 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32767, + 2359, 2360, 2361, 32766, 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32766, + 32767, 32767, 32766, 32766, 2675, 32767, 32767, 2676, 32767, 32767, 32767, 32766, 4831, 32767, + 32766, 32767, 32766, 32767, 2667, 2386, 32767, 2233, 32767, 32767, 32767, 32767, 32767, 2668, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2669, 32767, 32767, 32766, 32766, + 32766, 32766, 32767, 32767, 32767, 2251, 2412, 2413, 32766, 32767, 2255, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 2671, 2670, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32767, + 32767, 32766, 32766, 32767, 32767, 32766, 2672, 2673, 2289, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 2184, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 2677, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2315, 32767, 2674, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32766, 32766, 32767, 32767, 2327, 32766, 32767, 32767, 2494, 2495, 32767, + 32767, 32767, 1383, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 2339, 32766, + 32766, 32766, 2233, 32767, 2667, 32767, 32767, 32767, 2518, 32767, 32767, 32767, 32767, 2668, + 32766, 32767, 32767, 32767, 2359, 2360, 2361, 32767, 2669, 4083, 32767, 32767, 32767, 2251, + 32767, 32767, 32767, 32767, 2255, 32767, 32767, 32767, 2675, 32766, 32767, 2676, 32767, 32767, + 2671, 32767, 32767, 32767, 32767, 32767, 2670, 32767, 32767, 2386, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, + 2672, 2673, 2289, 32767, 32767, 1384, 32766, 32767, 32767, 32767, 2412, 2413, 32766, 32767, + 32767, 2184, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32767, + 32767, 32767, 2315, 32766, 2674, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32766, 32767, 2327, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 2339, 32766, 32767, 32767, 32766, + 32767, 32767, 32767, 2677, 2233, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, + 32766, 2359, 2360, 2361, 32767, 32767, 32767, 32767, 1386, 32767, 32766, 32767, 32766, 32767, + 32767, 2251, 1387, 2494, 2495, 2675, 2255, 32767, 2676, 32766, 32767, 32767, 32766, 32767, + 32767, 32766, 2671, 32766, 32767, 32766, 2386, 32766, 32766, 32766, 32767, 32767, 32766, -447, + 2518, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, + 32766, 32767, 2672, 2673, 2289, 32767, 32766, 2412, 2413, 32766, 32767, 32766, 32766, 32767, + 32767, 32766, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 2315, 32767, 2674, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32766, 32767, 32766, 32767, 2327, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, + 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32766, 2339, 32767, 32766, 2677, + 32766, 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32766, + 32767, 32766, 32766, 2359, 2360, 2361, 32767, 32767, 32767, 1388, 32766, 32767, 32767, 32767, + 2494, 2495, 32767, 32767, 32766, 32766, 32767, 2675, 32767, 32767, 2676, 32766, 32766, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 2386, 32767, 32767, 2518, 32766, 32767, + 32767, 32767, 32767, 32766, 4104, 32766, 32767, 32767, 32766, 32766, 32767, 32766, 32767, + 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 2412, 2413, 32767, 32767, 32767, + 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, + 32767, 5923, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, + 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, + 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, + 32767, 32766, 32767, 2677, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 1389, 32767, + 4110, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 2494, 2495, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, + 32766, 32767, 32766, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32766, 32767, 32767, + 32767, 32766, 2518, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, + 32766, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, + 32767, 32766, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32767, + 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 5071, 32767, 32766, 32767, 32767, 32767, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, -2241, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 2667, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 2668, 32767, 32766, 32767, + 32767, 32766, 32767, 32767, 32767, 2669, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 2670, 32767, 32767, 32767, 32767, 32766, 32767, 32767, + 32766, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32766, 32767, 2184, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 2233, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 4131, 32767, 32767, 32767, 32767, 32767, 32767, 4132, 32767, 32767, 32766, + 32767, 32767, 32766, 32767, 2251, 32767, 32767, 32767, 32767, 2255, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 2671, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 2672, 2673, 2289, 32767, 32767, 32767, 32767, 32767, + 32767, 5925, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2315, 32767, 2674, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2327, 32767, 32767, 32766, 32767, + 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, + 32767, 2339, 32767, 32767, 32767, 32767, 32767, 5932, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2359, 2360, 2361, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2675, 32767, + 32766, 2676, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2386, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 2412, 2413, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 4133, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 32767, 244, 245, 246, 2494, 2495, 32766, 32767, 1242, 32766, 32767, 247, + 248, 249, 32767, 250, 251, 252, 253, 254, 255, 1243, 256, 257, 258, 1244, 260, 1245, 1246, + 2518, 263, 264, 265, 266, 267, 268, 269, 1247, 1248, 270, 271, 1249, 273, 1250, 32767, 275, + 276, 277, 278, 1251, 32767, 1252, 32767, 32767, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, 298, 299, 300, 1253, 1254, 301, 1255, + 1256, 1257, 1258, 1259, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 1260, 1261, 311, + 1262, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, + 324, 325, 832, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, + 336, 32767, 337, 338, 339, 340, 1263, 342, 343, 344, 345, 1264, 32767, 1265, 347, 1266, 32767, + 348, 349, 350, 1267, 352, 32767, 353, 32767, 354, 32767, 355, 356, 32766, 357, 358, 359, 360, + 361, 32767, 362, 32767, 1268, 1269, 365, 32767, 32767, 366, 32767, 367, 368, 369, 782, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 387, + 388, 389, 390, 391, 392, 1270, 32767, 1271, 32767, 1272, 396, 32767, 397, 398, 399, 400, 1273, + 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 410, 1282, 412, 413, 414, 415, 416, 417, 418, + 32767, 32767, 32767, 419, 1283, 421, 32767, 422, 423, 32767, 424, 425, 426, 1284, 1285, 427, + 428, 429, 430, 1286, 32767, 431, 432, 433, 434, 435, 436, 1287, 438, 439, 440, 441, 32767, + 32767, 32767, 32767, 32767, 442, 443, 1288, 444, 445, 1289, 447, 1290, 449, 450, 451, 452, 453, + 454, 455, 456, 457, 1291, 459, 1292, 460, 461, 462, 32767, 1293, 463, 1294, 32767, 465, 1295, + 1296, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 1297, 474, 475, 32767, 32767, 476, + 477, 478, 479, 480, 481, 1298, 483, 484, 485, 1299, 486, 1300, 487, 488, 489, 490, 491, 492, + 493, 32767, 494, 495, 496, 1301, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, + 509, 32767, 1302, 510, 511, 512, 32767, 513, 1303, 515, 516, 517, 32767, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 534, 535, 536, 537, 538, + 539, 1304, 541, 32767, 542, 543, 544, 545, 546, 716, 547, 548, 549, 550, 32767, 551, 552, 553, + 554, 555, 1305, 556, 557, 558, 559, 560, 561, 562, 563, 1306, 565, 32767, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 1307, 582, 32767, 583, 584, 1308, 32767, + 32767, 32767, 32767, 585, 586, 587, 588, 589, 590, 591, 592, 32767, 593, 1310, 1311, 32767, + 2667, 596, 597, 1312, 599, 1313, 1314, 601, 602, 2668, 603, 604, 605, 32767, 606, 607, 608, + 609, 2669, 1315, 610, 611, 612, 613, 614, 1316, 32767, 615, 616, 617, 618, 619, 620, 1317, + 32767, 622, 623, 624, 625, 626, 627, 32767, 32767, 628, 2670, 32767, 629, 630, 32767, 32767, + 631, 632, 633, 1318, 634, 1319, 1320, 1321, 1322, 639, 1323, 1324, 1325, 1326, 644, 645, 646, + 647, 648, 32767, 32767, 32767, 32767, 32767, 32767, 2667, 32767, 32767, 4148, 32767, 2184, + 32767, 32766, 32767, 2668, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2669, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2670, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 2233, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 4141, 32767, 2184, 32767, 32766, 32767, 32767, 32767, + 2251, 32767, 32767, 32767, 32767, 2255, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 2671, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 2672, 2673, 2289, 32767, 32767, 32767, 32767, 32767, 2233, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 2315, 32767, 2674, 32767, 2251, 32767, 32767, 32767, 32767, 2255, + 32767, 32767, 32767, 32767, 2327, 32767, 32767, 32767, 32767, 2671, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2339, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2672, 2673, 2289, 32767, 32767, + 32767, 32767, 2359, 2360, 2361, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 2675, 32767, 32767, 2676, 2315, 32767, 2674, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2386, 32767, 32767, 2327, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 2339, 32767, 32767, 32767, 32767, 32767, 2412, 2413, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2359, 2360, 2361, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2675, + 32767, 32767, 2676, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 2386, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 2677, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 2412, 2413, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 2494, 2495, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 2518, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2677, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 2494, 2495, 32767, + 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2518, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, + 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 2668, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 2670, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 2518, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 2668, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 2669, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 2670, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 2184, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 2671, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2672, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32766, 2674, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 2339, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 2361, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 2675, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 2386, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2412, 2413, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 2677, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 2494, 2495, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 2518, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 2668, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 2670, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 2184, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 4159, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 2339, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 2675, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 2386, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2412, 2413, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 2494, 2495, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 2518, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 4162, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 4163, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 4164, 32766, 32766, 32767, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 4165, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 4069, 32767, 4070, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 2668, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 2670, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 2184, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 4177, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 2339, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 2675, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 2386, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2412, 2413, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 2494, 2495, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 2518, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 2668, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 2670, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 2184, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2412, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 2494, 2495, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 2518, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32767, + 32767, 32766, 32767, 32767, 32766, 32766, 32766, 3341, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 4178, + 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, + 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 2667, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 2668, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 2669, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 2670, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 2184, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 2233, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 2251, 32766, 32766, 32766, 32766, 2255, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 2671, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 2672, 2673, 2289, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 2315, 32766, 2674, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 2327, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, + 32766, 2339, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2359, 2360, 2361, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2675, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 2386, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 2412, 2413, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2677, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2494, 2495, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2518, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 2668, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 2670, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2184, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2518, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 2048, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 4196, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, 249, + 32767, 250, 251, 252, 253, 254, 255, 32767, 256, 257, 258, 259, 260, 261, 262, 32767, 263, 264, + 265, 266, 267, 268, 269, 32767, 1248, 270, 271, 272, 273, 274, 32767, 275, 276, 277, 278, 1251, + 32767, 1252, 32767, 32767, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 32767, 292, + 293, 294, 295, 296, 297, 32767, 298, 299, 300, 1253, 1254, 301, 1255, 1256, 1257, 1258, 1259, + 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32767, 312, 32767, 313, 314, + 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 326, 327, 32767, + 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 1264, 32767, 32767, 347, 32767, 32767, 348, 349, 350, 351, 352, + 32767, 353, 32767, 354, 32767, 355, 356, 32767, 357, 358, 359, 360, 361, 32767, 362, 32767, + 1268, 364, 365, 32767, 32767, 366, 32767, 367, 368, 369, 32767, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 387, 388, 389, 390, 391, 392, + 393, 32767, 394, 32767, 395, 396, 32767, 397, 398, 399, 400, 3399, 1274, 1275, 1276, 1277, + 1278, 1279, 1280, 1281, 3400, 1282, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, + 419, 1283, 421, 32767, 422, 423, 32767, 424, 425, 426, 1284, 1285, 427, 428, 429, 430, 29, + 32767, 431, 432, 433, 434, 435, 436, 1287, 438, 439, 440, 441, 32767, 32767, 32767, 32767, + 32767, 442, 443, 32767, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 1291, 459, 32767, 460, 461, 462, 32767, 32767, 463, 1294, 32767, 465, 32767, 466, 467, 468, + 469, 32767, 470, 471, 472, 32767, 32767, 473, 474, 475, 32767, 32767, 476, 477, 478, 479, 480, + 481, 1298, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, + 495, 496, 1301, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, + 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 534, 535, 536, 537, 538, 539, 540, 3403, + 32767, 542, 543, 544, 545, 546, 32767, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, + 1305, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 1307, 582, 32767, 583, 584, 1308, 32767, 32767, + 32767, 32767, 585, 586, 587, 588, 589, 590, 591, 592, 32767, 593, 594, 595, 32767, 32767, 596, + 597, 1312, 599, 1313, 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, + 32767, 610, 611, 612, 613, 614, 1316, 32767, 615, 616, 617, 618, 619, 620, 621, 32767, 622, + 623, 624, 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, + 633, 32767, 634, 1319, 1320, 1321, 1322, 639, 1323, 1324, 1325, 1326, 32766, 645, 646, 647, + 648, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 254, 255, 32767, 256, + 257, 258, 259, 260, 261, 262, 32767, 263, 264, 265, 266, 267, 268, 269, 32767, 1248, 270, 271, + 272, 273, 274, 32767, 275, 276, 277, 278, 1251, 32767, 1252, 32767, 32767, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, 298, 299, 300, + 1253, 1254, 301, 1255, 1256, 1257, 1258, 1259, 303, 304, 32767, 32767, 32767, 305, 306, 307, + 308, 309, 310, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, + 323, 32767, 32767, 324, 325, 326, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, + 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 1264, 32767, + 32767, 347, 32767, 32767, 348, 349, 350, 351, 352, 32767, 353, 32767, 354, 32767, 355, 356, + 32767, 357, 358, 359, 360, 361, 32767, 362, 32767, 1268, 364, 365, 32767, 32767, 366, 32767, + 367, 368, 369, 32767, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 32767, 386, 387, 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, 32767, + 397, 398, 399, 400, 3399, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 3400, 1282, 412, 413, + 414, 415, 416, 417, 418, 3401, 32767, 32767, 419, 1283, 421, 32767, 422, 423, 32767, 424, 425, + 426, 1284, 1285, 427, 428, 429, 430, 3402, 32767, 431, 432, 433, 434, 435, 436, 1287, 438, 439, + 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 1291, 459, 32767, 460, 461, 462, 32767, 32767, 463, + 1294, 32767, 465, 32767, 466, 467, 468, 469, 32767, 470, 471, 472, 32767, 912, 473, 474, 475, + 32767, 32767, 476, 477, 478, 479, 480, 481, 1298, 483, 484, 485, 32767, 486, 32767, 487, 488, + 489, 490, 491, 492, 493, 32767, 494, 495, 496, 1301, 498, 499, 500, 501, 502, 32767, 503, 504, + 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, 32767, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 3403, 32767, 542, 543, 544, 545, 546, 32767, 547, 548, 549, 550, + 47, 551, 552, 553, 554, 555, 1305, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 32767, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 1307, 582, 32767, + 583, 584, 1308, 32767, 32767, 32767, 51, 585, 586, 587, 588, 589, 590, 591, 592, 32767, 593, + 594, 595, 32767, 32767, 596, 597, 1312, 599, 1313, 32767, 601, 602, 32767, 603, 604, 605, + 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, 1316, 32767, 615, 616, 617, + 618, 1202, 620, 621, 32767, 622, 623, 624, 625, 626, 627, 32767, 32767, 628, 32767, 56, 629, + 630, 32767, 57, 631, 632, 633, 32767, 634, 1319, 1320, 1321, 1322, 639, 1323, 1324, 1325, 1326, + 32766, 645, 646, 647, 648, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 4204, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 4205, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, + 244, 245, 246, 32767, 32767, 32767, 32767, 32767, 4206, 32767, 247, 248, 249, 32767, 250, 251, + 252, 253, 32767, 255, 32767, 256, 257, 258, 259, 32767, 261, 262, 32767, 263, 264, 265, 266, + 267, 268, 269, 32767, 32767, 270, 271, 272, 273, 274, 32767, 275, 276, 277, 278, 279, 32767, + 32767, 32767, 32767, 281, 282, 283, 284, 285, 286, 32767, 288, 289, 290, 291, 32767, 292, 293, + 294, 295, 296, 297, 32766, 32766, 299, 300, 32767, 32767, 301, 32767, 32767, 32767, 32767, + 32767, 303, 304, 32767, 32767, 32766, 305, 306, 307, 308, 309, 310, 311, 32767, 312, 32767, + 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 326, 327, + 32766, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32766, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 32767, 32767, 347, 32767, 32766, 348, 349, 350, + 351, 352, 32766, 353, 32767, 354, 32766, 355, 32767, 32767, 32766, 358, 359, 360, 361, 32766, + 362, 32767, 363, 364, 365, 32766, 32767, 366, 32766, 367, 368, 369, 32767, 657, 371, 372, + 32767, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 32766, 388, 389, + 390, 391, 392, 393, 32766, 394, 32767, 395, 396, 32767, 32767, 32767, 399, 32766, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, + 32767, 419, 420, 32766, 32767, 422, 32767, 32766, 424, 425, 426, 32767, 32767, 427, 428, 429, + 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, 32767, 32767, + 32767, 32767, 442, 443, 32767, 444, 445, 446, 32766, 448, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 458, 459, 32767, 460, 461, 32767, 32767, 32767, 463, 464, 32767, 465, 32767, 466, + 467, 468, 469, 32766, 470, 471, 472, 32766, 32767, 473, 474, 475, 32767, 32766, 476, 477, + 32767, 479, 480, 32767, 482, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, 491, 492, + 493, 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, + 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, 32767, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32766, 532, 533, 32766, 535, 536, 537, 538, + 539, 540, 541, 32766, 542, 543, 544, 545, 546, 32767, 547, 548, 549, 550, 32767, 551, 552, 553, + 554, 555, 32767, 556, 557, 558, 559, 560, 32767, 562, 563, 564, 565, 32767, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32766, + 32767, 32767, 32767, 585, 32767, 587, 588, 589, 590, 591, 592, 32767, 593, 594, 595, 32767, + 32767, 596, 597, 598, 599, 600, 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, + 609, 32766, 32767, 610, 611, 612, 613, 614, 32767, 32766, 615, 616, 617, 618, 619, 620, 621, + 32767, 622, 32767, 624, 625, 626, 627, 32767, 32766, 628, 32766, 32766, 629, 630, 32767, 32767, + 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, + 648, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32766, + 32767, 32767, 32766, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32766, 32767, + 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, + 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32767, + 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 6099, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 32766, 244, 245, 246, 32767, 32766, 32767, 32766, 32766, 4206, 32767, 247, 248, + 249, 32766, 250, 251, 252, 253, 32767, 255, 32767, 256, 257, 258, 259, 32767, 261, 262, 32767, + 263, 264, 265, 266, 267, 268, 269, 32767, 32767, 270, 271, 272, 273, 274, 32767, 275, 276, 277, + 278, 279, 32766, 32767, 32767, 32767, 281, 282, 283, 284, 285, 286, 32767, 288, 289, 290, 291, + 32767, 292, 293, 294, 295, 296, 297, 32766, 32766, 299, 300, 32767, 32767, 301, 32767, 32767, + 32767, 32767, 32767, 303, 304, 32766, 32767, 32766, 305, 306, 307, 308, 309, 310, 311, 32767, + 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, + 325, 326, 327, 32766, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, + 32766, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 32767, 32767, 347, 32767, 32766, 348, + 349, 350, 351, 352, 32766, 353, 32767, 354, 32766, 355, 32767, 32767, 32766, 358, 359, 360, + 361, 32766, 362, 32767, 363, 364, 365, 32766, 32767, 366, 32766, 367, 368, 369, 32767, 657, + 371, 372, 32767, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 32766, + 388, 389, 390, 391, 392, 393, 32766, 394, 32767, 395, 396, 32767, 32767, 32767, 399, 32766, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 32767, 32767, 32767, 419, 420, 32766, 32767, 422, 32767, 32766, 424, 425, 426, 32767, 32767, + 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, + 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, 32766, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, 32767, 32767, 32767, 463, 464, 32767, 465, + 32767, 466, 467, 468, 469, 32766, 470, 471, 472, 32766, 32767, 473, 474, 475, 32767, 32766, + 476, 477, 32767, 479, 480, 32767, 482, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, + 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, + 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, 32767, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32766, 532, 533, 32766, 535, 536, + 537, 538, 539, 540, 541, 32766, 542, 543, 544, 545, 546, 32767, 547, 548, 549, 550, 32767, 551, + 552, 553, 554, 555, 32767, 556, 557, 558, 559, 560, 32767, 562, 563, 564, 565, 32767, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 32767, 583, 584, + 32767, 32766, 32767, 32767, 32767, 585, 32766, 587, 588, 589, 590, 591, 592, 32767, 593, 594, + 595, 32767, 32767, 596, 597, 598, 599, 600, 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, + 607, 608, 609, 32766, 32767, 610, 611, 612, 613, 614, 32767, 32766, 615, 616, 617, 618, 619, + 620, 621, 32767, 622, 32767, 624, 625, 626, 627, 32767, 32766, 628, 32766, 32766, 629, 630, + 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 32767, 32767, + 32767, 32767, 32767, 4220, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 32767, 255, 32767, + 256, 257, 258, 259, 32767, 261, 262, 32767, 263, 264, 265, 266, 267, 268, 269, 32767, 32767, + 270, 271, 272, 273, 274, 32767, 275, 276, 277, 278, 279, 32767, 32767, 32767, 32767, 281, 282, + 283, 284, 285, 286, 32767, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32766, + 32766, 299, 300, 32767, 32767, 301, 32767, 32767, 32767, 32767, 32767, 303, 304, 32767, 32767, + 32766, 305, 306, 307, 308, 309, 310, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, 318, 319, + 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 326, 327, 32766, 32767, 328, 32767, 329, + 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32766, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 32767, 32767, 347, 32767, 32766, 348, 349, 350, 351, 352, 32766, 353, 32767, 354, + 32766, 355, 32767, 32767, 32766, 358, 359, 360, 361, 32766, 362, 32767, 363, 364, 365, 32766, + 32767, 366, 32766, 367, 368, 369, 32767, 657, 371, 372, 32767, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 32767, 386, 32766, 388, 389, 390, 391, 392, 393, 32766, 394, + 32767, 395, 396, 32767, 32767, 32767, 399, 32766, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, 32766, 32767, 422, + 32767, 32766, 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, + 444, 445, 446, 32766, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 32767, 460, + 461, 32767, 32767, 32767, 463, 464, 32767, 465, 32767, 466, 467, 468, 469, 32766, 470, 471, + 472, 32766, 32767, 473, 474, 475, 32767, 32766, 476, 477, 32767, 479, 480, 32767, 482, 483, + 484, 485, 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, + 32767, 513, 514, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 32766, 532, 533, 32766, 535, 536, 537, 538, 539, 540, 541, 32766, 542, 543, 544, + 545, 546, 32767, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 32767, 556, 557, 558, 559, + 560, 32767, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32766, 32767, 32767, 32767, 585, 32767, + 587, 588, 589, 590, 591, 592, 32767, 593, 594, 595, 32767, 32767, 596, 597, 598, 599, 600, + 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32766, 32767, 610, 611, 612, + 613, 614, 32767, 32766, 615, 616, 617, 618, 619, 620, 621, 32767, 622, 32767, 624, 625, 626, + 627, 32767, 32766, 628, 32766, 32766, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, + 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, + 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32767, + 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, + 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, + 32767, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 4226, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 1039, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 1040, 32767, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, + 32767, 32767, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 1375, 1376, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, -2763, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32767, + 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, -2763, -2763, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, -2763, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, -2763, + 32766, 32766, 32766, 32766, 32766, -2763, 32766, 32767, 32766, -2763, 32766, 32767, -2763, + 32767, 32766, 32766, 32766, 32766, -2763, 32766, 32767, 32766, 32766, 32766, -2763, 32767, + 32766, -2763, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, -2763, 32766, 32767, 32766, 32766, 32767, 32767, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, -2763, 32767, 32766, 32766, 32767, + 32767, 32766, 32767, -2763, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + -2763, 32766, 32766, 32766, -2763, 32767, 32766, 32766, 32766, 32767, -2763, 32766, 32766, + 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, -2763, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, -2763, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32767, -2763, 32767, 32767, 808, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, -2763, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, -2763, + 32766, -2763, -2763, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, -2765, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32767, + 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, -2765, -2765, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, -2765, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, -2765, + 32766, 32766, 32766, 32766, 32766, -2765, 32766, 32767, 32766, -2765, 32766, 32767, -2765, + 32767, 32766, 32766, 32766, 32766, -2765, 32766, 32767, 32766, 32766, 32766, -2765, 32767, + 32766, -2765, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, -2765, 32766, 32767, 32766, 32766, 32767, 32767, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, -2765, 32767, 32766, 32766, 32767, + 32767, 32766, 32767, -2765, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + -2765, 32766, 32766, 32766, -2765, 32767, 32766, 32766, 32766, 32767, -2765, 32766, 32766, + 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, -2765, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, -2765, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32767, -2765, 32767, 32767, 808, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, -2765, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, -2765, + 32766, -2765, -2765, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, -2782, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32767, + 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, -2782, -2782, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, -2782, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, -2782, + 32766, 32766, 32766, 32766, 32766, -2782, 32766, 32767, 32766, -2782, 32766, 32767, -2782, + 32767, 32766, 32766, 32766, 32766, -2782, 32766, 32767, 32766, 32766, 32766, -2782, 32767, + 32766, -2782, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, -2782, 32766, 32767, 32766, 32766, 32767, 32767, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, -2782, 32767, 32766, 32766, 32767, + 32767, 32766, 32767, -2782, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + -2782, 32766, 32766, 32766, -2782, 32767, 32766, 32766, 32766, 32767, -2782, 32766, 32766, + 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, -2782, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, -2782, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32767, -2782, 32767, 32767, 808, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, -2782, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, -2782, + 32766, -2782, -2782, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 254, 255, 32767, 256, 257, 258, + 259, 260, 261, 262, 32767, 263, 264, 265, 266, 267, 268, 269, 32767, 32767, 270, 271, 272, 273, + 274, 32767, 275, 276, 277, 278, 279, 32767, 280, 32767, 32767, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, 298, 299, 300, 32767, + 32767, 301, 32767, 302, 32767, 32767, 32767, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, + 309, 310, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, + 32767, 32767, 324, 325, 326, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, + 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 32767, 1828, + 347, 1602, 32767, 348, 349, 350, 351, 352, 32767, 353, 32767, 354, 32767, 355, 356, 32767, 357, + 358, 359, 360, 361, 32767, 362, 32767, 363, 364, 365, 32767, 32767, 366, 32767, 367, 368, 369, + 782, 966, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, + 386, 387, 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, 32767, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 32767, 32767, 32767, 419, 420, 421, 32767, 422, 423, 32767, 424, 425, 426, 32767, 32767, 427, + 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, + 32767, 32767, 32767, 32767, 442, 443, 1603, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 455, 456, 457, 458, 459, 32767, 460, 461, 462, 32767, 32767, 463, 464, 32767, 465, 32767, + 466, 467, 468, 469, 32767, 470, 471, 472, 1829, 32767, 473, 474, 475, 32767, 32767, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 32767, 486, 32766, 487, 488, 489, 490, 491, 492, 493, + 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, + 32767, 1604, 510, 511, 512, 32767, 513, 514, 515, 516, 517, 32767, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 32767, 542, 543, 544, 545, 546, 716, 547, 548, 549, 550, 32767, 551, 552, 553, 554, + 555, 32767, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32767, + 32767, 32767, 32767, 585, 586, 587, 588, 589, 590, 591, 592, 32767, 593, 594, 595, 32767, + 32767, 596, 597, 598, 599, 600, 1830, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, + 609, 32767, 32767, 610, 611, 612, 613, 614, 32767, 32767, 615, 616, 617, 618, 619, 620, 621, + 32767, 622, 623, 624, 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, + 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, + 648, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32767, + 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32767, 32767, + 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32767, + 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32767, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32767, + 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 5841, 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, + 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32766, + 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, + 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, + 32767, 32767, 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32766, + 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32767, 32766, 32766, + 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, + 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32767, + 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32767, 32767, + 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, + 32767, 32767, 32767, 32767, 32766, 32767, 32766, 2079, 32766, 32767, 32767, 32767, 32767, + 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32767, + 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, + 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, -1778, -1778, 32766, 32767, 32766, 32766, 32767, 32767, + -1777, -1777, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, + 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 32767, 32767, 32766, 32767, + 32767, 32767, 32767, 247, 248, 249, 32766, 250, 251, 252, 253, 32767, 255, 32767, 256, 257, + 258, 259, 32767, 261, 262, 32767, 263, 264, 265, 266, 267, 268, 269, 32767, 32767, 270, 271, + 272, 273, 274, 32767, 275, 276, 277, 278, 279, 32767, 32767, 32767, 32767, 281, 282, 283, 284, + 285, 286, 32767, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, 32767, 299, + 300, 32767, 32767, 301, 32767, 32767, 32767, 32767, 32767, 303, 304, 32767, 32767, 32767, 305, + 306, 307, 308, 309, 310, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, + 321, 322, 323, 32767, 32767, 324, 325, 326, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, + 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 32767, 32767, 347, 32767, 32767, 348, 349, 350, 351, 352, 32767, 353, 32767, 354, 32767, 355, + 32767, 32767, 32767, 358, 359, 360, 361, 32767, 362, 32767, 363, 364, 365, 32767, 32767, 366, + 32767, 367, 368, 369, 32767, 657, 371, 372, 32767, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 32767, 386, 32767, 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, + 32767, 32767, 32767, 399, 32767, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, 32767, 32767, 422, 32767, 32767, + 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 29, 32767, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, 32767, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, 32767, 32767, + 32767, 463, 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, + 473, 474, 475, 32767, 32767, 476, 477, 32767, 479, 480, 32767, 482, 483, 484, 485, 32767, 486, + 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, + 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, + 532, 533, 32767, 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, 546, 32767, 547, + 548, 549, 550, 47, 551, 552, 553, 554, 555, 32767, 556, 557, 558, 559, 560, 32767, 562, 563, + 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, + 581, 582, 32767, 583, 584, 32767, 32767, 32767, 32767, 51, 585, 32767, 587, 588, 589, 590, 591, + 592, 32767, 593, 594, 595, 32767, 32767, 596, 597, 598, 599, 600, 32767, 601, 602, 32767, 603, + 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, 32767, 32767, 615, + 616, 617, 618, 32766, 620, 621, 32767, 622, 32767, 624, 625, 626, 627, 32767, 32767, 628, + 32767, 56, 629, 630, 32767, 57, 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645, 646, 647, 648, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, + 32766, 32767, 32767, 32767, 2667, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 2668, + 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 2669, 32767, 32767, 32766, 32767, + 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 2670, 32767, 32767, 32767, 32767, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32767, + 32766, 32766, 32767, 32767, 32767, 2184, 32767, 32766, 32766, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 1392, 32767, 32766, + 32767, 32767, 32767, 32766, 2605, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32767, + 32766, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32767, + 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 2233, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 2251, 32767, 32767, 32766, 32767, 2255, + 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 2671, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2672, 2673, 2289, 32767, + 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32767, 32767, 32767, + 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 1363, 2315, 32767, + 2674, 32767, 32767, 32767, 1363, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2327, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, + 32766, 32767, 32767, 32767, 2339, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2359, 2360, 2361, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 32767, 32767, 2675, 32767, 32766, 2676, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, 2386, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 4315, 32767, + 32767, 32767, 32766, 32767, 32767, 2412, 2413, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 32767, 32767, 32766, 32767, 32766, 32767, 32766, 32767, 32767, 32766, 32767, 32766, 32767, + 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, + 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 2677, + 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32766, + 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32767, + 32766, 2494, 2495, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 2518, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, + 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32767, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32767, 32766, + 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, + 32767, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 4358, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 32766, 32766, 32766, 235, 236, 237, 238, 239, 240, 241, 242, 243, 1737, 244, 245, 246, 1738, + 1739, 1740, 1741, 1742, 1743, 1744, 247, 248, 249, 1745, 250, 251, 252, 253, 254, 255, 32767, + 256, 257, 258, 259, 260, 261, 262, 1746, 263, 264, 265, 266, 267, 268, 269, 1747, 1748, 270, + 271, 272, 273, 274, 1749, 275, 276, 277, 278, 279, 1750, 280, 32767, 1751, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 1752, 292, 293, 294, 295, 296, 297, 1753, 298, 299, 300, + 1754, 1755, 301, 1756, 302, 1757, 1758, 1759, 303, 304, 32767, 32767, 32767, 305, 306, 307, + 308, 309, 310, 311, 1760, 312, 1761, 313, 314, 315, 316, 317, 318, 319, 1762, 320, 321, 322, + 323, 1763, 1764, 324, 325, 326, 327, 32767, 32767, 328, 1765, 329, 330, 331, 332, 1766, 333, + 32767, 334, 335, 336, 1767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 32767, 1768, 347, + 32767, 1769, 348, 349, 350, 351, 352, 1770, 353, 1771, 354, 32767, 355, 356, 1772, 357, 358, + 359, 360, 361, 1773, 362, 32767, 363, 364, 365, 1774, 32767, 366, 1775, 367, 368, 369, 32767, + 1776, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 1777, 386, + 387, 388, 389, 390, 391, 392, 393, 1778, 394, 1779, 395, 396, 1780, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 1781, + 32767, 1782, 419, 420, 421, 32767, 422, 423, 1783, 424, 425, 426, 1784, 1785, 427, 428, 429, + 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, 32767, 32767, + 32767, 32767, 442, 443, 32767, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, + 457, 458, 459, 1786, 460, 461, 462, 32767, 32767, 463, 464, 32767, 465, 1787, 466, 467, 468, + 469, 1788, 470, 471, 472, 1789, 1790, 473, 474, 475, 1791, 1792, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 1793, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 1794, 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, + 512, 32767, 513, 514, 515, 516, 517, 1795, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 1796, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, + 544, 545, 546, -2483, 547, 548, 549, 550, 1797, 551, 552, 553, 554, 555, 1798, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 1799, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 1800, 583, 584, 1801, 32767, 32767, 32767, 1803, 585, 586, 587, + 588, 589, 590, 591, 592, 1804, 593, 594, 595, 1805, 1806, 596, 597, 598, 599, 600, 1807, 601, + 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 1808, 1809, 610, 611, 612, 613, 614, + 1810, 1811, 615, 616, 617, 618, 619, 620, 621, 1812, 622, 623, 624, 625, 626, 627, 1813, 1814, + 628, 1815, 32766, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, 242, 243, 1737, + 244, 245, 246, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 247, 248, 249, 1745, 250, 251, 252, + 253, 254, 255, 32767, 256, 257, 258, 259, 260, 261, 262, 1746, 263, 264, 265, 266, 267, 268, + 269, 1747, 1748, 270, 271, 272, 273, 274, 1749, 275, 276, 277, 278, 279, 1750, 280, 32767, + 1751, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 1752, 292, 293, 294, 295, 296, + 297, 1753, 298, 299, 300, 1754, 1755, 301, 1756, 302, 1757, 1758, 1759, 303, 304, 32767, 32767, + 32767, 305, 306, 307, 308, 309, 310, 311, 1760, 312, 1761, 313, 314, 315, 316, 317, 318, 319, + 1762, 320, 321, 322, 323, 1763, 1764, 324, 325, 326, 327, 32767, 32767, 328, 1765, 329, 330, + 331, 332, 1766, 333, 32767, 334, 335, 336, 1767, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 32767, 1768, 347, 32767, 1769, 348, 349, 350, 351, 352, 1770, 353, 1771, 354, 32767, 355, + 356, 1772, 357, 358, 359, 360, 361, 1773, 362, 32767, 363, 364, 365, 1774, 32767, 366, 1775, + 367, 368, 369, 32767, 1776, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 1777, 386, 387, 388, 389, 390, 391, 392, 393, 1778, 394, 1779, 395, 396, 1780, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 1781, 32767, 1782, 419, 420, 421, 32767, 422, 423, 1783, 424, 425, 426, 1784, 1785, + 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, + 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 455, 456, 457, 458, 459, 1786, 460, 461, 462, 32767, 32767, 463, 464, 32767, 465, 1787, + 466, 467, 468, 469, 1788, 470, 471, 472, 1789, 1790, 473, 474, 475, 1791, 1792, 476, 477, 478, + 479, 480, 481, 482, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 1793, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 1794, 503, 504, 505, 506, 507, 508, 509, 32767, + 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, 1795, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 1796, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 32767, 542, 543, 544, 545, 546, -2555, 547, 548, 549, 550, 1797, 551, 552, 553, 554, 555, 1798, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 1799, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 1800, 583, 584, 1801, 32767, 32767, 32767, 1803, + 585, 586, 587, 588, 589, 590, 591, 592, 1804, 593, 594, 595, 1805, 1806, 596, 597, 598, 599, + 600, 1807, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 1808, 1809, 610, 611, + 612, 613, 614, 1810, 1811, 615, 616, 617, 618, 619, 620, 621, 1812, 622, 623, 624, 625, 626, + 627, 1813, 1814, 628, 1815, 32766, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 1737, 244, 245, 246, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 247, 248, 249, 1745, + 250, 251, 252, 253, 254, 255, 32767, 256, 257, 258, 259, 260, 261, 262, 1746, 263, 264, 265, + 266, 267, 268, 269, 1747, 1748, 270, 271, 272, 273, 274, 1749, 275, 276, 277, 278, 279, 1750, + 280, 32767, 1751, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 1752, 292, 293, 294, + 295, 296, 297, 1753, 298, 299, 300, 1754, 1755, 301, 1756, 302, 1757, 1758, 1759, 303, 304, + 32767, 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 1760, 312, 1761, 313, 314, 315, 316, + 317, 318, 319, 1762, 320, 321, 322, 323, 1763, 1764, 324, 325, 326, 327, 32767, 32767, 328, + 1765, 329, 330, 331, 332, 1766, 333, 32767, 334, 335, 336, 1767, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 32767, 1768, 347, 32767, 1769, 348, 349, 350, 351, 352, 1770, 353, 1771, + 354, 32767, 355, 356, 1772, 357, 358, 359, 360, 361, 1773, 362, 32767, 363, 364, 365, 1774, + 32767, 366, 1775, 367, 368, 369, 32767, 1776, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 1777, 386, 387, 388, 389, 390, 391, 392, 393, 1778, 394, 1779, 395, + 396, 1780, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 1781, 32767, 1782, 419, 420, 421, 32767, 422, 423, 1783, 424, 425, + 426, 1784, 1785, 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 1786, 460, 461, 462, 32767, 32767, 463, 464, + 32767, 465, 1787, 466, 467, 468, 469, 1788, 470, 471, 472, 1789, 1790, 473, 474, 475, 1791, + 1792, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, + 491, 492, 493, 1793, 494, 495, 496, 497, 498, 499, 500, 501, 502, 1794, 503, 504, 505, 506, + 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, 1795, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 1796, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 32767, 542, 543, 544, 545, 546, -2735, 547, 548, 549, 550, 1797, 551, 552, + 553, 554, 555, 1798, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 1799, 566, 567, 568, + 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 1800, 583, 584, 1801, + 32767, 32767, 32767, 1803, 585, 586, 587, 588, 589, 590, 591, 592, 1804, 593, 594, 595, 1805, + 1806, 596, 597, 598, 599, 600, 1807, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, + 1808, 1809, 610, 611, 612, 613, 614, 1810, 1811, 615, 616, 617, 618, 619, 620, 621, 1812, 622, + 623, 624, 625, 626, 627, 1813, 1814, 628, 1815, 32766, 629, 630, 32767, 32767, 631, 632, 633, + 32767, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 32767, 255, 32767, 256, 257, 258, 259, + 32767, 261, 262, 32767, 263, 264, 265, 266, 267, 268, 269, 32767, 32767, 270, 271, 272, 273, + 274, 32767, 275, 276, 277, 278, 279, 32767, 32767, 32767, 32767, 281, 282, 283, 284, 285, 286, + 32767, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, 32767, 299, 300, 32767, + 32767, 301, 32767, 32767, 32767, 32767, 32767, 303, 304, 32767, 32767, 32767, 305, 306, 307, + 308, 309, 310, 311, 32766, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, + 323, 32767, 32767, 324, 325, 326, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, + 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 32767, + 32767, 347, 32767, 32767, 348, 349, 350, 351, 352, 32767, 353, 32767, 354, 32767, 355, 32767, + 32767, 32767, 358, 359, 360, 361, 32767, 362, 32767, 363, 364, 365, 32767, 32767, 366, 32767, + 367, 368, 369, 32767, 657, 371, 372, 32767, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 32767, 386, 32767, 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, 32767, + 32767, 32767, 399, 32767, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, 32767, 32767, 422, 32767, 32767, 424, 425, + 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, 32767, 448, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, 32767, 32767, 32767, + 463, 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 473, 474, + 475, 32767, 32767, 476, 477, 32767, 479, 480, 32767, 482, 483, 484, 485, 32767, 486, 32767, + 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, 32767, + 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, + 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, + 32767, 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, 546, 32767, 547, 548, 549, + 550, 32767, 551, 552, 553, 554, 555, 32767, 556, 557, 558, 559, 560, 32767, 562, 563, 564, 565, + 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 32767, 583, 584, 32767, 32767, 32767, 32767, 32767, 585, 32767, 587, 588, 589, 590, 591, 592, + 32767, 593, 594, 595, 32767, 32767, 596, 597, 598, 599, 600, 32767, 601, 602, 32767, 603, 604, + 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, 32767, 32767, 615, 616, + 617, 618, 619, 620, 621, 32767, 622, 32767, 624, 625, 626, 627, 32767, 32767, 628, 32767, + 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645, 646, 647, 648, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32767, 2850, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 4467, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, + 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, + 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 4468, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32767, 2850, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 4505, 2667, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 2668, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 2669, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 2670, 32767, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32767, + 32767, 32767, 32766, 32767, 2184, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2233, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2251, 32767, 32767, 32767, 32767, 2255, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2671, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2672, 2673, 2289, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2315, 32767, 2674, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2327, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 2339, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2359, 2360, 2361, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 2675, 32767, 32767, 2676, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32766, 32767, 2386, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 6101, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 2412, 2413, 32767, 32767, 32767, -2330, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 2494, 2495, 32767, + 32767, 32767, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 32767, 255, 32767, 256, + 257, 258, 259, 32767, 261, 262, 2518, 263, 264, 265, 266, 267, 268, 269, 32766, 32767, 270, + 271, 272, 273, 274, 32767, 275, 276, 277, 278, 279, 32767, 32767, 32767, 32767, 281, 282, 283, + 284, 285, 286, 32767, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, 32766, + 299, 300, 32767, 32767, 301, 32767, 32767, 32767, 32767, 32767, 303, 304, 32767, 32767, 32767, + 305, 306, 307, 308, 309, 310, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, + 320, 321, 322, 323, 32767, 32767, 324, 325, 326, 327, 32767, 32766, 328, 32767, 329, 330, 331, + 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 32767, 32767, 347, 32767, 32767, 348, 349, 350, 351, 352, 32767, 353, 32767, 354, 32767, 355, + 32767, 32767, 32767, 358, 359, 360, 361, 32767, 362, 32767, 363, 364, 365, 32767, 32767, 366, + 32767, 367, 368, 369, 32767, 657, 371, 372, 32767, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 32767, 386, 32767, 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, + 32767, 32766, 32767, 399, 32767, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, 32767, 32767, 422, 32767, 32767, + 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, + 32767, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, 32767, + 32767, 32767, 463, 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, 470, 471, 472, 32767, + 32767, 473, 474, 475, 32767, 32767, 476, 477, 32767, 479, 480, 32767, 482, 483, 484, 485, + 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, + 514, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 32767, 532, 533, 32767, 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, 546, + 32767, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 32767, 556, 557, 558, 559, 560, + 32767, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32767, 32767, 32767, 32767, 585, 32767, 587, + 588, 589, 590, 591, 592, 32767, 593, 594, 595, 32767, 32767, 596, 597, 598, 599, 600, 32767, + 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, + 614, 32767, 32767, 615, 616, 617, 618, 619, 620, 621, 32767, 622, 32767, 624, 625, 626, 627, + 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 1737, 244, 245, 246, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 247, 248, 249, 1745, + 250, 251, 252, 253, 254, 255, 32767, 256, 257, 32767, 825, 260, 826, 827, 1746, 263, 264, 265, + 266, 267, 268, 269, 1747, 1748, 270, 271, 828, 273, 829, 1749, 275, 276, 277, 278, 32767, 1750, + 280, 32767, 1751, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 1752, 292, 293, 294, + 295, 296, 297, 1753, 298, 299, 300, 1754, 1755, 301, 1756, 302, 1757, 1758, 1759, 303, 304, + 980, 32767, 32767, 305, 306, 307, 308, 830, 831, 311, 1760, 312, 1761, 313, 314, 315, 316, 317, + 318, 319, 1762, 320, 321, 322, 323, 1763, 1764, 324, 325, 832, 327, 32767, 32767, 328, 1765, + 329, 330, 331, 332, 1766, 333, 32767, 334, 335, 336, 1767, 337, 338, 339, 340, 32767, 342, 343, + 344, 345, 32767, 981, 1768, 347, 1602, 1769, 348, 349, 350, 833, 352, 1770, 353, 1771, 354, + 32767, 355, 356, 1772, 357, 358, 359, 360, 361, 1773, 362, 983, 32767, 32767, 365, 1774, 984, + 366, 1775, 367, 368, 369, 782, 834, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 1777, 386, 387, 32767, 389, 390, 391, 392, 835, 1778, 836, 1779, 837, 396, 1780, + 397, 398, 399, 400, 838, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 412, 413, 414, 415, 416, 417, 418, 1781, 32767, 1782, 419, 32767, 421, 985, 422, 423, 1783, + 424, 425, 426, 1784, 1785, 427, 428, 429, 430, 32767, 986, 431, 432, 433, 434, 435, 436, 32767, + 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 4535, 444, 445, 839, 447, 840, + 449, 450, 451, 452, 453, 454, 455, 456, 4536, 32767, 459, 1786, 460, 461, 462, 988, 32767, 463, + 32767, 32767, 465, 1787, 841, 467, 468, 469, 1788, 470, 471, 472, 1789, 1790, 4537, 474, 475, + 1791, 1792, 476, 477, 478, 32767, 480, 481, 32767, 483, 484, 485, 989, 486, 32767, 487, 488, + 489, 490, 491, 492, 493, 1793, 494, 495, 496, 32767, 498, 32767, 500, 501, 502, 1794, 503, 504, + 505, 506, 507, 508, 509, 990, 32766, 510, 511, 512, 32767, 513, 842, 515, 516, 517, 1795, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 1796, 532, 533, 534, 535, 536, + 537, 538, 539, 32767, 541, 32767, 542, 543, 544, 545, 546, 716, 547, 548, 549, 550, 1797, 551, + 552, 553, 554, 555, 1798, 556, 2737, 558, 559, 560, 561, 562, 563, 844, 565, 1799, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 32767, 582, 1800, 583, 584, + 1801, 32767, 992, 993, 1803, 585, 586, 587, 588, 589, 590, 591, 592, 1804, 593, 845, 846, 1805, + 1806, 596, 597, 32767, 599, 32767, 1807, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, + 609, 1808, 1809, 610, 611, 612, 613, 614, 1810, 1811, 615, 616, 617, 618, 32767, 620, 847, + 1812, 622, 623, 624, 625, 626, 627, 1813, 1814, 628, 1815, 1816, 629, 630, 32767, 32767, 631, + 632, 633, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 254, 255, + 32767, 256, 257, 32767, 825, 260, 826, 827, 32767, 263, 264, 265, 266, 267, 268, 269, 32767, + 32767, 270, 271, 828, 273, 829, 32767, 275, 276, 277, 278, 32767, 32767, 280, 32767, 32767, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, + 32767, 298, 299, 300, 32767, 32767, 301, 32767, 302, 32767, 32767, 32767, 303, 304, 32767, + 32767, 32766, 305, 306, 307, 308, 830, 831, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, + 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 832, 327, 32767, 32767, 328, + 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 32767, + 342, 343, 344, 345, 32767, 32767, 32767, 347, 32767, 32767, 348, 349, 350, 833, 352, 32767, + 353, 32767, 354, 32767, 355, 356, 32767, 357, 358, 359, 360, 361, 32767, 362, 32767, 32767, + 32767, 365, 32767, 32767, 366, 32767, 367, 368, 369, 32767, 834, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 387, 32767, 389, 390, 391, 392, 835, + 32767, 836, 32767, 837, 396, 32767, 397, 398, 399, 400, 838, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, + 32767, 421, 32767, 422, 423, 32767, 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32767, + 32767, 431, 432, 433, 434, 435, 436, 32767, 438, 439, 440, 441, 32767, 32767, 32767, 32767, + 32767, 442, 443, 32767, 444, 445, 839, 447, 840, 449, 450, 451, 452, 453, 454, 455, 456, 32767, + 32767, 459, 32767, 460, 461, 462, 32767, 32767, 463, 32767, 32767, 465, 32767, 841, 467, 468, + 469, 32767, 470, 471, 472, 32767, 32767, 473, 474, 475, 32767, 32767, 476, 477, 478, 32767, + 480, 481, 32767, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 32767, + 494, 495, 496, 32767, 498, 32767, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, + 32767, 32767, 510, 511, 512, 32767, 513, 842, 515, 516, 517, 32767, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 534, 535, 536, 537, 538, 539, + 32767, 541, 32766, 542, 543, 544, 545, 546, 32767, 547, 548, 549, 550, 32767, 551, 552, 553, + 554, 555, 32767, 556, 843, 558, 559, 560, 561, 562, 563, 844, 565, 32767, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 32767, 582, 32767, 583, 584, 32767, + 32767, 32767, 32767, 32767, 585, 586, 587, 588, 589, 590, 591, 592, 32767, 593, 845, 846, + 32767, 32767, 596, 597, 32767, 599, 32767, 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, + 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, 32767, 32767, 615, 616, 617, 618, 32767, + 620, 847, 32767, 622, 623, 624, 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, 630, + 32767, 32767, 631, 632, 633, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 645, 646, 647, 648, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 4625, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32766, 32766, 32766, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, 249, 32767, + 250, 251, 252, 253, 254, 255, 32767, 256, 257, 32767, 825, 260, 826, 827, 32767, 263, 264, 265, + 266, 267, 268, 269, 32767, 32767, 270, 271, 828, 273, 829, 32767, 275, 276, 277, 278, 32767, + 32767, 280, 32767, 32767, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 32767, 292, + 293, 294, 295, 296, 297, 32767, 298, 299, 300, 32767, 32767, 301, 32767, 302, 32767, 32767, + 32767, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 830, 831, 311, 32767, 312, 32767, + 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 832, 327, + 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, + 338, 339, 340, 32767, 342, 343, 344, 345, 32767, 32767, 32767, 347, 32767, 32767, 348, 349, + 350, 833, 352, 32767, 353, 32767, 354, 32767, 355, 356, 32767, 357, 358, 359, 360, 361, 32767, + 362, 32767, 32767, 32767, 365, 32767, 32767, 366, 32767, 367, 368, 369, 32767, 834, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 387, 32767, 389, + 390, 391, 392, 835, 32767, 836, 32767, 837, 396, 32767, 397, 398, 399, 400, 838, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 412, 413, 414, 415, 416, 417, 418, + 32767, 32767, 32767, 419, 32767, 421, 32767, 422, 423, 32767, 424, 425, 426, 32767, 32767, 427, + 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 32767, 438, 439, 440, 441, 32767, + 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 839, 447, 840, 449, 450, 451, 452, 453, + 454, 455, 456, 32767, 32767, 459, 32767, 460, 461, 462, 32767, 32767, 463, 32767, 32767, 465, + 2817, 841, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 473, 474, 475, 32767, 32767, 476, + 477, 478, 32767, 480, 481, 32767, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, 491, + 492, 493, 32767, 494, 495, 496, 32767, 498, 32767, 500, 501, 502, 32767, 503, 504, 505, 506, + 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, 842, 515, 516, 517, 32767, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 534, 535, 536, + 537, 538, 539, 32767, 541, 32767, 542, 543, 544, 545, 546, 32767, 547, 548, 549, 550, 32767, + 551, 552, 553, 554, 555, 32767, 556, 2737, 558, 559, 560, 561, 562, 563, 844, 565, 32767, 566, + 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 32767, 582, 32767, 583, + 584, 32767, 32767, 32767, 32767, 32766, 585, 586, 587, 588, 589, 590, 591, 592, 32767, 593, + 845, 846, 32767, 2667, 596, 597, 32767, 599, 32767, 32767, 601, 602, 2668, 603, 604, 605, + 32767, 606, 607, 608, 609, 2669, 32767, 610, 611, 612, 613, 614, 32767, 32767, 615, 616, 617, + 618, 32767, 620, 847, 32767, 622, 623, 624, 625, 626, 627, 32767, 32767, 628, 2670, 2667, 629, + 630, 32767, 32767, 631, 632, 633, 32767, 2668, 32767, 32767, 32767, 32766, 32767, 32767, 32766, + 32767, 2669, 32767, 645, 646, 647, 648, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 2184, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 2670, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, + 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2184, 32767, -2274, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 2233, 32767, 32766, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 2251, 32767, 32767, 5171, 32767, 2255, 32767, 32767, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 2671, 32767, 32767, 32767, 32767, 2233, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 2672, 2673, 2289, 2251, 32767, 32767, 32767, 32767, + 2255, 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32766, 2671, 32767, 32767, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 2315, 32767, 2674, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 2327, 32766, 2672, 2673, 2289, 32767, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 2339, + 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2315, 32767, 2674, + 32767, 32767, 32767, 32767, 32767, 2359, 2360, 2361, 32767, 32767, 32766, 2327, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 2675, 32766, 32766, 2676, 32766, + 32767, 32767, 2339, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 2386, 32767, 32767, 32767, + 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 2359, 2360, 2361, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32767, 32767, 4111, 32766, 32766, 2412, 2413, 2675, 32766, + 32766, 2676, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 2386, + 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 2412, 2413, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32766, 32767, 32767, + 32766, 32766, 2677, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, + 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32766, + 32766, 32767, 32767, 32767, 2494, 2495, 32766, 32766, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32766, 32767, 32767, 32767, 32767, 32766, 2677, 32766, 32766, 32767, 32766, 32767, + 32766, 32767, 2518, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 2494, 2495, 32767, 32767, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 2518, 32766, 32767, 32767, 32767, 32766, + 32766, 32767, 32767, 32766, 32767, 32766, 32767, 4126, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 4119, 32767, 32767, 32767, 32767, 32767, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, + 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32767, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 4122, 4123, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 4124, 4125, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 4126, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, -2240, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, + 32767, 1242, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 254, 255, 1243, 256, 257, + 258, 1244, 260, 1245, 1246, 32767, 263, 264, 265, 266, 267, 268, 269, 1247, 1248, 270, 271, + 1249, 273, 1250, 32767, 275, 276, 277, 278, 1251, 32767, 1252, 32767, 32767, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, 298, 299, + 300, 1253, 1254, 301, 1255, 1256, 1257, 1258, 1259, 303, 304, 32767, 32767, 32767, 305, 306, + 307, 308, 1260, 1261, 311, 1262, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, + 321, 322, 323, 32767, 32767, 324, 325, 832, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, + 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 1263, 342, 343, 344, 345, 1264, + 32767, 1265, 347, 1266, 32767, 348, 349, 350, 1267, 352, 32767, 353, 32767, 354, 32767, 355, + 356, 32767, 357, 358, 359, 360, 361, 32767, 362, 32767, 1268, 1269, 365, 32767, 32767, 366, + 32767, 367, 368, 369, 782, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 32767, 386, 387, 388, 389, 390, 391, 392, 1270, 32767, 1271, 32767, 1272, 396, + 32767, 397, 398, 399, 400, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 410, 1282, + 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 1283, 421, 32767, 422, 423, 32767, + 424, 425, 426, 1284, 1285, 427, 428, 429, 430, 1286, 32767, 431, 432, 433, 434, 435, 436, 1287, + 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 1288, 444, 445, 1289, 447, + 1290, 449, 450, 451, 452, 453, 454, 455, 456, 457, 1291, 459, 1292, 460, 461, 462, 32767, 1293, + 463, 1294, 32767, 465, 1295, 1296, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 1297, + 474, 475, 32767, 32767, 476, 477, 478, 479, 480, 481, 1298, 483, 484, 485, 1299, 486, 1300, + 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 1301, 498, 499, 500, 501, 502, 32767, + 503, 504, 505, 506, 507, 508, 509, 32767, 1302, 510, 511, 512, 32767, 513, 1303, 515, 516, 517, + 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, + 534, 535, 536, 537, 538, 539, 1304, 541, 32767, 542, 543, 544, 545, 546, 716, 547, 548, 549, + 550, 32767, 551, 552, 553, 554, 555, 1305, 556, 557, 558, 559, 560, 561, 562, 563, 1306, 565, + 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 1307, 582, + 32767, 583, 584, 1308, 32767, 32767, 32767, 32767, 585, 586, 587, 588, 589, 590, 591, 592, + 32767, 593, 1310, 1311, 32766, 32767, 596, 597, 1312, 599, 1313, 1314, 601, 602, 32767, 603, + 604, 605, 32767, 606, 607, 608, 609, 32767, 1315, 610, 611, 612, 613, 614, 1316, 32767, 615, + 616, 617, 618, 619, 620, 1317, 32767, 622, 623, 624, 625, 626, 627, 32767, 32767, 628, 32767, + 32767, 629, 630, 32767, 32767, 631, 632, 633, 1318, 634, 1319, 1320, 1321, 1322, 639, 1323, + 1324, 1325, 1326, 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, + 244, 245, 246, 32767, 32767, 32767, 32767, 1242, 32767, 32767, 247, 248, 249, 32767, 250, 251, + 252, 253, 254, 255, 1243, 256, 257, 258, 1244, 260, 1245, 1246, 32767, 263, 32766, 265, 266, + 267, 268, 269, 1247, 1248, 270, 271, 1249, 273, 1250, 32767, 275, 276, 277, 278, 1251, 32767, + 1252, 32767, 32767, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 32767, 292, 293, + 294, 295, 296, 297, 32767, 298, 299, 300, 1253, 1254, 301, 1255, 1256, 1257, 1258, 1259, 303, + 304, 32767, 32767, 32767, 305, 306, 307, 308, 1260, 1261, 311, 32767, 312, 32767, 313, 314, + 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 832, 327, 32767, + 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, + 340, 1263, 342, 343, 344, 345, 1264, 32767, 1265, 347, 1266, 32767, 348, 349, 350, 1267, 352, + 32767, 353, 32767, 354, 32767, 355, 356, 32767, 357, 358, 359, 360, 361, 32767, 362, 32767, + 1268, 1269, 365, 32767, 32767, 366, 32767, 367, 368, 369, 782, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 387, 388, 389, 390, 391, 392, + 1270, 32767, 1271, 32767, 1272, 396, 32767, 397, 398, 399, 400, 1273, 1274, 1275, 1276, 1277, + 1278, 1279, 1280, 1281, 410, 1282, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, + 1283, 421, 32767, 422, 423, 32767, 424, 425, 426, 1284, 1285, 427, 428, 429, 430, 3300, 32767, + 431, 432, 433, 434, 435, 436, 1287, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, + 443, 32767, 444, 445, 1289, 447, 1290, 449, 450, 451, 452, 453, 454, 455, 456, 457, 1291, 459, + 32767, 460, 461, 462, 32767, 32767, 463, 1294, 32767, 465, 1295, 1296, 467, 468, 469, 32767, + 470, 471, 472, 32767, 32767, 473, 474, 475, 32767, 32767, 476, 477, 478, 479, 480, 481, 1298, + 483, 484, 485, 32767, 486, 1300, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 1301, + 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, + 32767, 513, 1303, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 32767, 532, 533, 534, 535, 536, 537, 538, 539, 3303, 541, 32767, 542, 543, 544, + 545, 546, 716, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 1305, 556, 557, 558, 559, + 560, 561, 562, 563, 1306, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 1307, 582, 32767, 583, 584, 1308, 32767, 32767, 32767, 32767, 585, 586, + 587, 588, 589, 590, 591, 592, 32767, 593, 1310, 1311, 32767, 2667, 596, 597, 1312, 599, 1313, + 1314, 601, 602, 2668, 603, 604, 605, 32767, 606, 607, 608, 609, 2669, 32767, 610, 611, 612, + 613, 614, 1316, 32767, 615, 616, 617, 618, 619, 620, 1317, 32767, 622, 623, 624, 625, 626, 627, + 32767, 32767, 628, 2670, 32767, 629, 630, 32767, 32767, 631, 632, 633, 1318, 634, 1319, 1320, + 1321, 1322, 639, 1323, 1324, 1325, 1326, 644, 645, 646, 647, 648, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2184, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2233, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2251, 32767, 32767, + 32767, 32767, 2255, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2671, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2672, 2673, + 2289, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 2315, 32767, 2674, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 2327, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2339, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 2359, 2360, 2361, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 2675, 32767, 32767, 2676, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 2386, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 4768, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2412, 2413, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, -2200, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 2677, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 2494, 2495, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 2518, 32766, 32766, 32766, 32766, 32766, 32766, 2668, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 2670, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 2184, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 4790, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 2339, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 2675, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 2386, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2412, 2413, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 2494, 2495, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 2518, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 2668, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 2670, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 2184, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 4791, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32766, 2339, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 2675, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 2386, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 2412, 2413, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 2494, 2495, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 2518, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 2668, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 2670, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2184, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 4794, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32766, 2339, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 2675, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32766, 2386, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 2412, 2413, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 2494, 2495, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2518, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, 249, 32767, + 250, 251, 252, 253, 32767, 255, 32767, 256, 257, 258, 259, 32767, 261, 262, 32767, 263, 264, + 265, 266, 267, 268, 269, 32767, 32767, 270, 271, 272, 273, 274, 32767, 275, 276, 277, 278, 279, + 32767, 32767, 32767, 32767, 281, 282, 283, 284, 285, 286, 32767, 288, 289, 290, 291, 32767, + 292, 293, 294, 295, 296, 297, 32767, 32767, 299, 300, 32767, 32767, 301, 32767, 32767, 32767, + 32767, 32767, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32767, 312, + 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, + 326, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, + 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 32767, 32767, 347, 32767, 32767, 348, + 349, 350, 351, 352, 32767, 353, 32767, 354, 32767, 355, 32767, 32767, 32767, 358, 359, 360, + 361, 32767, 362, 32767, 363, 364, 32766, 32767, 32767, 366, 32767, 367, 368, 369, 32767, 657, + 371, 372, 32767, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 32767, + 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, 32767, 32767, 32767, 399, 32767, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 32767, 32767, 32767, 419, 420, 32767, 32767, 422, 32767, 32767, 424, 425, 426, 32767, 32767, + 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, + 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, 32767, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, 32767, 32767, 32767, 463, 464, 32767, 465, + 32767, 466, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 473, 474, 475, 32767, 32766, + 476, 477, 32767, 479, 480, 32767, 482, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 32766, + 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, + 507, 508, 509, 32767, 32767, 510, 511, 32766, 32767, 513, 514, 515, 516, 517, 32767, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 32767, 535, 536, + 537, 538, 539, 540, 32766, 32766, 542, 543, 544, 545, 546, 32767, 547, 548, 549, 550, 32767, + 551, 552, 553, 554, 555, 32767, 556, 557, 558, 559, 560, 32767, 562, 563, 564, 565, 32767, 566, + 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 32767, 583, + 584, 32767, 32767, 32767, 32767, 32767, 585, 32767, 587, 588, 589, 590, 591, 592, 32767, 593, + 594, 595, 32767, 32767, 596, 597, 598, 599, 600, 32767, 601, 602, 32767, 603, 604, 605, 32767, + 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, 32767, 32767, 615, 616, 617, 618, + 619, 620, 621, 32767, 622, 32767, 624, 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, + 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 32767, + 32767, 32767, 32767, 32767, 4206, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 32767, 255, + 32767, 256, 257, 258, 259, 32767, 261, 262, 32767, 263, 264, 265, 266, 267, 268, 269, 32767, + 32767, 270, 271, 272, 273, 274, 32767, 275, 276, 277, 278, 279, 32767, 32767, 32767, 32767, + 281, 282, 283, 284, 285, 286, 32767, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, + 32767, -1840, 299, 300, 32767, 32767, 301, 32767, 32767, 32767, 32767, 32767, 303, 304, 32767, + 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, + 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 326, 327, 32767, 32767, 328, + 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32766, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 32767, 32767, 347, 32767, 32766, 348, 349, 350, 351, 352, 32766, 353, + 32767, 354, 32767, 355, 32767, 32767, -1840, 358, 359, 360, 361, 32767, 362, 32767, 363, 364, + 365, 32767, 32767, 366, 32767, 367, 368, 369, 32767, 657, 371, 372, 32767, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, -1840, 388, 389, 390, 391, 392, 393, 32766, + 394, 32767, 395, 396, 32767, 32767, 32767, 399, -1840, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, -1840, 32767, + 422, 32767, 32766, 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, + 32767, 444, 445, 446, -1840, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 32767, + 460, 461, 32767, 32767, 32767, 463, 464, 32767, 465, 32767, 466, 467, 468, 469, 32766, 470, + 471, 472, 32767, 32767, 473, 474, 475, 32767, 32766, 476, 477, 32767, 479, 480, 32767, 482, + 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, + 32767, 513, 514, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 32767, 532, 533, -1840, 535, 536, 537, 538, 539, 540, 541, 1238, 542, 543, 544, + 545, 546, 32767, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 32767, 556, 557, 558, 559, + 560, 32767, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32767, 32767, 32767, 32767, 585, 32767, + 587, 588, 589, 590, 591, 592, 32767, 593, 594, 595, 32767, 32767, 596, 597, 598, 599, 600, + 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32766, 32767, 610, 611, 612, + 613, 614, 32767, 32767, 615, 616, 617, 618, 619, 620, 621, 32767, 622, 32767, 624, 625, 626, + 627, 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, + 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 1242, 32767, 32767, 247, 248, + 249, 32767, 250, 251, 252, 253, 254, 255, 1243, 256, 257, 258, 1244, 260, 1245, 1246, 32767, + 263, 264, 265, 266, 267, 268, 269, 1247, 1248, 270, 271, 1249, 273, 1250, 32767, 275, 276, 277, + 278, 1251, 32767, 1252, 32767, 32767, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 32767, 292, 293, 294, 295, 296, 297, 32767, 298, 299, 300, 1253, 1254, 301, 1255, 1256, 1257, + 1258, 1259, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 1260, 1261, 311, 32767, 312, + 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, + 832, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, + 32767, 337, 338, 339, 340, 1263, 342, 343, 344, 345, 1264, 32767, 1265, 347, 1266, 32767, 348, + 349, 350, 1267, 352, 32767, 353, 32767, 354, 32767, 355, 356, 32767, 357, 358, 359, 360, 361, + 32767, 362, 32767, 1268, 1269, 365, 32767, 32767, 366, 32767, 367, 368, 369, 782, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 387, 388, + 389, 390, 391, 392, 1270, 32767, 1271, 32767, 1272, 396, 32767, 397, 398, 399, 400, 1273, 1274, + 1275, 1276, 1277, 1278, 1279, 1280, 1281, 410, 1282, 412, 413, 414, 415, 416, 417, 418, 32767, + 32767, 32767, 419, 1283, 421, 32767, 422, 423, 32767, 424, 425, 426, 1284, 1285, 427, 428, 429, + 430, 3300, 32767, 431, 432, 433, 434, 435, 436, 1287, 438, 439, 440, 441, 32767, 32767, 32767, + 32767, 32767, 442, 443, 32767, 444, 445, 1289, 447, 1290, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 1291, 459, 32767, 460, 461, 462, 32767, 32767, 463, 1294, 32767, 465, 1295, 1296, + 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 473, 474, 475, 32767, 32767, 476, 477, 478, + 479, 480, 481, 1298, 483, 484, 485, 32767, 486, 1300, 487, 488, 489, 490, 491, 492, 493, 32767, + 494, 495, 496, 1301, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, + 32767, 510, 511, 512, 32767, 513, 1303, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 534, 535, 536, 537, 538, 539, 3303, + 541, 32767, 542, 543, 544, 545, 546, 716, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, + 1305, 556, 557, 558, 559, 560, 561, 562, 563, 1306, 565, 32767, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 1307, 582, 32767, 583, 584, 1308, 32767, 32767, + 32767, 32767, 585, 586, 587, 588, 589, 590, 591, 592, 32767, 593, 1310, 1311, 32767, 32767, + 596, 597, 1312, 599, 1313, 1314, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, + 32767, 32767, 610, 611, 612, 613, 614, 1316, 32767, 615, 616, 617, 618, 619, 620, 1317, 32767, + 622, 623, 624, 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, + 632, 633, 1318, 634, 1319, 1320, 1321, 1322, 32766, 1323, 1324, 1325, 1326, 644, 645, 646, 647, + 648, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 2667, 32767, 32767, 32767, 2667, 32767, + 32767, 32767, 32767, 2668, 32766, 32767, 32766, 2668, 32767, 32767, 32767, 32767, 2669, 32767, + 32767, 32767, 2669, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, + 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32766, 32767, 32767, 2670, 32766, + 32766, 32767, 2670, 32766, 32767, 32767, 32766, 32766, 32767, 32766, 32767, 32767, 32766, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 2184, 32767, 32767, 32767, 2184, 32766, + 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, + 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32766, -2320, 32767, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 4813, 32767, 32766, 32767, 2233, 32767, 32767, + 32767, 2233, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 2251, 32767, 32767, 32767, 2251, + 2255, 32767, 32766, 32767, 2255, 32767, 32767, 32766, 32767, 32767, 2671, 32767, 32767, 32766, + 2671, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32766, + 32767, 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 2672, 2673, 2289, 32766, + 2672, 2673, 2289, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 2315, 32767, 2674, + 32767, 2315, 32767, 2674, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 2327, 32767, 32767, + 32767, 2327, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, + 32766, 32767, 32766, 2339, 32767, 32767, 32766, 2339, 32766, 32766, 32767, 32767, 32766, 32767, + 32767, 32767, 4828, 32767, 32767, 32767, 32766, 32767, 32767, 2359, 2360, 2361, 32767, 2359, + 2360, 2361, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 2675, + 32767, 32767, 2676, 2675, 32767, 32767, 2676, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 2386, 32767, 32766, 32767, 2386, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32767, + 32766, 32767, 32766, 32767, 32767, 4824, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 2412, 2413, 32767, 32767, 2412, 2413, 32767, 32767, 32767, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32767, 32767, + 32767, 32767, -2290, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32767, 32766, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2494, 2495, 32767, 32767, + 2494, 2495, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2518, 32767, 32767, 32767, 2518, 32767, 32767, + 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, + 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 1039, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 1040, 32767, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, -2424, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2667, 32767, 32767, 32767, 32767, + 32767, 2667, 32767, 32767, 2668, 32767, 32767, 32767, 2667, 32767, 2668, 32767, 32767, 2669, + 32767, 32767, 32767, 2668, 32767, 2669, 32767, 32767, 32767, 32767, 32767, 32767, 2669, 32767, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 2670, 32767, + 32767, 32767, 32767, 32767, 2670, 32767, 32767, 32767, 32767, 32767, 32766, 2670, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 2184, 32767, 32767, 32767, 32767, 32767, 2184, + 32766, 32767, 32766, 32767, 32767, 32767, 2184, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2233, 32767, 32767, + 32767, 32766, 32767, 2233, 32767, 32767, 32767, 32766, 32767, 32767, 2233, 32766, 32767, 32767, + 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 2251, 32767, 32767, 32767, 32766, 2255, + 2251, 32766, 32767, 32767, 32767, 2255, 32767, 2251, 32767, 2671, 32767, 32767, 2255, 32767, + 32767, 2671, 32767, 32767, 32767, 32766, 32767, 32767, 2671, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 2672, 2673, 2289, 32767, 32767, 32767, + 2672, 2673, 2289, 32767, 32767, 32767, 32767, 2672, 2673, 2289, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2315, 32767, 2674, 32766, 32767, + 32767, 2315, 32767, 2674, 32767, 32767, 32767, 32767, 2315, 2327, 2674, 32767, 32767, 32767, + 32767, 2327, 32767, 32767, 32767, 32767, 32767, 32767, 2327, 32767, 32767, 32767, 32767, 32767, + 2339, 32767, 32767, 32767, 32767, 32767, 2339, 32767, 32767, 32767, 32766, 32767, 32767, 2339, + 32766, 32767, 32767, 32767, 32767, 32767, 2359, 2360, 2361, 32767, 32766, 32767, 2359, 2360, + 2361, 32767, 32767, 32767, 32766, 2359, 2360, 2361, 32766, 32767, 2675, 32767, 32767, 2676, + 32766, 32767, 2675, 32767, 32767, 2676, 32767, 32767, 32767, 2675, 32767, 2386, 2676, 32767, + 32767, 32767, 32767, 2386, 32767, 32767, 32767, 32767, 32767, 32767, 2386, 32767, 32767, 32767, + 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2412, 2413, 32767, + 32767, 32767, 32767, 2412, 2413, 32766, 32767, 32767, 32767, 32767, 2412, 2413, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, + -2289, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 2677, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 2677, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32766, 32767, 32767, 32766, 2494, 2495, 32767, 32767, 32767, 32767, 2494, 2495, + 32767, 32767, 32767, 32767, 32766, 2494, 2495, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 2518, 32767, 32767, 32767, 32767, 32767, 2518, 32766, 32767, 32766, 32767, + 32767, 32767, 2518, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, + 32767, 32767, 808, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, + 244, 245, 246, 32767, 32767, 32767, 32767, 1242, 32767, 32767, 247, 248, 249, 32767, 250, 251, + 252, 253, 254, 255, 1243, 256, 257, 258, 1244, 260, 1245, 1246, 32767, 263, 264, 265, 266, 267, + 268, 269, 1247, 1248, 270, 271, 1249, 273, 1250, 32767, 275, 276, 277, 278, 1251, 32767, 1252, + 32767, 32767, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 32767, 292, 293, 294, 295, + 296, 297, 32767, 298, 299, 300, 1253, 1254, 32766, 1255, 1256, 1257, 1258, 1259, 303, 304, + 32767, 32767, 32767, 305, 306, 307, 308, 1260, 1261, 311, 1262, 312, 32767, 313, 314, 315, 316, + 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 832, 327, 32767, 32767, 328, + 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 1263, + 342, 343, 344, 345, 1264, 32767, 1265, 347, 1266, 32767, 348, 349, 350, 1267, 352, 32767, 353, + 32767, 354, 32767, 355, 356, 32767, 357, 358, 359, 360, 361, 32767, 362, 32767, 1268, 1269, + 365, 32767, 32767, 366, 32767, 367, 368, 369, 782, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 32767, 386, 387, 388, 389, 390, 391, 392, 1270, 32767, 1271, + 32767, 1272, 396, 32767, 397, 398, 399, 400, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, + 1281, 410, 1282, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 1283, 421, 32767, + 422, 423, 32767, 424, 425, 426, 1284, 1285, 427, 428, 429, 430, 1286, 32767, 431, 432, 433, + 434, 435, 436, 1287, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 1288, + 444, 445, 1289, 447, 1290, 449, 450, 451, 452, 453, 454, 455, 456, 457, 1291, 459, 1292, 460, + 461, 462, 32767, 1293, 463, 1294, 32767, 465, 1295, 1296, 467, 468, 469, 32767, 470, 471, 472, + 32767, 32767, 1297, 474, 475, 32767, 32767, 476, 477, 478, 479, 480, 481, 1298, 483, 484, 485, + 1299, 486, 1300, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 1301, 498, 499, 500, + 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 1302, 510, 511, 512, 32767, 513, + 1303, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 32767, 532, 533, 534, 535, 536, 537, 538, 539, 1304, 541, 32767, 542, 543, 544, 545, 546, + 716, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 1305, 556, 557, 558, 559, 560, 561, + 562, 563, 1306, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, + 579, 580, 1307, 582, 32767, 583, 584, 1308, 32767, 32767, 32767, 32767, 585, 586, 587, 588, + 589, 590, 591, 592, 32767, 593, 1310, 1311, 32767, 32767, 596, 597, 1312, 599, 1313, 1314, 601, + 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 1315, 610, 611, 612, 613, 614, + 1316, 32766, 615, 616, 617, 618, 619, 620, 1317, 32767, 622, 623, 624, 625, 626, 627, 32767, + 32766, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 1318, 634, 1319, 1320, 1321, + 1322, 639, 1323, 1324, 1325, 1326, 644, 645, 646, 647, 648, 32766, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32766, 2605, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, + 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 1363, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 4885, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, + 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, + 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32767, 2850, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32766, 32767, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, + 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 4912, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32767, 2850, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, + 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, + 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 4970, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 1737, 244, 245, 246, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 247, 248, + 249, 1745, 250, 251, 252, 253, 254, 255, 32767, 256, 257, 32767, 825, 260, 826, 827, 1746, 263, + 264, 265, 266, 267, 268, 269, 1747, 1748, 270, 271, 828, 273, 829, 1749, 275, 276, 277, 278, + 32767, 1750, 280, 32767, 1751, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 1752, + 292, 293, 294, 295, 296, 297, 1753, 298, 299, 300, 1754, 1755, 301, 1756, 302, 1757, 1758, + 1759, 303, 304, 980, 32767, 32767, 305, 306, 307, 308, 830, 831, 311, 1760, 312, 1761, 313, + 314, 315, 316, 317, 318, 319, 1762, 320, 321, 322, 323, 1763, 1764, 324, 325, 832, 327, 32767, + 32767, 328, 1765, 329, 330, 331, 332, 1766, 333, 32767, 334, 335, 336, 1767, 337, 338, 339, + 340, 32767, 342, 343, 344, 345, 32767, 981, 1768, 347, 1602, 1769, 348, 349, 350, 833, 352, + 1770, 353, 1771, 354, 32767, 355, 356, 1772, 357, 358, 359, 360, 361, 1773, 362, 983, 32767, + 32767, 365, 1774, 984, 366, 1775, 367, 368, 369, 782, 834, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 1777, 386, 387, 32767, 389, 390, 391, 392, 835, 1778, + 836, 1779, 837, 396, 1780, 397, 398, 399, 400, 838, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 412, 413, 414, 415, 416, 417, 418, 1781, 32767, 1782, 419, 32767, + 421, 985, 422, 423, 1783, 424, 425, 426, 1784, 1785, 427, 428, 429, 430, 32767, 986, 431, 432, + 433, 434, 435, 436, 32767, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, + 4535, 444, 445, 839, 447, 840, 449, 450, 451, 452, 453, 454, 455, 456, 32766, 32767, 459, 1786, + 460, 461, 462, 988, 32767, 463, 32767, 32767, 465, 1787, 841, 467, 468, 469, 1788, 470, 471, + 472, 1789, 1790, 4537, 474, 475, 1791, 1792, 476, 477, 478, 32767, 480, 481, 32767, 483, 484, + 485, 989, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 1793, 494, 495, 496, 32767, 498, + 32767, 500, 501, 502, 1794, 503, 504, 505, 506, 507, 508, 509, 990, 4538, 510, 511, 512, 32767, + 513, 842, 515, 516, 517, 1795, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 1796, 532, 533, 534, 535, 536, 537, 538, 539, 32767, 541, 32767, 542, 543, 544, 545, 546, + 716, 547, 548, 549, 550, 1797, 551, 552, 553, 554, 555, 1798, 556, 2737, 558, 559, 560, 561, + 562, 563, 844, 565, 1799, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 32767, 582, 1800, 583, 584, 1801, 32767, 992, 993, 1803, 585, 586, 587, 588, 589, 590, + 591, 592, 1804, 593, 845, 846, 1805, 1806, 596, 597, 32767, 599, 32767, 1807, 601, 602, 32767, + 603, 604, 605, 32767, 606, 607, 608, 609, 1808, 1809, 610, 611, 612, 613, 614, 1810, 1811, 615, + 616, 617, 618, 32767, 620, 847, 1812, 622, 623, 624, 625, 626, 627, 1813, 1814, 628, 1815, + 1816, 629, 630, 32767, 32767, 631, 632, 633, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, 249, + 32767, 250, 251, 252, 253, 32767, 255, 32767, 256, 257, 258, 259, 32767, 261, 262, 32767, 263, + 264, 265, 266, 267, 268, 269, 32767, 32767, 270, 271, 272, 273, 274, 32767, 275, 276, 277, 278, + 279, 32767, 32767, 32767, 32767, 281, 282, 283, 284, 285, 286, 32767, 288, 289, 290, 291, + 32767, 292, 293, 294, 295, 296, 297, 32767, 32767, 299, 300, 32767, 32767, 301, 32767, 32766, + 32767, 32767, 32767, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32767, + 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, + 325, 326, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, + 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 32767, 32767, 347, 32767, 32767, 348, + 349, 350, 351, 352, 32767, 353, 32767, 354, 32767, 355, 32767, 32767, 32767, 358, 359, 360, + 361, 32767, 362, 32767, 363, 364, 365, 32767, 32767, 366, 32767, 367, 368, 369, 32767, 657, + 371, 372, 32767, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 32767, + 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, 32767, 32767, 32767, 399, 32767, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 32767, 32767, 32767, 419, 420, 32767, 32767, 422, 32767, 32767, 424, 425, 426, 32767, 32767, + 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, + 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, 32767, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, 32767, 32767, 32767, 463, 464, 32767, 465, + 32767, 466, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 473, 474, 475, 32767, 32767, + 476, 477, 32767, 479, 480, 32767, 482, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, + 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, + 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, 32767, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 32767, 535, 536, + 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, 546, 32767, 547, 548, 549, 550, 32767, 551, + 552, 553, 554, 555, 32767, 556, 557, 558, 559, 560, 32767, 562, 563, 564, 565, 32767, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 32767, 583, 584, + 32767, 32767, 32767, 32767, 32767, 585, 32767, 587, 588, 589, 590, 591, 592, 32767, 593, 594, + 595, 32767, 32767, 596, 597, 598, 599, 600, 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, + 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, 32767, 32767, 615, 616, 617, 618, 619, + 620, 621, 32767, 622, 32767, 624, 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, 630, + 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 32767, 255, 32767, + 256, 257, 258, 259, 32767, 261, 262, 32767, 263, 264, 265, 266, 267, 268, 269, 32767, 32767, + 270, 271, 272, 273, 274, 2838, 275, 276, 277, 278, 279, 32767, 32767, 32767, 32767, 281, 282, + 283, 284, 285, 286, 32767, 288, 289, 290, 291, 2840, 292, 293, 294, 295, 296, 297, 32767, + 32767, 299, 300, 32767, 32767, 301, 32767, 32767, 32767, 32767, 32767, 303, 304, 32767, 32767, + 32767, 305, 306, 307, 308, 309, 310, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, 318, 319, + 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 326, 327, 32767, 32767, 328, 32767, 329, + 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 2841, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 32767, 32767, 347, 32767, 32767, 348, 349, 350, 351, 352, 32767, 353, 2842, 354, + 32767, 355, 32767, 32767, 32767, 358, 359, 360, 361, 32767, 362, 32767, 363, 364, 365, 32767, + 32767, 366, 32767, 367, 368, 369, 32767, 657, 371, 372, 32767, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 32767, 386, 32767, 388, 389, 390, 391, 392, 393, 32767, 394, + 32767, 395, 396, 32767, 32767, 32767, 399, 32767, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, 32767, 32767, 422, + 32766, 32767, 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, + 444, 445, 446, 32767, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 32767, 460, + 461, 32767, 32767, 32767, 463, 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, 470, 471, + 472, 32767, 32767, 473, 474, 475, 32767, 32767, 476, 477, 32767, 479, 480, 32767, 482, 483, + 484, 485, 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 2844, 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, + 32767, 513, 514, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 32767, 532, 533, 32767, 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, 544, + 545, 546, 32767, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 32767, 556, 557, 558, 559, + 560, 32767, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32767, 32767, 32767, 32767, 585, 32767, + 587, 588, 589, 590, 591, 592, 32767, 593, 594, 595, 32767, 32767, 596, 597, 598, 599, 600, + 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 2845, 610, 611, 612, + 613, 614, 32767, 32767, 615, 616, 617, 618, 619, 620, 621, 32767, 622, 32767, 624, 625, 626, + 627, 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, + 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, + 249, 32767, 250, 251, 252, 253, 32767, 255, 32767, 256, 257, 258, 259, 32767, 261, 262, 32767, + 263, 264, 265, 266, 267, 268, 269, 32767, 32767, 270, 271, 272, 273, 274, 2838, 275, 276, 277, + 278, 279, 32767, 32767, 32767, 32767, 281, 282, 283, 284, 285, 286, 32767, 288, 289, 290, 291, + 2840, 292, 293, 294, 295, 296, 297, 32767, 32767, 299, 300, 32767, 32767, 301, 32767, 32767, + 32767, 32767, 32767, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32767, + 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, + 325, 326, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, + 32767, 2841, 338, 339, 340, 341, 342, 343, 344, 345, 346, 32767, 32767, 347, 32767, 32767, 348, + 349, 350, 351, 352, 32767, 353, 2842, 354, 32767, 355, 32767, 32767, 32767, 358, 359, 360, 361, + 32767, 362, 32767, 363, 364, 365, 32767, 32767, 366, 32767, 367, 368, 369, 32767, 657, 371, + 372, 32767, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 32767, 388, + 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, 32767, 32767, 32767, 399, 32767, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 32767, + 32767, 32767, 419, 420, 32767, 32767, 422, 32767, 32767, 424, 425, 426, 32767, 32767, 427, 428, + 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, 32767, + 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, 32767, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 32767, 460, 461, 32767, 32767, 32767, 463, 464, 32767, 465, 32767, + 466, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 473, 474, 475, 32767, 32767, 476, 477, + 32767, 479, 480, 32767, 482, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, 491, 492, + 493, 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, 2844, 503, 504, 505, 506, 507, 508, + 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, 32767, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 32767, 535, 536, 537, 538, + 539, 540, 541, 32767, 542, 543, 544, 545, 546, 32767, 547, 548, 549, 550, 32767, 551, 552, 553, + 554, 555, 32767, 556, 557, 558, 559, 560, 32767, 562, 563, 564, 565, 32767, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32767, + 32767, 32767, 32767, 585, 32767, 587, 588, 589, 590, 591, 592, 32767, 593, 594, 595, 32767, + 32767, 596, 597, 598, 599, 600, 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, + 609, 32767, 32766, 610, 611, 612, 613, 614, 32767, 32767, 615, 616, 617, 618, 619, 620, 621, + 32767, 622, 32767, 624, 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, + 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, + 648, 32766, 2667, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 2668, 32767, 32767, + 32767, 32766, 32766, 32767, 32767, 32767, 2669, 32767, 32766, 32767, 32767, 32767, 32766, + 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 2670, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32767, + 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32767, + 32767, 5175, 32767, 2184, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 32767, + 32766, 32767, 32767, 32767, 32767, 32767, 2233, 32766, 32767, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 2251, 32767, 32767, 32767, 32767, 2255, 32767, 32767, 32767, + 32767, 32766, 32767, 32767, 32766, 32767, 2671, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2672, 2673, 2289, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, + 32767, 32767, 32766, 32767, 1227, 32767, 32767, 32767, 32767, 2315, 32767, 2674, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2327, 32767, 32766, 32767, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, + 32767, 32766, 2339, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 2359, 2360, 2361, 32767, 32767, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 2675, 32767, 32767, 2676, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, + 32767, 2386, 32767, 32766, 32767, 32767, 32767, 32767, 5215, 32767, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 2412, 2413, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32767, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32766, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 2677, 32767, 32767, 32767, + 32766, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32767, + 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 2494, 2495, 32767, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, + 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 2518, 32767, 32767, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 5207, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 5208, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 2667, 32766, 32766, 32767, 2667, 32767, 32767, 32767, 32767, 2668, 32767, 32767, 32767, + 2668, 32767, 32767, 32767, 32766, 2669, 32767, 32766, 32767, 2669, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 2670, 32767, 32767, 32767, 2670, 32767, 32767, 32767, 32767, 32767, + 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, + 2184, 32767, 32767, 32767, 2184, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, + 32766, 32767, 32767, 4111, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, + 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 2233, 32766, 32767, 32767, 2233, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 2251, 32767, 32767, 32767, 2251, 2255, 32767, 32767, 32767, 2255, 32767, 32767, 32767, + 32766, 32767, 2671, 32767, 32767, 32767, 2671, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 2672, 2673, 2289, 32766, 2672, 2673, 2289, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 2315, 32767, 2674, 32767, 2315, 32767, 2674, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 2327, 32767, 32767, 32767, 2327, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2339, 32767, 32767, 32767, 2339, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 4119, + 32767, 32767, 2359, 2360, 2361, 32767, 2359, 2360, 2361, 32766, 32767, 32767, 32767, 32766, + 32767, 32767, 32766, 32766, 32767, 32767, 2675, 32767, 32767, 2676, 2675, 32767, 32766, 2676, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2386, 32767, 4121, 32767, 2386, 32767, 32767, + 5215, 32767, 32767, 32767, 5215, 32767, 32767, 32767, 32767, 32767, 1299, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 2412, 2413, 32767, 32767, 2412, 2413, 32767, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 4122, 4123, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, + 2677, 32767, 32767, 32767, 2677, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 2494, 2495, 32767, 32767, 2494, 2495, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 4124, 4125, 32767, 32767, 32767, 32766, 32767, 32767, 2518, 32766, + 32767, 32767, 2518, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, + 32766, 32767, 4126, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, -2242, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2667, 32766, 32766, 32767, + 32767, 32767, 32767, 32766, 32767, 2668, 32766, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 2669, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 2670, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2184, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32766, 32767, 2233, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 2251, 32767, 32767, 32766, 32767, 2255, 32767, 32766, 32767, 32767, 32767, 32766, 32766, + 32767, 32767, 2671, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 2672, 2673, 2289, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, + 4111, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, + 32767, 32767, 32767, 32767, 32767, 2315, 32767, 2674, 32767, 32767, 32767, 32767, 32766, 32767, + 32767, 32767, 32767, 32767, 32766, 2327, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2339, 32767, + 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 2359, 2360, 2361, 32767, 32766, 32767, 32766, 32767, 32766, + 32767, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 2675, 32767, 32767, 2676, 32766, + 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 2386, 32767, 32767, + 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, + 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 2412, 2413, + 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32766, 2667, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32767, 2668, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 2669, 32767, 32767, + 32766, 32766, 32766, 32767, 4111, 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32767, + 32767, 32766, 32767, 32766, 32767, 2677, 32767, 32767, 32767, 32767, 2670, 32767, 32767, 32767, + 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 2494, 2495, 32767, 32766, 32767, 32767, 32766, 32766, + 32766, 32767, 32767, 32767, 32767, 2184, 32766, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 2518, 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32767, + 32767, 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32767, 4122, + 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 2233, 32766, 2667, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 2668, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32767, 2669, 32767, 32767, 32767, 32767, 2251, 32766, 32767, 32767, 32767, 2255, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2671, 32766, 32767, 32767, 32767, + 32767, 2670, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32766, 4124, 4125, 2672, 2673, 2289, 32767, 32767, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 2184, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 4126, 32766, 32767, 32767, 32767, 32766, 2315, 2667, 2674, + 32767, 32766, 32766, 32767, 32767, 32767, 32767, 2668, 32767, 32767, 32766, 2327, 32767, 32766, + 32767, 32767, 2669, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32766, 32767, 2339, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 2233, 32767, + 32767, 2670, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 2359, 2360, 2361, 32767, 32767, + 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 2251, 32767, 32767, 32766, 2675, + 2255, 32767, 2676, 32767, 32767, 32767, 32767, 32767, 32766, 2184, 2671, 32767, 32767, 32767, + 2386, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2672, 2673, 2289, 32767, + 32767, 2412, 2413, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, + 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 2233, 2315, 32767, 2674, + 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32767, -2309, 2327, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2251, 32767, 32767, 32767, 32767, 2255, + 32767, 32767, 32767, 2339, 4126, 32767, 2677, 32767, 32767, 2671, 32767, 32767, 32767, 32767, + 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 2359, 2360, 2361, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 2494, 2495, 2672, 2673, 2289, 32767, 32767, 2675, + 32767, 32767, 2676, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, + 32767, 2386, 32767, 32767, 2518, 32767, 32767, 32767, 32767, 32767, 2315, 32767, 2674, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2327, 32767, 32767, + 32767, 32767, 2412, 2413, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 2339, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 2359, 2360, 2361, -2308, 32767, + 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 2675, 32767, 32767, 2676, 32767, 32767, 32767, 32767, 2677, 32767, 32767, 32767, 32766, 32767, + 32767, 2386, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32766, + 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 2494, 2495, 32767, 32767, 32767, + 32767, 32767, 2412, 2413, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 2518, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2677, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 2494, 2495, 32767, 32767, 1242, 32767, + 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 254, 255, 1243, 256, 257, 258, 1244, 260, + 1245, 1246, 2518, 263, 264, 265, 266, 267, 268, 269, 1247, 1248, 270, 271, 1249, 273, 1250, + 32767, 275, 276, 277, 278, 1251, 32767, 1252, 32767, 32767, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, 298, 299, 300, 1253, 1254, 301, + 1255, 1256, 1257, 1258, 1259, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 1260, 1261, + 311, 1262, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, + 32767, 324, 325, 832, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, + 334, 335, 336, 32767, 337, 338, 339, 340, 1263, 342, 343, 344, 345, 1264, 32767, 1265, 347, + 1266, 32767, 348, 349, 350, 1267, 352, 32767, 353, 32767, 354, 32767, 355, 356, 32767, 357, + 358, 359, 360, 361, 32767, 362, 32767, 1268, 1269, 365, 32767, 32767, 366, 32767, 367, 368, + 369, 782, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 32767, 386, 387, 388, 389, 390, 391, 392, 1270, 32767, 1271, 32767, 1272, 396, 32767, 397, 398, + 399, 400, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 410, 1282, 412, 413, 414, 415, + 416, 417, 418, 32767, 32767, 32767, 419, 1283, 421, 32767, 422, 423, 32767, 424, 425, 426, + 1284, 1285, 427, 428, 429, 430, 1286, 32767, 431, 432, 433, 434, 435, 436, 1287, 438, 439, 440, + 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 1288, 444, 445, 1289, 447, 1290, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 1291, 459, 1292, 460, 461, 462, 32767, 1293, 463, 1294, + 32767, 465, 1295, 1296, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 1297, 474, 475, + 32767, 32767, 476, 477, 478, 479, 480, 481, 1298, 483, 484, 485, 1299, 486, 1300, 487, 488, + 489, 490, 491, 492, 493, 32767, 494, 495, 496, 1301, 498, 499, 500, 501, 502, 32767, 503, 504, + 505, 506, 507, 508, 509, 32767, 1302, 510, 511, 512, 32767, 513, 1303, 515, 516, 517, 32767, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 534, + 535, 536, 537, 538, 539, 1304, 541, 32767, 542, 543, 544, 545, 546, 716, 547, 548, 549, 550, + 32767, 551, 552, 553, 554, 555, 1305, 556, 557, 558, 559, 560, 561, 562, 563, 1306, 565, 32767, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 1307, 582, 32767, + 583, 584, 1308, 32767, 32767, 32767, 32767, 585, 586, 587, 588, 589, 590, 591, 592, 32767, 593, + 1310, 1311, 32767, 32767, 596, 597, 1312, 599, 1313, 1314, 601, 602, 32767, 603, 604, 605, + 32767, 606, 607, 608, 609, 32767, 1315, 610, 611, 612, 613, 614, 1316, 32767, 615, 616, 617, + 618, 619, 620, 1317, 32767, 622, 623, 624, 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, + 630, 32767, 32767, 631, 632, 633, 1318, 32766, 1319, 1320, 1321, 1322, 639, 1323, 1324, 1325, + 1326, 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, + 246, 32767, 32767, 32767, 32767, 1242, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, + 254, 255, 1243, 256, 257, 258, 1244, 260, 1245, 1246, 32767, 263, 264, 265, 266, 267, 268, 269, + 1247, 1248, 270, 271, 1249, 273, 1250, 32767, 275, 276, 277, 278, 1251, 32767, 1252, 32767, + 32767, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, + 297, 32767, 298, 299, 300, 1253, 1254, 301, 1255, 1256, 1257, 1258, 1259, 303, 304, 32767, + 32767, 32767, 305, 306, 307, 308, 1260, 1261, 311, 1262, 312, 32767, 313, 314, 315, 316, 317, + 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 832, 327, 32767, 32767, 328, + 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 1263, + 342, 343, 344, 345, 1264, 32767, 1265, 347, 1266, 32767, 348, 349, 350, 1267, 352, 32767, 353, + 32767, 354, 32767, 355, 356, 32767, 357, 358, 359, 360, 361, 32767, 362, 32767, 1268, 1269, + 365, 32767, 32767, 366, 32767, 367, 368, 369, 782, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 32767, 386, 387, 388, 389, 390, 391, 392, 1270, 32767, 1271, + 32767, 1272, 396, 32767, 397, 398, 399, 400, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, + 1281, 410, 1282, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 1283, 421, 32767, + 422, 423, 32767, 424, 425, 426, 1284, 1285, 427, 428, 429, 430, 1286, 32767, 431, 432, 433, + 434, 435, 436, 1287, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 1288, + 444, 445, 1289, 447, 1290, 449, 450, 451, 452, 453, 454, 455, 32766, 457, 1291, 459, 1292, 460, + 461, 462, 32767, 1293, 463, 1294, 32767, 465, 1295, 1296, 467, 468, 469, 32767, 470, 471, 472, + 32767, 32767, 1297, 474, 475, 32767, 32767, 476, 477, 478, 479, 480, 481, 1298, 483, 484, 485, + 1299, 486, 1300, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 1301, 498, 499, 500, + 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 1302, 510, 511, 512, 32767, 513, + 1303, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 32767, 532, 533, 534, 535, 536, 537, 538, 539, 1304, 541, 32767, 542, 543, 544, 545, 546, + 716, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 1305, 556, 557, 558, 559, 560, 561, + 562, 563, 1306, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, + 579, 580, 1307, 582, 32767, 583, 584, 1308, 32767, 32767, 32767, 32767, 585, 586, 587, 588, + 589, 590, 591, 592, 32767, 593, 1310, 1311, 32767, 32767, 596, 597, 1312, 599, 1313, 1314, 601, + 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 1315, 610, 611, 612, 613, 614, + 1316, 32767, 615, 616, 617, 618, 619, 620, 1317, 32767, 622, 623, 624, 625, 626, 627, 32767, + 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 1318, 634, 1319, 1320, 1321, + 1322, 639, 1323, 1324, 1325, 1326, 644, 645, 646, 647, 648, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 2670, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 2518, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 2668, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 2670, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 2184, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32766, 2339, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 2675, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 2386, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 2412, 2413, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 2494, 2495, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 2518, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 2668, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 2669, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 2670, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2184, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 2233, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 2251, 32766, 32766, 32766, 32766, 2255, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 2671, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 2672, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 2315, 32766, 2674, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 2327, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 2339, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 2360, 2361, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2675, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 2386, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 2412, 2413, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2677, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2494, 2495, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2518, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 2668, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 2670, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2184, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 5259, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 2339, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2675, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 2386, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 2412, 2413, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2494, 2495, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 2518, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, -2268, + 32766, 32766, 32766, 32767, 32767, 32767, -2268, 32766, 32767, 32767, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32767, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + -2268, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 254, + 255, 32767, 256, 257, 258, 259, 260, 261, 262, 32767, 263, 264, 265, 266, 267, 268, 269, 32767, + 1248, 270, 271, 272, 273, 274, 32767, 275, 276, 277, 278, 1251, 32767, 1252, 32767, 32767, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, + 298, 299, 300, 1253, 1254, 301, 1255, 1256, 1257, 1258, 1259, 303, 304, 32767, 32767, 32767, + 305, 306, 307, 308, 309, 310, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, + 320, 321, 322, 323, 32767, 32767, 324, 325, 326, 327, 32767, 32767, 328, 32767, 329, 330, 331, + 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 1264, 32767, 32767, 347, 32767, 32767, 348, 349, 350, 351, 352, 32767, 353, 32767, 354, 32767, + 355, 356, 32767, 357, 358, 359, 360, 361, 32767, 362, 32767, 1268, 364, 365, 32767, 32767, 366, + 32767, 367, 368, 369, 32767, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 32767, 386, 387, 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, + 32767, 397, 398, 399, 400, 32766, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 410, 1282, + 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 1283, 421, 32767, 422, 423, 32767, + 424, 425, 426, 1284, 1285, 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, + 1287, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 1291, 459, 32767, 460, 461, 462, 32767, + 32767, 463, 1294, 32767, 465, 32767, 466, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, + 473, 474, 475, 32767, 32767, 476, 477, 478, 479, 480, 481, 1298, 483, 484, 485, 32767, 486, + 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 1301, 498, 499, 500, 501, 502, + 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, + 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, 546, 32767, 547, + 548, 549, 550, 32767, 551, 552, 553, 554, 555, 1305, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, + 1307, 582, 32767, 583, 584, 1308, 32767, 32767, 32767, 32767, 585, 586, 587, 588, 589, 590, + 591, 592, 32767, 593, 594, 595, 32767, 32767, 596, 597, 1312, 599, 1313, 32767, 601, 602, + 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, 1316, + 32767, 615, 616, 617, 618, 619, 620, 621, 32767, 622, 623, 624, 625, 626, 627, 32767, 32767, + 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, 1319, 1320, 1321, 1322, + 639, 1323, 1324, 1325, 1326, 644, 645, 646, 647, 648, 32766, 32766, 2667, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 2668, 32766, 32766, 32767, 32767, 32766, 32767, 32767, + 32767, 2669, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32766, 2670, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 2184, 32767, + 32766, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32766, + 32767, 32767, 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, + 32767, 32766, 2233, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 2251, 32767, 32766, 32767, 32767, 2255, 32766, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32766, 2671, 5275, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 5286, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32766, 32767, 2672, 2673, 2289, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32766, 32767, 32767, 2315, 32766, 2674, 32767, 32767, 32767, 32767, 32766, 32767, 32766, + 32767, 32767, 32767, 32766, 2327, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2339, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 2359, 2360, 2361, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2675, 32766, 32767, 2676, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 2386, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2412, 2413, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 32767, 32767, 32767, 32767, 32767, 2677, 32767, 32766, 32767, 32767, 32767, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32766, + 32766, 32767, 32767, 32767, 32767, 32767, 32766, 2494, 2495, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 1474, 32766, 32766, 32766, 32767, + 32767, 32767, 32767, 32766, 32767, 2518, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 1475, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32767, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 5293, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 716, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 2667, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 2668, 32767, 32767, 32767, + 32767, 32766, 32767, 32767, 32767, 2669, 32767, 32767, 32767, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 32767, 32766, 32767, 32767, 32767, 2670, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, + 32767, 32767, 2184, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, + 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32767, + 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32766, 32767, 32767, 32767, 2233, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, + 32767, 32766, 32767, 32767, 32767, 2251, 32766, 32766, 32767, 32767, 2255, 32767, 32767, 32767, + 32767, 32767, 32766, 32767, 32767, 32767, 2671, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32766, 32766, 32767, 2672, 2673, 2289, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32766, 32767, 32766, 32767, 32767, 32766, 32767, 32766, 32767, 2315, 32767, 2674, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 2327, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, + 32766, 32767, 2339, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 2359, 2360, 2361, 32767, 32767, + 32767, 5321, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 2675, + 32767, 32767, 2676, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, + 32767, 2386, 32767, 32767, 6180, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, + 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32766, + 32767, 32767, 2412, 2413, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, + 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 2677, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 2494, 2495, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, + 32766, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 2518, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 5362, 32767, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32766, + 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, + 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 5362, 32767, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 1039, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32767, 32767, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 1040, 32767, 32766, 32766, 32767, 32767, + 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32767, + 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32767, + 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, + 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 2667, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 2668, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 2669, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 2670, 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2184, + 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 2233, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 2251, 32767, 32767, 32767, 32767, 2255, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 2671, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 2672, 2673, 2289, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 2315, 32767, 2674, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 2327, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2339, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 2359, 2360, 2361, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2675, 32767, 32767, 2676, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2386, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 2412, 2413, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 2677, 244, 245, 246, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 254, 255, 32767, 256, 257, 32767, 32767, 260, + 32767, 2494, 2495, 263, 264, 265, 266, 267, 268, 269, 32767, 32767, 270, 271, 32767, 273, + 32767, 32767, 275, 276, 277, 278, 32767, 32767, 280, 32767, 2518, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, 298, 299, 300, 32767, + 32767, 301, 32767, 302, 32767, 32767, 32767, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, + 32767, 32767, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, + 323, 32767, 32767, 324, 325, 326, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, + 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 32767, 342, 343, 344, 345, 32767, 32767, + 32767, 347, 32767, 32767, 348, 349, 350, 32767, 352, 32767, 353, 32767, 354, 32767, 355, 356, + 32767, 357, 358, 359, 360, 361, 32767, 362, 32767, 32767, 32767, 365, 32767, 32767, 366, 32767, + 367, 368, 369, 32767, 32766, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 32767, 386, 387, 32767, 389, 390, 391, 392, 32767, 32767, 32767, 32767, 32767, 396, + 32767, 397, 398, 399, 400, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 32767, 421, 32767, + 422, 423, 32767, 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, 431, 432, 433, + 434, 435, 436, 32767, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, + 444, 445, 32767, 447, 32767, 449, 450, 451, 452, 453, 454, 455, 456, 32767, 32767, 459, 32767, + 460, 461, 462, 32767, 32767, 463, 32767, 32767, 465, 32767, 32767, 467, 468, 469, 32767, 470, + 471, 472, 32767, 32767, 473, 474, 475, 32767, 32767, 476, 477, 478, 32767, 480, 481, 32767, + 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, + 32767, 498, 32767, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, + 511, 512, 32767, 513, 32767, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 32767, 532, 533, 534, 535, 536, 537, 538, 539, 32767, 541, 32767, 542, + 543, 544, 545, 546, 32767, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 32767, 556, + 32767, 558, 559, 560, 561, 562, 563, 32767, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 32767, 582, 32767, 583, 584, 32767, 32767, 32767, 32767, + 32767, 585, 586, 587, 588, 589, 590, 591, 592, 32767, 593, 32767, 32767, 32767, 32767, 596, + 597, 32767, 599, 32767, 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, + 32767, 32767, 610, 611, 612, 613, 614, 32767, 32767, 615, 616, 617, 618, 32766, 620, 32767, + 32767, 622, 623, 624, 625, 626, 627, 32767, 32766, 628, 32766, 32766, 629, 630, 32767, 32767, + 631, 632, 633, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 645, 646, 647, 648, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 2667, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32767, 2668, 32767, + 32767, 32767, 32767, 32766, 32767, 32766, 32767, 2669, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2670, 32767, 32767, 32767, 32767, 32767, + 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32766, + 32767, 32767, 32767, 32767, 2184, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 2667, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 2668, 32767, 32767, + 32767, 32767, 32766, 32767, 32767, 32767, 2669, 32767, 32767, 32767, 32767, 32766, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 2670, 2233, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 2251, 32767, 32767, 32767, 32767, 2255, 32767, 32766, 32767, + 32767, 2184, 32767, 32767, 32767, 32767, 2671, 32766, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32766, 2672, 2673, 2289, 32767, 32767, 32766, 32767, 32766, + 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 2233, 32767, 32766, 32767, 32767, 2315, 32767, 2674, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2327, 32767, 32766, 32766, 32766, + 32767, 2251, 32767, 32767, 32767, 32767, 2255, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 2339, 32767, 2671, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32766, 32767, 32767, 32767, 32767, 2359, 2360, 2361, 32767, 32767, 32767, 32767, 32767, + 32767, 2672, 2673, 2289, 32767, 32767, 32767, 32766, 32767, 32767, 2675, 32766, 32767, 2676, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2386, 32766, + 32767, 32767, 32767, 2315, 32766, 2674, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, + 32766, 32767, 32766, 2327, 32767, 32766, 32767, 32767, 32766, 32767, 32766, 32767, 2412, 2413, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 2339, 32767, 32766, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, + 32767, 32767, 2359, 2360, 2361, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 2675, 32766, 32767, 2676, 32766, 32767, 32766, 32766, + 32766, 32767, 32767, 32767, 2677, 32767, 32767, 2386, 32767, 32767, 32767, 5554, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 2494, 2495, 32766, 2412, 2413, 32766, 32767, 32767, 32766, + 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, + 32767, 32767, 32767, 2518, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, + 32767, 32767, 2677, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 2494, 2495, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 2518, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32767, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, + 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 5560, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 1242, 32767, + 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 254, 255, 1243, 256, 257, 258, 1244, 260, + 1245, 1246, 32767, 263, 264, 265, 266, 267, 268, 269, 1247, 1248, 270, 271, 1249, 273, 1250, + 32767, 275, 276, 277, 278, 1251, 32767, 1252, 32767, 32767, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, 298, 299, 300, 1253, 1254, 301, + 1255, 1256, 1257, 1258, 1259, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 1260, 1261, + 311, 32766, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, + 32767, 324, 325, 832, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, + 334, 335, 336, 32767, 337, 338, 339, 340, 1263, 342, 343, 344, 345, 1264, 32767, 1265, 347, + 1266, 32767, 348, 349, 350, 1267, 352, 32767, 353, 32767, 354, 32767, 355, 356, 32767, 357, + 358, 359, 360, 361, 32767, 362, 32767, 1268, 1269, 365, 32767, 32767, 366, 32767, 367, 368, + 369, 782, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 32767, 386, 387, 388, 389, 390, 391, 392, 1270, 32767, 1271, 32767, 1272, 396, 32767, 397, 398, + 399, 400, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 410, 1282, 412, 413, 414, 415, + 416, 417, 418, 32767, 32767, 32767, 419, 1283, 421, 32767, 422, 423, 32767, 424, 425, 426, + 1284, 1285, 427, 428, 429, 430, 3300, 32767, 431, 432, 433, 434, 435, 436, 1287, 438, 439, 440, + 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 3301, 444, 445, 1289, 447, 1290, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 1291, 459, 32767, 460, 461, 462, 32767, 32767, 463, 1294, + 32767, 465, 1295, 1296, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 1297, 474, 475, + 32767, 32767, 476, 477, 478, 479, 480, 481, 1298, 483, 484, 485, 1299, 486, 1300, 487, 488, + 489, 490, 491, 492, 493, 32767, 494, 495, 496, 1301, 498, 499, 500, 501, 502, 32767, 503, 504, + 505, 506, 507, 508, 509, 32767, 3302, 510, 511, 512, 32767, 513, 1303, 515, 516, 517, 32767, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 534, + 535, 536, 537, 538, 539, 3303, 541, 32767, 542, 543, 544, 545, 546, 716, 547, 548, 549, 550, + 32767, 551, 552, 553, 554, 555, 1305, 556, 557, 558, 559, 560, 561, 562, 563, 1306, 565, 32767, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 1307, 582, 32767, + 583, 584, 1308, 32767, 32767, 32767, 32767, 585, 586, 587, 588, 589, 590, 591, 592, 32767, 593, + 1310, 1311, 32767, 32767, 596, 597, 1312, 599, 1313, 1314, 601, 602, 32767, 603, 604, 605, + 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, 1316, 32767, 615, 616, 617, + 618, 619, 620, 1317, 32767, 622, 623, 624, 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, + 630, 32767, 32767, 631, 632, 633, 1318, 634, 1319, 1320, 1321, 1322, 639, 1323, 1324, 1325, + 1326, 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, + 246, 32767, 32767, 32767, 32767, 1242, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, + 254, 255, 1243, 256, 257, 258, 1244, 260, 1245, 1246, 32767, 263, 264, 265, 266, 267, 268, 269, + 1247, 1248, 270, 271, 1249, 273, 1250, 32767, 275, 276, 277, 278, 1251, 32767, 1252, 32767, + 32767, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, + 297, 32767, 298, 299, 5592, 1253, 1254, 301, 1255, 1256, 1257, 1258, 1259, 303, 304, 32767, + 32767, 32767, 305, 306, 307, 308, 1260, 1261, 311, 1262, 312, 32767, 313, 314, 315, 316, 317, + 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 832, 327, 32767, 32767, 328, + 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 1263, + 342, 343, 344, 345, 1264, 32767, 1265, 347, 1266, 32767, 348, 349, 350, 1267, 352, 32767, 353, + 32767, 354, 32767, 355, 356, 32767, 357, 358, 359, 360, 361, 32767, 362, 32767, 1268, 5593, + 365, 32767, 32767, 366, 32767, 367, 368, 369, 782, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 32767, 386, 387, 388, 389, 390, 391, 392, 1270, 32767, 1271, + 32767, 1272, 396, 32767, 397, 398, 399, 400, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, + 1281, 410, 1282, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 1283, 421, 32767, + 422, 423, 32767, 424, 425, 426, 1284, 1285, 427, 428, 429, 430, 5594, 32767, 431, 432, 433, + 434, 435, 436, 1287, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 1288, + 444, 445, 1289, 447, 1290, 449, 450, 451, 452, 453, 454, 455, 456, 457, 1291, 459, 1292, 460, + 461, 462, 32767, 1293, 463, 1294, 32767, 465, 1295, 1296, 467, 468, 469, 32767, 470, 471, 472, + 32767, 32767, 1297, 474, 475, 32767, 32767, 476, 477, 478, 479, 480, 481, 1298, 483, 484, 485, + 1299, 486, 1300, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 1301, 498, 499, 500, + 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 1302, 510, 511, 512, 32767, 513, + 1303, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 32767, 532, 533, 534, 535, 536, 32766, 538, 539, 1304, 541, 32767, 542, 543, 544, 545, + 546, 716, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 1305, 556, 557, 558, 559, 560, + 561, 562, 563, 1306, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 1307, 582, 32767, 583, 584, 1308, 32767, 32767, 32767, 32767, 585, 586, 587, + 588, 589, 590, 591, 592, 32767, 593, 1310, 1311, 32767, 32767, 596, 597, 1312, 599, 1313, 1314, + 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 1315, 610, 611, 612, 613, + 614, 1316, 32767, 615, 616, 617, 618, 619, 620, 1317, 32767, 622, 623, 624, 625, 626, 627, + 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 1318, 634, 1319, 1320, + 1321, 1322, 639, 1323, 1324, 1325, 1326, 644, 645, 646, 647, 648, 2667, 32767, 32767, 32767, + 32767, 32767, 2667, 32767, 32767, 2668, 32767, 32767, 32767, 2667, 32767, 2668, 32767, 32767, + 2669, 32767, 32767, 32767, 2668, 32767, 2669, 32767, 32767, 32767, 32767, 32767, 32767, 2669, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2670, + 32767, 32767, 32767, 32767, 32767, 2670, 32767, 32767, 32767, 32767, 32767, 32767, 2670, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2184, 32767, 32767, 32767, 32767, + 32767, 2184, 32767, 32767, 32767, 32767, 32767, 32767, 2184, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2233, 32767, + 32767, 32767, 32766, 32767, 2233, 32767, 32767, 32767, 32766, 32767, 32767, 2233, 32766, 32767, + 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 2251, 32767, 32767, 32767, + 32767, 2255, 2251, 32767, 32767, 32767, 32767, 2255, 32767, 2251, 32767, 2671, 32767, 32767, + 2255, 32767, 32767, 2671, 32767, 32767, 32767, 32767, 32767, 32767, 2671, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 2672, 2673, 2289, 32767, + 32767, 32767, 2672, 2673, 2289, 32767, 32767, 32767, 32767, 2672, 2673, 2289, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2315, 32767, 2674, + 32766, 32767, 32767, 2315, 32767, 2674, 32767, 32767, 32767, 32767, 2315, 2327, 2674, 32767, + 32767, 32767, 32767, 2327, 32767, 32767, 32767, 32767, 32767, 32767, 2327, 32767, 32767, 32767, + 32767, 32767, 2339, 32767, 32767, 32767, 32767, 32767, 2339, 32767, 32767, 32767, 32767, 32767, + 32767, 2339, 32767, 32767, 32767, 32767, 32767, 32767, 2359, 2360, 2361, 32767, 32767, 32767, + 2359, 2360, 2361, 32767, 32767, 32767, 32766, 2359, 2360, 2361, 32766, 32767, 2675, 32767, + 32767, 2676, 32766, 32767, 2675, 32767, 32767, 2676, 32767, 32767, 32767, 2675, 32767, 2386, + 2676, 32767, 32767, 32767, 32767, 2386, 32767, 32767, 32767, 32767, 32767, 32767, 2386, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 2412, 2413, 32767, 32767, 32767, 32767, 2412, 2413, 32767, 32767, 32767, 32767, 32767, 2412, + 2413, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, -2304, 32767, 32767, 32767, 32767, 32767, 32767, -2307, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2677, 32767, 32767, 32767, 32767, 32767, 2677, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 2494, 2495, 32767, 32767, 32767, 32767, + 2494, 2495, 32767, 32767, 32767, 32767, 32767, 2494, 2495, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 2518, 32767, 32767, 32767, 32767, 32767, 2518, 32767, 32767, + 32766, 32767, 32767, 32767, 2518, 32767, 32767, 32767, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 247, 248, 249, + 32767, 250, 251, 252, 253, 32767, 255, 32767, 256, 257, 258, 259, 32767, 261, 262, 32767, 263, + 264, 265, 266, 267, 268, 269, 32767, 32767, 270, 271, 272, 273, 274, 32767, 275, 276, 277, 278, + 279, 32767, 32767, 32767, 32767, 281, 282, 283, 284, 285, 286, 32767, 288, 289, 290, 291, + 32767, 292, 293, 294, 295, 296, 297, 32767, 32767, 299, 300, 32767, 32767, 301, 32767, 32767, + 32767, 32767, 32767, 303, 304, 980, 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32767, + 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, + 325, 326, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, + 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 981, 32767, 347, 32767, 32767, 348, + 349, 350, 351, 352, 32767, 353, 32767, 354, 32767, 355, 32767, 32767, 32767, 358, 359, 360, + 361, 32767, 362, 983, 363, 364, 365, 32767, 984, 366, 32767, 367, 368, 369, 32767, 657, 371, + 372, 32767, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 32767, 388, + 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, 32767, 32767, 32767, 399, 32767, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 32767, + 32767, 32767, 419, 420, 32767, 985, 422, 32767, 32767, 424, 425, 426, 32767, 32767, 427, 428, + 429, 430, 32767, 986, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, 32767, + 32767, 32767, 32767, 442, 443, 987, 444, 445, 446, 32767, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 32767, 460, 461, 32767, 988, 32767, 463, 464, 32767, 465, 32767, 466, + 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 32766, 474, 475, 32767, 32767, 476, 477, + 32767, 479, 480, 32767, 482, 483, 484, 485, 989, 486, 32767, 487, 488, 489, 490, 491, 492, 493, + 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, + 990, 991, 510, 511, 512, 32767, 513, 514, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 32767, 535, 536, 537, 538, 539, 540, + 541, 32767, 542, 543, 544, 545, 546, 32767, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, + 32767, 556, 557, 558, 559, 560, 32767, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32767, 992, 993, + 32767, 585, 32767, 587, 588, 589, 590, 591, 592, 32767, 593, 594, 595, 32767, 32767, 596, 597, + 598, 599, 600, 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, + 610, 611, 612, 613, 614, 32767, 32767, 615, 616, 617, 618, 619, 620, 621, 32767, 622, 32767, + 624, 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, + 32767, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 32767, + 32767, 32766, 247, 248, 249, 32767, 250, 251, 252, 253, 32767, 255, 32767, 256, 257, 258, 259, + 32767, 261, 262, 32767, 263, 264, 265, 266, 267, 268, 269, 32767, 32767, 270, 271, 272, 273, + 274, 32767, 275, 276, 277, 278, 279, 32767, 32767, 32767, 32767, 281, 282, 283, 284, 285, 286, + 32767, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, 32767, 299, 300, 32767, + 32767, 301, 32767, 32767, 32767, 32767, 32767, 303, 304, 32767, 32767, 32766, 305, 306, 307, + 308, 309, 310, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32766, 320, 321, 322, + 323, 32767, 32767, 324, 325, 326, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, + 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 32767, + 32767, 347, 32767, 32767, 348, 349, 350, 351, 352, 32767, 353, 32767, 354, 32767, 355, 32767, + 32767, 32767, 358, 359, 360, 361, 32767, 362, 32767, 363, 364, 365, 32767, 32767, 366, 32767, + 367, 368, 369, 32767, 657, 371, 372, 32767, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 32767, 386, 32767, 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, 32767, + 32767, 32767, 399, 32767, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, 32767, 32767, 422, 32767, 32767, 424, 425, + 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, 32767, 448, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, 32767, 32767, 32767, + 463, 464, 32766, 465, 32767, 466, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 473, 474, + 475, 32767, 32767, 476, 477, 32767, 479, 480, 32767, 482, 483, 484, 485, 32767, 486, 32767, + 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, 32767, + 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, + 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, + 32767, 535, 536, 537, 538, 539, 540, 541, 32766, 542, 543, 544, 545, 546, 32767, 547, 548, 549, + 550, 32767, 551, 552, 553, 554, 555, 32767, 556, 557, 558, 559, 560, 32767, 562, 563, 564, 565, + 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 32767, 583, 584, 32767, 32767, 32767, 32767, 32767, 585, 32767, 587, 588, 589, 590, 591, 592, + 32767, 593, 594, 595, 32767, 32767, 596, 597, 598, 599, 600, 32767, 601, 602, 32767, 603, 604, + 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, 32767, 32767, 615, 616, + 617, 618, 619, 620, 621, 32767, 622, 32767, 624, 625, 626, 627, 32767, 32767, 628, 32767, + 32766, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, + 245, 246, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, + 253, 254, 255, 32767, 256, 257, 258, 259, 260, 261, 262, 32767, 263, 264, 265, 266, 267, 268, + 269, 32767, 32767, 270, 271, 272, 273, 274, 32767, 275, 276, 277, 278, 279, 32767, 280, 32767, + 32767, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, + 297, 32767, 298, 299, 300, 32767, 32767, 301, 32767, 302, 32767, 32767, 32767, 303, 304, 32767, + 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, + 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 326, 327, 32767, 32767, 328, + 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 32767, 32767, 347, 32767, 32767, 348, 349, 350, 351, 352, 32767, 353, + 32767, 354, 32767, 355, 356, 32767, 357, 358, 359, 360, 361, 32767, 362, 32767, 363, 364, 365, + 32767, 32767, 366, 32767, 367, 368, 369, 32767, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 32767, 386, 387, 388, 389, 390, 391, 392, 393, 32767, 394, + 32767, 395, 396, 32767, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, 421, 32767, 422, 423, + 32767, 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32766, 32767, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, 462, + 32767, 32767, 463, 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, 470, 471, 472, 32767, + 32767, 473, 474, 475, 32767, 32767, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 32767, + 486, 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, + 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 32767, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, 546, 32767, + 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 32767, 556, 557, 558, 559, 560, 561, 562, + 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 32767, 583, 584, 32767, 32767, 32767, 32767, 32767, 585, 586, 587, 588, 589, + 590, 591, 592, 32767, 593, 594, 595, 32767, 32767, 596, 597, 598, 599, 600, 32767, 601, 602, + 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, 32767, + 32767, 615, 616, 617, 618, 619, 620, 621, 32767, 622, 623, 624, 625, 626, 627, 32767, 32767, + 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 2, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 3, 32767, 4, 5, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 7, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32766, 32767, 32767, 32766, 8, 32767, 9, 10, 32767, 32767, 32767, 32767, 32767, 32767, + 11, 32767, 12, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 13, 32767, 14, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 15, 32767, 32767, 16, 32767, + 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 17, + 32767, 18, 32767, 32767, 32767, 19, 32767, 32767, 32767, 32767, 4111, 32767, 32766, 32767, + 5775, 32767, 32767, 32767, 32767, 32767, 32766, 2667, 32766, 32767, 21, 32767, 22, 32767, + 32767, 32767, 2668, 32767, 32767, 32767, 32767, 23, 32767, 32767, 32767, 2669, 32767, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 24, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2670, 4112, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 25, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32766, 4113, 32767, 32767, 32767, 32767, 4114, 32767, + 32767, 32767, 32767, 2184, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 26, 27, 32766, 32767, 32767, 32767, 32767, 28, + 32767, 29, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 2667, 32767, 32767, 2233, 32767, 35, 32767, 32767, 4117, 2668, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 2669, 32767, 32767, 32767, 4118, 32767, 32767, 36, 32767, + 32767, 2251, 32767, 32767, 32767, 32767, 2255, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 4119, 32767, 2671, 2670, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32767, 4120, 32767, 32767, 32767, 32767, 32767, + 32766, 32767, 2672, 2673, 2289, 32767, 32767, 32767, 37, 32767, 32767, 4121, 2184, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 1299, 38, + 32767, 32767, 32767, 2315, 39, 2674, 40, 32766, 41, 32767, 32767, 32767, 32767, 42, 32767, + 32767, 4642, 2327, 32766, 43, 32767, 32767, 44, 32767, 32767, 32767, 4122, 4123, 32767, 32767, + 45, 32767, 32767, 32767, 32767, 32767, 2339, 32766, 46, 47, 2233, 32767, 32767, 32767, 32767, + 32767, 48, 32767, 32767, 32767, 49, 32767, 32767, 32767, 32767, 32767, 2359, 2360, 2361, 32767, + 32767, 50, 32767, 32766, 32767, 2251, 32767, 32767, 32767, 32767, 2255, 32767, 32767, 32767, + 2675, 32767, 32767, 2676, -135, 2667, 2671, 51, 5821, 32767, 32767, 32767, 32767, 32767, 2668, + 2386, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2669, 32767, 32767, 32767, 32767, 52, + 32767, 32767, 32767, 32767, 2672, 2673, 2289, 32767, 32767, 32767, 32766, 4124, 4125, 53, 2412, + 2413, 32766, 32767, 32767, 54, 2670, 32767, 32767, 55, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 2315, 32767, 2674, 4126, 56, 32767, 32767, 32767, 57, 32767, 32767, + 32767, 32767, 32766, 2327, 32767, 32767, 32767, -2306, 32767, 32767, 32767, 32767, 2184, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2339, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 2359, 2360, 2361, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 2494, 2495, 2675, 32767, 32767, 2676, 32767, 32767, 32767, 32767, + 2233, 32767, 32767, 32767, 32767, 32767, 32767, 2386, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 2518, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2251, 32767, 32767, + 32767, 32767, 2255, 32767, 32767, 32767, 32767, 2412, 2413, 32767, 32767, 32767, 2671, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 2667, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 2668, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2669, 2672, 2673, + 2289, 32767, 32767, -2310, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2670, 32767, 32767, + 32766, 2315, 32767, 2674, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 2327, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 2494, 2495, 32767, 32767, 32767, 2184, 2339, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2518, 2359, + 2360, 2361, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 2675, 32767, 32767, 2676, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 2386, 32767, 2233, 32767, 32767, 32767, 32766, 32766, 32767, 32767, + 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32767, 32766, 32767, 2251, 2412, 2413, 32767, 32766, 2255, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 2671, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32766, 32767, 32767, 32767, 32767, 2672, 2673, 2289, 32767, 32766, 32767, 32767, 32767, + 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 2677, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 2315, 32767, 2674, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2327, 32767, 32767, 32767, 2494, 2495, + 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 2339, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 2518, 32767, 32767, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 2359, 2360, 2361, 32767, 32767, 32767, 32767, 32766, + 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 2675, 32767, 32767, 2676, + 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2386, 32767, + 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 2412, 2413, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, + 32766, 32767, 32766, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32766, 32767, 32767, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2677, 32767, 32767, 2667, 32766, 32767, 32767, + 32767, 32767, 32766, 32766, 32766, 2668, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 2669, 32767, 32767, 32767, 32767, 32767, 32766, 2494, 2495, 32767, 32767, 32767, 32766, + 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, + 2670, 32767, 32767, 32766, 5837, 32766, 2518, 32767, 32767, 32767, 32767, 32767, 32766, 32767, + 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2184, 32767, 32767, 32766, + 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32766, + 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, + 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, + 2233, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 2251, + 32767, 32767, 32767, 32767, 2255, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, + 32766, 2671, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32766, + 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32767, + 32767, 32767, 2672, 2673, 2289, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32767, + 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 2315, 32767, 2674, 32767, 32766, 32766, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 2327, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 2339, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32767, + 32766, 32766, 32767, 32767, 2359, 2360, 2361, 32767, 32767, 32767, 32767, 2047, 32766, 32767, + 32767, 32767, 32766, 32766, 32767, 32767, -2352, 32767, 2675, 32767, 32767, 2676, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 2386, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 2412, 2413, 32766, + 32767, 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32767, 2494, 2495, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 5838, 32767, 32767, 32766, + 32767, 32767, 32767, 32767, 32767, 2518, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, + 32767, 32767, 32767, 32767, 1242, 32766, 32766, 247, 248, 249, 32767, 250, 251, 252, 253, 254, + 255, 1243, 256, 257, 258, 1244, 260, 1245, 1246, 32767, 263, 264, 265, 266, 267, 268, 269, + 1247, 1248, 270, 271, 1249, 273, 1250, 32767, 275, 276, 277, 278, 1251, 32767, 1252, 32767, + 32767, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, + 297, 32767, 298, 299, 300, 1253, 1254, 301, 1255, 1256, 1257, 1258, 1259, 303, 304, 32767, + 32767, 32767, 305, 306, 307, 308, 1260, 1261, 311, 1262, 312, 32767, 313, 314, 315, 316, 317, + 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 832, 327, 32767, 32767, 328, + 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 1263, + 342, 343, 344, 345, 1264, 32767, 1265, 347, 1266, 32767, 348, 349, 350, 1267, 352, 32767, 353, + 32767, 354, 32767, 355, 356, 32767, 357, 358, 359, 360, 361, 32767, 362, 32767, 1268, 1269, + 365, 32767, 32767, 366, 32767, 367, 368, 369, 782, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 32767, 386, 387, 388, 389, 390, 391, 392, 1270, 32767, 1271, + 32767, 1272, 396, 32767, 397, 398, 399, 400, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, + 1281, 410, 1282, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 1283, 421, 32767, + 422, 423, 32767, 424, 425, 426, 1284, 1285, 427, 428, 429, 430, 1286, 32767, 431, 432, 433, + 434, 435, 436, 1287, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 1288, + 444, 445, 1289, 447, 1290, 449, 450, 451, 452, 453, 454, 455, 456, 457, 1291, 459, 1292, 460, + 461, 462, 32767, 1293, 463, 1294, 32767, 465, 1295, 1296, 467, 468, 469, 32767, 470, 471, 472, + 32767, 32767, 1297, 474, 475, 32767, 32767, 476, 477, 478, 479, 480, 481, 1298, 483, 484, 485, + 1299, 486, 1300, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 1301, 498, 499, 500, + 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 1302, 510, 511, 512, 32767, 513, + 1303, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 32767, 532, 533, 534, 535, 536, 537, 538, 539, 1304, 541, 32766, 542, 543, 544, 545, 546, + 716, 547, 548, 549, 550, 47, 551, 552, 553, 554, 555, 1305, 556, 557, 558, 559, 560, 561, 562, + 563, 1306, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 1307, 582, 32767, 583, 584, 1308, 32767, 32767, 32767, 51, 585, 586, 587, 588, 589, 590, + 591, 592, 32767, 593, 1310, 1311, 32767, 32767, 596, 597, 1312, 599, 1313, 1314, 601, 602, + 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 1315, 610, 611, 612, 613, 614, 1316, + 32767, 615, 616, 617, 618, 1202, 620, 1317, 32767, 622, 623, 624, 625, 626, 627, 32767, 32767, + 628, 32767, 56, 629, 630, 32767, 57, 631, 632, 633, 1318, 634, 1319, 1320, 1321, 1322, 639, + 1323, 1324, 1325, 1326, 644, 645, 646, 647, 648, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 2667, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 2668, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2669, 32767, 32767, + 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2670, 32767, 32766, + 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, + 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32766, 32767, + 32767, 32767, 32767, 32766, 32767, 32766, 32767, 2184, 32767, 32766, 32767, 32767, 32767, + 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32766, + 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2233, 32766, + 32767, 32767, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32766, + 32767, 32767, 32767, 32767, 5840, 32766, 32767, 32767, 32766, 32767, 2251, 32767, 32767, 32767, + 32767, 2255, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 2671, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 2672, 2673, 2289, + 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32767, 32767, 32766, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32767, + 2315, 32767, 2674, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 2327, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 2339, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, + 2359, 2360, 2361, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, + 32766, 32767, 32766, 32767, 2675, 32767, 32767, 2676, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 2386, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32766, 32766, 2412, 2413, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, + 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 32766, 2677, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32766, 2494, 2495, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 2518, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, 249, 32767, + 250, 251, 252, 253, 254, 255, 32767, 256, 257, 258, 259, 260, 261, 262, 32767, 263, 264, 265, + 266, 267, 268, 269, 32767, 32767, 270, 271, 272, 273, 274, 32767, 275, 276, 277, 278, 279, + 32767, 280, 32767, 32767, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 32767, 292, + 293, 294, 295, 296, 297, 32767, 298, 299, 300, 32767, 32767, 301, 32767, 302, 32767, 32767, + 32767, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32767, 312, 32767, + 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 326, 327, + 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 32767, 32767, 347, 32767, 32767, 348, 349, 350, + 351, 352, 32767, 353, 32767, 354, 32767, 355, 356, 32767, 357, 358, 359, 360, 361, 32767, 362, + 32767, 363, 364, 365, 32767, 32767, 366, 32767, 367, 368, 369, 32767, 32766, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 387, 388, 389, 390, + 391, 392, 393, 32767, 394, 32767, 395, 396, 32767, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, + 421, 32767, 422, 423, 32767, 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, + 443, 32767, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 32767, 460, 461, 462, 32767, 32767, 463, 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, + 470, 471, 472, 32767, 32767, 473, 474, 475, 32767, 32767, 476, 477, 478, 479, 480, 481, 482, + 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, + 32767, 513, 514, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 32767, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, 544, + 545, 546, 32767, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 32767, 556, 557, 558, 559, + 560, 561, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32767, 32767, 32767, 32767, 585, 586, + 587, 588, 589, 590, 591, 592, 32767, 593, 594, 595, 32767, 32767, 596, 597, 598, 599, 600, + 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, + 613, 614, 32767, 32767, 615, 616, 617, 618, 619, 620, 621, 32767, 622, 623, 624, 625, 626, 627, + 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, 249, + 32767, 250, 251, 252, 253, 254, 255, 32767, 256, 257, 258, 259, 260, 261, 262, 32767, 263, 264, + 265, 266, 267, 268, 269, 32767, 32767, 270, 271, 272, 273, 274, 32767, 275, 276, 277, 278, 279, + 32767, 280, 32767, 32767, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 32767, 292, + 293, 294, 295, 296, 297, 32767, 298, 299, 300, 32767, 32767, 301, 32767, 302, 32767, 32767, + 32767, 303, 304, 32767, 32767, 32766, 305, 306, 307, 308, 309, 310, 311, 5905, 312, 32767, 313, + 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 326, 327, + 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 32767, 1828, 347, 1602, 32767, 348, 349, 350, 351, + 352, 32767, 353, 32767, 354, 32767, 355, 356, 32767, 357, 358, 359, 360, 361, 32767, 362, + 32767, 363, 364, 365, 32767, 32767, 366, 32767, 367, 368, 369, 782, 966, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 387, 388, 389, 390, 391, + 392, 393, 32767, 394, 32767, 395, 396, 32767, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, 421, + 32767, 422, 423, 32767, 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 5906, 32767, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 1603, + 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 32767, 460, + 461, 462, 32767, 32767, 463, 464, 32767, 465, 32767, 466, 467, 468, 469, 32767, 470, 471, 472, + 1829, 32767, 473, 474, 475, 32767, 32767, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 1604, 510, 511, 512, 32767, 513, + 514, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 32767, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 32766, 542, 543, 544, 545, 546, + 716, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 32767, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, + 579, 580, 581, 582, 32767, 583, 584, 32767, 32767, 32767, 5907, 32767, 585, 586, 587, 588, 589, + 590, 591, 592, 32767, 593, 594, 595, 32767, 32767, 596, 597, 598, 599, 600, 1830, 601, 602, + 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, 32767, + 32767, 615, 616, 617, 618, 619, 620, 621, 32767, 622, 623, 624, 625, 626, 627, 32767, 32767, + 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 1242, 32767, 32767, 247, 248, 249, 32767, + 250, 251, 252, 253, 254, 255, 1243, 256, 257, 6010, 1244, 260, 1245, 1246, 32767, 263, 264, + 265, 266, 267, 268, 269, 1247, 1248, 270, 271, 1249, 273, 1250, 32767, 275, 276, 277, 278, + 1251, 32767, 1252, 32767, 32767, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 32767, + 292, 293, 294, 295, 296, 297, 32767, 298, 299, 300, 1253, 1254, 6011, 1255, 1256, 1257, 1258, + 1259, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 1260, 1261, 311, 1262, 312, 32767, + 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 832, 327, + 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, + 338, 339, 340, 1263, 342, 343, 344, 345, 1264, 32767, 1265, 347, 1266, 32767, 348, 349, 350, + 1267, 352, 32767, 353, 32767, 354, 32767, 355, 356, 32767, 357, 358, 359, 360, 361, 32767, 362, + 32767, 1268, 1269, 365, 32767, 32767, 366, 32767, 367, 368, 369, 782, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 387, 388, 389, 390, 391, + 392, 1270, 32767, 1271, 32767, 1272, 396, 32767, 397, 398, 399, 400, 1273, 1274, 1275, 1276, + 1277, 1278, 1279, 1280, 1281, 410, 1282, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, + 32767, 419, 1283, 421, 32767, 422, 423, 32767, 424, 425, 426, 1284, 1285, 427, 428, 429, 430, + 1286, 32767, 431, 432, 433, 434, 435, 436, 1287, 438, 439, 440, 441, 32767, 32767, 32767, + 32767, 32767, 442, 443, 1288, 444, 445, 1289, 447, 1290, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 1291, 459, 1292, 460, 461, 462, 32767, 1293, 463, 1294, 32767, 465, 1295, 1296, 467, + 468, 469, 32767, 470, 471, 472, 32767, 32767, 1297, 474, 475, 32767, 32767, 476, 477, 478, 479, + 480, 481, 1298, 483, 484, 485, 1299, 486, 1300, 487, 488, 489, 490, 491, 492, 493, 32767, 494, + 495, 496, 1301, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 1302, + 510, 511, 512, 32767, 513, 1303, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 32767, 532, 533, 534, 535, 536, 537, 538, 539, 1304, 541, 32767, + 542, 543, 544, 545, 546, 716, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 1305, 556, + 557, 558, 559, 560, 561, 562, 563, 1306, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 1307, 582, 32767, 583, 584, 1308, 32767, 32767, 32767, + 32767, 585, 586, 587, 588, 589, 590, 591, 592, 32767, 593, 1310, 1311, 32767, 32767, 596, 597, + 1312, 599, 1313, 1314, 601, 602, 32767, 603, 604, 605, 32767, 32766, 607, 608, 609, 32767, + 1315, 610, 611, 612, 613, 614, 1316, 32767, 615, 616, 617, 618, 619, 620, 1317, 32767, 622, + 623, 624, 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, + 633, 1318, 634, 1319, 1320, 1321, 1322, 639, 1323, 1324, 1325, 1326, 644, 645, 646, 647, 648, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 254, 255, 32767, 256, 257, + 32767, 825, 260, 826, 827, 32767, 263, 264, 265, 266, 267, 268, 269, 32767, 32767, 270, 271, + 828, 273, 829, 32767, 275, 276, 277, 278, 32767, 32767, 280, 32767, 32767, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, 298, 299, 300, + 32767, 32767, 301, 32767, 302, 32767, 32767, 32767, 303, 304, 32767, 32767, 32767, 305, 306, + 307, 308, 830, 831, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, + 322, 323, 32767, 32767, 324, 325, 832, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, + 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 32767, 342, 343, 344, 345, 32767, + 32767, 32767, 347, 32767, 32767, 348, 349, 350, 833, 352, 32766, 353, 32767, 354, 32767, 355, + 356, 32767, 357, 358, 359, 360, 361, 32767, 362, 32767, 32767, 32767, 365, 32767, 32767, 366, + 32767, 367, 368, 369, 32767, 834, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 32767, 386, 387, 32767, 389, 390, 391, 392, 835, 32767, 836, 32767, 837, 396, + 32767, 397, 398, 399, 400, 838, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 32767, 421, 32767, 422, + 423, 32767, 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, + 435, 436, 32767, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, 444, + 445, 839, 447, 840, 449, 450, 451, 452, 453, 454, 455, 456, 32767, 32767, 459, 32767, 460, 461, + 462, 32767, 32767, 463, 32767, 32767, 465, 32767, 841, 467, 468, 469, 32767, 470, 471, 472, + 32767, 32767, 473, 474, 475, 32767, 32767, 476, 477, 478, 32767, 480, 481, 32767, 483, 484, + 485, 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 32767, 498, + 32767, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, + 32767, 513, 842, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 32767, 532, 533, 534, 535, 536, 537, 538, 539, 32767, 541, 32767, 542, 543, 544, + 545, 546, 32767, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 32767, 556, 843, 558, 559, + 560, 561, 562, 563, 844, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 32767, 582, 32767, 583, 584, 32767, 32767, 32767, 32767, 32767, 585, 586, + 587, 588, 589, 590, 591, 592, 32767, 593, 845, 846, 32767, 32767, 596, 597, 32767, 599, 32767, + 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, + 613, 614, 32767, 32767, 615, 616, 617, 618, 32767, 620, 847, 32767, 622, 623, 624, 625, 626, + 627, 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 645, 646, 647, 648, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 254, 255, 32767, 256, 257, 258, + 259, 260, 261, 262, 32767, 263, 264, 265, 266, 267, 268, 269, 32767, 32767, 270, 271, 272, 273, + 274, 32767, 275, 276, 277, 278, 279, 32767, 280, 32767, 32767, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, 298, 299, 300, 32767, + 32767, 301, 32767, 302, 32767, 32767, 32767, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, + 309, 310, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, + 32767, 32767, 324, 325, 326, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, + 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 32767, 1828, + 347, 32767, 32767, 348, 349, 350, 351, 352, 32767, 353, 32767, 354, 32767, 355, 356, 32767, + 357, 358, 359, 360, 361, 32767, 362, 32767, 363, 364, 365, 32767, 32767, 366, 32767, 367, 368, + 369, 32767, 966, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 32767, 386, 387, 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, 32767, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 32767, 32767, 32767, 419, 420, 421, 32767, 422, 423, 32767, 424, 425, 426, 32767, 32767, + 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, + 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 455, 456, 457, 458, 459, 32767, 460, 461, 462, 32767, 32767, 463, 464, 32767, 465, 32767, + 466, 467, 468, 469, 32767, 470, 471, 472, 1829, 32767, 473, 474, 475, 32767, 32767, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, + 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, + 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, 32767, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 32767, 542, 543, 544, 545, 546, 716, 547, 548, 549, 550, 32767, 551, 552, 553, 554, + 555, 32767, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 32767, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 32767, 583, 584, 32767, 32767, + 32767, 32767, 32767, 585, 586, 587, 588, 589, 590, 591, 592, 32767, 593, 594, 595, 32767, + 32767, 596, 597, 598, 599, 600, 32766, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, + 609, 32767, 32767, 610, 611, 612, 613, 614, 32767, 32767, 615, 616, 617, 618, 619, 620, 621, + 32767, 622, 623, 624, 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, 630, 32767, 32767, + 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, + 648, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32767, + 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32767, 32767, + 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32767, + 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32767, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32767, + 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32767, 32767, 32767, 32767, 32767, 1865, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, + 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32767, + 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, + 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32767, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, 32766, + 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 2667, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 2668, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 2669, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 2670, 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 2184, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 2233, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 2251, 32767, 32767, 32767, 32767, 2255, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 2671, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 2672, 2673, 2289, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2315, 32767, 2674, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2327, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 2339, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2359, 2360, 2361, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2675, 32767, + 32767, 2676, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2386, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 2412, 2413, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, -2303, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 32767, 244, 245, 246, 2494, 2495, 32766, 32767, 1242, 32767, 32767, 247, + 248, 249, 32767, 250, 251, 252, 253, 254, 255, 1243, 256, 257, 32767, 1244, 260, 1245, 1246, + 2518, 263, 264, 265, 266, 267, 268, 269, 1247, 1248, 270, 271, 1249, 273, 1250, 32767, 275, + 276, 277, 278, 1251, 32766, 1252, 32767, 32767, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, 298, 299, 300, 1253, 1254, 6011, 1255, + 1256, 1257, 1258, 1259, 303, 304, 32766, 32767, 32767, 305, 306, 307, 308, 1260, 1261, 311, + 1262, 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, + 324, 325, 832, 327, 32767, 32766, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, + 336, 32767, 337, 338, 339, 340, 1263, 342, 343, 344, 345, 1264, 32766, 1265, 347, 1266, 32767, + 348, 349, 350, 1267, 352, 32767, 353, 32767, 354, 32767, 355, 356, 32767, 357, 358, 359, 360, + 361, 32767, 362, 32766, 1268, 1269, 365, 32767, 32766, 366, 32767, 367, 368, 369, 782, 370, + 371, 372, 32767, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 387, + 388, 389, 390, 391, 392, 1270, 32767, 1271, 32767, 1272, 396, 32766, 32766, 32766, 399, 400, + 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 410, 1282, 412, 413, 414, 415, 416, 417, + 418, 32767, 32766, 32767, 419, 1283, 421, 32766, 422, 32767, 32767, 424, 425, 426, 1284, 1285, + 427, 428, 429, 430, 1286, 32766, 431, 432, 433, 434, 435, 436, 1287, 438, 439, 440, 441, 32767, + 32767, 32767, 32767, 32767, 442, 443, 1288, 444, 445, 1289, 447, 1290, 449, 450, 451, 452, 453, + 454, 455, 456, 457, 1291, 459, 1292, 460, 461, 32766, 32766, 32767, 463, 1294, 32767, 465, + 1295, 1296, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 1297, 474, 475, 32766, 32767, + 476, 477, 478, 479, 480, 481, 1298, 483, 484, 485, 1299, 486, 1300, 487, 488, 489, 490, 491, + 492, 493, 32767, 494, 495, 496, 1301, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, 507, + 508, 509, 32766, 1302, 510, 511, 512, 32767, 513, 1303, 515, 516, 517, 32767, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 534, 535, 536, 537, + 538, 539, 1304, 541, 32767, 542, 543, 544, 545, 546, 716, 547, 548, 549, 550, 32767, 551, 552, + 553, 554, 555, 1305, 556, 557, 558, 559, 560, 32767, 562, 563, 1306, 565, 32767, 566, 567, 568, + 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 1307, 582, 32767, 583, 584, 1308, + 32767, 32766, 32766, 32767, 585, 586, 587, 588, 589, 590, 591, 592, 32767, 593, 1310, 1311, + 32767, 32767, 596, 597, 1312, 599, 1313, 1314, 601, 602, 32766, 603, 604, 605, 32767, 6012, + 607, 608, 609, 32767, 1315, 610, 611, 612, 613, 614, 1316, 32767, 615, 616, 617, 618, 619, 620, + 1317, 32767, 622, 623, 624, 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, 630, 32767, + 32767, 631, 632, 633, 1318, 634, 1319, 1320, 1321, 1322, 639, 1323, 1324, 1325, 1326, 644, 645, + 646, 647, 648, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 2667, 32766, 32767, + 32767, 32767, 32766, 32767, 32767, 32767, 2668, 32766, 32767, 32767, 32767, 32766, 32767, + 32767, 32767, 2669, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, + 32767, 32767, 2670, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 2184, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, + 32767, 32767, 32767, 2233, 32766, 32767, 32767, 32767, 6158, 32767, 32767, 32767, 6160, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32766, 32767, + 32767, 2251, 32766, 32767, 32767, 32767, 2255, 32767, 32766, 32767, 32767, 32767, 32766, 32767, + 32767, 32767, 2671, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 2672, 2673, 2289, 32767, 32767, 32767, 32767, 32767, 32767, 6178, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32766, + 32767, 32766, 32767, 32766, 32767, 2315, 32767, 2674, 32767, 32767, 32766, 32766, 32767, 32767, + 32766, 32766, 32767, 32767, 32767, 2327, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 2339, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32767, 2359, 2360, 2361, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 2675, 32767, 32767, 2676, 32767, + 32767, 32767, 32766, 32767, 32766, 32767, 32766, 32767, 32766, 32767, 2386, 32767, 32766, + 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 6159, 32767, 32767, 2667, 32766, 32766, + 32767, 32767, 32767, 32766, 32766, 32767, 2668, 32766, 32766, 32767, 32767, 2412, 2413, 32767, + 32766, 2669, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32766, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 6157, 32766, + 32767, 2670, 32766, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32766, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, + 32767, 32766, 32767, 32767, 32767, 2677, 32766, 32767, 32767, 32767, 32767, 2184, 32767, 32767, + 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, + 32767, 32767, 32766, 32766, 32767, 32767, 2494, 2495, 32767, 32767, 32767, 32767, 32766, 32767, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, + 32766, 32767, 32767, 32767, 2518, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2233, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2251, 32767, + 32767, 32767, 32767, 2255, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 2671, + 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 2672, 2673, 2289, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 2315, 32767, 2674, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 2327, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 2339, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 2359, 2360, 2361, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 2675, 32767, 32767, 2676, 32767, 32767, 32767, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2386, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 2412, 2413, 32767, 32767, 32767, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 2494, 2495, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, -1669, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32766, 32766, 32766, 2518, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 5362, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, + 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 5362, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32767, 32767, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32766, 32766, 32766, 32767, 1039, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32766, 32767, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 1040, 32767, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, + 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, + 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, + 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, + 32767, 32767, 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, + 32767, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, 249, + 32767, 250, 251, 252, 253, 32767, 255, 32767, 256, 257, 258, 259, 32767, 261, 262, 32767, 263, + 264, 265, 266, 267, 268, 269, 32767, 32767, 270, 271, 272, 273, 274, 32767, 275, 276, 277, 278, + 279, 32767, 32767, 32767, 32767, 281, 282, 283, 284, 285, 286, 32767, 288, 289, 290, 291, + 32767, 292, 293, 294, 295, 296, 297, 32767, 32767, 299, 300, 32767, 32767, 301, 32767, 32767, + 32767, 32767, 32767, 303, 304, 32767, 32767, 32766, 305, 306, 307, 308, 309, 310, 311, 32767, + 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, + 325, 326, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, + 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 32767, 32767, 347, 32767, 32767, 348, + 349, 350, 351, 352, 32767, 353, 32767, 354, 32767, 355, 32767, 32767, 32767, 358, 359, 360, + 361, 32767, 362, 32767, 363, 364, 365, 32767, 32767, 366, 32767, 367, 368, 369, 32767, 657, + 371, 372, 32767, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 32767, + 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, 32767, 32767, 32767, 399, 32767, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 32767, 32767, 32767, 419, 420, 32767, 32767, 422, 32767, 32767, 424, 425, 426, 32767, 32767, + 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, + 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, 32767, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, 32767, 32767, 32767, 463, 464, 32767, 465, + 32767, 466, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 473, 474, 475, 32767, 32767, + 476, 477, 32767, 479, 480, 32767, 482, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, + 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, + 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, 32767, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 32767, 535, 536, + 537, 538, 539, 540, 541, 32766, 542, 543, 544, 545, 546, 32767, 547, 548, 549, 550, 32767, 551, + 552, 553, 554, 555, 32767, 556, 557, 558, 559, 560, 32767, 562, 563, 564, 565, 32767, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 32767, 583, 584, + 32767, 32767, 32767, 32767, 32767, 585, 32767, 587, 588, 589, 590, 591, 592, 32767, 593, 594, + 595, 32767, 32767, 596, 597, 598, 599, 600, 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, + 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, 32767, 32767, 615, 616, 617, 618, 619, + 620, 621, 32767, 622, 32767, 624, 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, 630, + 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 32767, 32767, + 32767, 32767, 1242, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 254, 255, 1243, + 256, 257, 258, 1244, 260, 1245, 1246, 32767, 263, 264, 265, 266, 267, 268, 269, 1247, 1248, + 270, 271, 1249, 273, 1250, 32767, 275, 276, 277, 278, 1251, 32767, 1252, 32767, 32767, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, 32767, + 298, 299, 300, 1253, 1254, 6011, 1255, 1256, 1257, 1258, 1259, 303, 304, 32767, 32767, 32767, + 305, 306, 307, 308, 1260, 1261, 311, 1262, 312, 32767, 313, 314, 315, 316, 317, 318, 319, + 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 832, 327, 32767, 32767, 328, 32767, 329, + 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 1263, 342, 343, + 344, 345, 1264, 32767, 1265, 347, 1266, 32767, 348, 349, 350, 1267, 352, 32767, 353, 32767, + 354, 32767, 355, 356, 32767, 357, 358, 359, 360, 361, 32767, 362, 32767, 1268, 1269, 365, + 32767, 32767, 366, 32767, 367, 368, 369, 782, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 32767, 386, 387, 388, 389, 390, 391, 392, 1270, 32767, 1271, + 32767, 1272, 396, 32767, 397, 398, 399, 400, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, + 1281, 410, 1282, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 1283, 421, 32767, + 422, 423, 32767, 424, 425, 426, 1284, 1285, 427, 428, 429, 430, 1286, 32767, 431, 432, 433, + 434, 435, 436, 1287, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 1288, + 444, 445, 1289, 447, 1290, 449, 450, 451, 452, 453, 454, 455, 456, 457, 1291, 459, 1292, 460, + 461, 462, 32767, 1293, 463, 1294, 32767, 465, 1295, 1296, 467, 468, 469, 32767, 470, 471, 472, + 32767, 32767, 1297, 474, 475, 32767, 32767, 476, 477, 478, 479, 480, 481, 1298, 483, 484, 485, + 1299, 486, 1300, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 1301, 498, 499, 500, + 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 1302, 510, 511, 512, 32767, 513, + 1303, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 32767, 532, 533, 534, 535, 536, 537, 538, 539, 1304, 541, 32767, 542, 543, 544, 545, 546, + 716, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 1305, 556, 557, 558, 559, 560, 561, + 562, 563, 1306, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, + 579, 580, 1307, 582, 32767, 583, 584, 1308, 32767, 32767, 32767, 32767, 585, 586, 587, 588, + 589, 590, 591, 592, 32767, 593, 1310, 1311, 32767, 32767, 596, 597, 1312, 599, 1313, 1314, 601, + 602, 32767, 603, 604, 605, 32767, 32766, 607, 608, 609, 32767, 1315, 610, 611, 612, 613, 614, + 1316, 32767, 615, 616, 617, 618, 619, 620, 1317, 32767, 622, 623, 624, 625, 626, 627, 32767, + 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 1318, 634, 1319, 1320, 1321, + 1322, 639, 1323, 1324, 1325, 1326, 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 32767, 244, 245, 246, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, 249, + 32767, 250, 251, 252, 253, 32767, 255, 32767, 256, 257, 258, 259, 32767, 261, 262, 32767, 263, + 264, 265, 266, 267, 268, 269, 32767, 32767, 270, 271, 272, 273, 274, 32767, 275, 276, 277, 278, + 279, 32767, 32767, 32767, 32767, 281, 282, 283, 284, 285, 286, 32767, 288, 289, 290, 291, + 32767, 292, 293, 294, 295, 296, 297, 32767, 32767, 299, 300, 32767, 32767, 301, 32767, 32767, + 32767, 32767, 32767, 303, 304, 32767, 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 32767, + 312, 32767, 313, 314, 315, 316, 317, 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, + 325, 326, 327, 32767, 32767, 328, 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, + 32767, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 32767, 32767, 347, 32767, 32767, 348, + 349, 350, 351, 352, 32767, 353, 32767, 354, 32767, 355, 32767, 32767, 32767, 358, 359, 360, + 361, 32767, 362, 32767, 363, 364, 365, 32767, 32767, 366, 32767, 367, 368, 369, 32767, 657, + 371, 372, 32767, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 32767, 386, 32767, + 388, 389, 390, 391, 392, 393, 32767, 394, 32767, 395, 396, 32767, 32767, 32767, 399, 32767, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 32767, 32767, 32767, 419, 420, 32767, 32767, 422, 32767, 32767, 424, 425, 426, 32767, 32767, + 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, + 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, 32767, 448, 32766, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, 32767, 32767, 32767, 463, 464, 32767, 465, + 32767, 466, 467, 468, 469, 32767, 470, 471, 472, 32767, 32767, 473, 474, 475, 32767, 32767, + 476, 477, 32767, 479, 480, 32767, 482, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, + 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, 501, 502, 32767, 503, 504, 505, 506, + 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, 32767, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 32767, 532, 533, 32767, 535, 536, + 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, 546, 32767, 547, 548, 549, 550, 32767, 551, + 552, 553, 554, 555, 32767, 556, 557, 558, 559, 560, 32767, 562, 563, 564, 565, 32767, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 32767, 583, 584, + 32767, 32767, 32767, 32767, 32767, 585, 32767, 587, 588, 589, 590, 591, 592, 32767, 593, 594, + 595, 32767, 32767, 596, 597, 598, 599, 600, 32767, 601, 602, 32767, 603, 604, 605, 32767, 606, + 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, 32767, 32767, 615, 616, 617, 618, 619, + 620, 621, 32767, 622, 32767, 624, 625, 626, 627, 32767, 32767, 628, 32767, 32767, 629, 630, + 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, + 32766, 32767, 32767, 32767, 32766, 32766, 32767, 32767, 32767, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32767, 32767, 32766, + 32767, 32767, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32767, 32766, + 32767, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, + 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32767, 32766, + 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 6377, 32767, 32766, 32766, 32766, 32767, 32766, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32767, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32767, 32766, 32766, + 32766, 32766, 32766, -1918, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32766, + 32766, 32767, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32766, + 32766, 32766, 32767, 32766, 32767, 32766, 32766, 32767, 32767, 32767, 32767, 32767, 32766, + 32766, 32766, 32766, 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32767, 32766, 32767, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32767, + 32766, 32766, 32766, 32766, 32767, 32767, 32766, 32766, 32766, 32766, 32766, 32767, 32767, + 32766, 32766, 32766, 32766, 32767, 32766, 32766, 32767, 32766, 32766, 32766, 32766, 32766, + 32766, 32767, 32767, 32766, 32767, 32767, 32766, 32766, 32767, 32767, 32766, 32766, 32766, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32766, + 32766, 32766, 32766, 235, 236, 237, 238, 239, 240, 241, 242, 243, 32767, 244, 245, 246, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 247, 248, 249, 32767, 250, 251, 252, 253, 254, 255, + 1243, 256, 257, 258, 1244, 260, 1245, 1246, 32767, 263, 264, 265, 266, 267, 268, 269, 32767, + 32767, 270, 271, 1249, 273, 1250, 32767, 275, 276, 277, 278, 279, 32767, 280, 32767, 32767, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 32767, 292, 293, 294, 295, 296, 297, + 32767, 298, 299, 300, 32767, 32767, 301, 32767, 302, 32767, 32767, 32767, 303, 304, 32767, + 32767, 32767, 305, 306, 307, 308, 1260, 1261, 311, 32767, 312, 32767, 313, 314, 315, 316, 317, + 318, 319, 32767, 320, 321, 322, 323, 32767, 32767, 324, 325, 832, 327, 32767, 32767, 328, + 32767, 329, 330, 331, 332, 32767, 333, 32767, 334, 335, 336, 32767, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 32767, 1265, 347, 1266, 32767, 348, 349, 350, 1267, 352, 32767, 353, + 32767, 354, 32767, 355, 356, 32767, 357, 358, 359, 360, 361, 32767, 362, 32767, 363, 364, 365, + 32767, 32767, 366, 32767, 367, 368, 369, 782, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 32767, 386, 387, 388, 389, 390, 391, 392, 1270, 32767, 1271, + 32767, 1272, 396, 32767, 397, 398, 399, 400, 32766, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 32767, 32767, 32767, 419, 420, 421, 32767, 422, + 423, 32767, 424, 425, 426, 32767, 32767, 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, 444, + 445, 1289, 447, 1290, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 32767, 460, 461, + 462, 32767, 32767, 463, 464, 32767, 465, 1295, 1296, 467, 468, 469, 32767, 470, 471, 472, + 32767, 32767, 473, 474, 475, 32767, 32767, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 32767, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 32767, 503, 504, 505, 506, 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, + 1303, 515, 516, 517, 32767, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 32767, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 32767, 542, 543, 544, 545, 546, + 716, 547, 548, 549, 550, 32767, 551, 552, 553, 554, 555, 32767, 556, 557, 558, 559, 560, 561, + 562, 563, 1306, 565, 32767, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, + 579, 580, 581, 582, 32767, 583, 584, 32767, 32767, 32767, 32767, 32767, 585, 586, 587, 588, + 589, 590, 591, 592, 32767, 593, 1310, 1311, 32767, 32767, 596, 597, 598, 599, 600, 1314, 601, + 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 32767, 32767, 610, 611, 612, 613, 614, + 32767, 32767, 615, 616, 617, 618, 619, 620, 1317, 32767, 622, 623, 624, 625, 626, 627, 32767, + 32767, 628, 32767, 32767, 629, 630, 32767, 32767, 631, 632, 633, 1318, 634, 635, 636, 637, 638, + 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 1737, 244, 245, 246, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 247, 248, 249, 1745, 250, 251, + 252, 253, 254, 255, 32767, 256, 257, 258, 259, 260, 261, 262, 1746, 263, 264, 265, 266, 267, + 268, 269, 1747, 1748, 270, 271, 272, 273, 274, 1749, 275, 276, 277, 278, 279, 1750, 280, 32767, + 1751, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 1752, 292, 293, 294, 295, 296, + 297, 1753, 298, 299, 300, 1754, 1755, 301, 1756, 302, 1757, 1758, 1759, 303, 304, 32767, 32767, + 32766, 305, 306, 307, 308, 309, 310, 311, 1760, 312, 1761, 313, 314, 315, 316, 317, 318, 319, + 1762, 320, 321, 322, 323, 1763, 1764, 324, 325, 326, 327, 32767, 32767, 328, 1765, 329, 330, + 331, 332, 1766, 333, 32767, 334, 335, 336, 1767, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 32767, 1768, 347, 6405, 1769, 348, 349, 350, 351, 352, 1770, 353, 1771, 354, 32767, 355, + 356, 1772, 357, 358, 359, 360, 361, 1773, 362, 32767, 363, 364, 365, 1774, 32767, 366, 1775, + 367, 368, 369, 782, 1776, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 1777, 386, 387, 388, 389, 390, 391, 392, 393, 1778, 394, 1779, 395, 396, 1780, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 1781, 32767, 1782, 419, 420, 421, 32767, 422, 423, 1783, 424, 425, 426, 1784, 1785, 427, + 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 32767, + 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 455, 456, 457, 458, 459, 1786, 460, 461, 462, 32767, 32767, 463, 464, 32767, 465, 1787, + 466, 467, 468, 469, 1788, 470, 471, 472, 1789, 1790, 473, 474, 475, 1791, 1792, 476, 477, 478, + 479, 480, 481, 482, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, 491, 492, 493, 1793, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 1794, 503, 504, 505, 506, 507, 508, 509, 32767, + 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, 1795, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 1796, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 32766, 542, 543, 544, 545, 546, 716, 547, 548, 549, 550, 1797, 551, 552, 553, 554, 555, 1798, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 1799, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 1800, 583, 584, 1801, 32767, 32767, 32767, 1803, + 585, 586, 587, 588, 589, 590, 591, 592, 1804, 593, 594, 595, 1805, 1806, 596, 597, 598, 599, + 600, 1807, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, 1808, 1809, 610, 611, + 612, 613, 614, 1810, 1811, 615, 616, 617, 618, 619, 620, 621, 1812, 622, 623, 624, 625, 626, + 627, 1813, 1814, 628, 1815, 1816, 629, 630, 32767, 32767, 631, 632, 633, 32767, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 1737, 244, 245, 246, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 247, 248, 249, 1745, + 250, 251, 252, 253, 254, 255, 32767, 256, 257, 258, 259, 260, 261, 262, 1746, 263, 264, 265, + 266, 267, 268, 269, 1747, 1748, 270, 271, 272, 273, 274, 1749, 275, 276, 277, 278, 279, 1750, + 280, 32767, 1751, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 1752, 292, 293, 294, + 295, 296, 297, 1753, 298, 299, 300, 1754, 1755, 301, 1756, 302, 1757, 1758, 1759, 303, 304, + 32767, 32767, 32767, 305, 306, 307, 308, 309, 310, 311, 1760, 312, 1761, 313, 314, 315, 316, + 317, 318, 319, 1762, 320, 321, 322, 323, 1763, 1764, 324, 325, 326, 327, 32767, 32767, 328, + 1765, 329, 330, 331, 332, 1766, 333, 32767, 334, 335, 336, 1767, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 32767, 1768, 347, 32766, 1769, 348, 349, 350, 351, 352, 1770, 353, 1771, + 354, 32767, 355, 356, 1772, 357, 358, 359, 360, 361, 1773, 362, 32767, 363, 364, 365, 1774, + 32767, 366, 1775, 367, 368, 369, 782, 1776, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 1777, 386, 387, 388, 389, 390, 391, 392, 393, 1778, 394, 1779, 395, + 396, 1780, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 1781, 32767, 1782, 419, 420, 421, 32767, 422, 423, 1783, 424, 425, + 426, 1784, 1785, 427, 428, 429, 430, 32767, 32767, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, 32767, 32767, 32767, 32767, 32767, 442, 443, 32767, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 1786, 460, 461, 462, 32767, 32767, 463, 464, + 32767, 465, 1787, 466, 467, 468, 469, 1788, 470, 471, 472, 1789, 1790, 473, 474, 475, 1791, + 1792, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 32767, 486, 32767, 487, 488, 489, 490, + 491, 492, 493, 1793, 494, 495, 496, 497, 498, 499, 500, 501, 502, 1794, 503, 504, 505, 506, + 507, 508, 509, 32767, 32767, 510, 511, 512, 32767, 513, 514, 515, 516, 517, 1795, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 1796, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 32767, 542, 543, 544, 545, 546, 716, 547, 548, 549, 550, 1797, 551, 552, + 553, 554, 555, 1798, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 1799, 566, 567, 568, + 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 1800, 583, 584, 1801, + 32767, 32767, 32767, 1803, 585, 586, 587, 588, 589, 590, 591, 592, 1804, 593, 594, 595, 1805, + 1806, 596, 597, 598, 599, 600, 1807, 601, 602, 32767, 603, 604, 605, 32767, 606, 607, 608, 609, + 1808, 1809, 610, 611, 612, 613, 614, 1810, 1811, 615, 616, 617, 618, 619, 620, 621, 1812, 622, + 623, 624, 625, 626, 627, 1813, 1814, 628, 1815, 1816, 629, 630, 32767, 32767, 631, 632, 633, + 32767, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, +]; +pub(crate) static ACTION_TABLE_INDEX: [u32; 6473] = [ + 0, 1, 141, 635, 635, 4, 1169, 2, 1703, 2237, 3, 5, 2771, 3302, 3806, 4340, 6, 7, 3269, 1, 4340, + 56, 4874, 5408, 8, 4340, 9, 5942, 12, 6476, 6476, 6476, 7010, 7544, 4874, 4340, 8078, 11, 13, + 22, 8612, 9146, 9680, 10, 4340, 16, 10214, 10748, 11282, 14, 11816, 5942, 12350, 12884, 21, + 13418, 4340, 15, 27, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 13952, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 3208, 31, 41, 3230, 60, 23, 3263, 35, 35, 30, 1169, 4340, 4340, + 4340, 17, 4340, 19, 4340, 33, 1169, 14486, 15020, 20, 18, 15554, 16088, 24, 1169, 4340, 16622, + 1169, 4340, 4340, 16088, 4340, 16088, 4340, 29, 17156, 4340, 26, 4340, 4340, 17690, 16088, 24, + 47, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, + 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18758, 18758, 18224, + 18758, 18758, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18758, 18224, + 18758, 18224, 18224, 18224, 18224, 18758, 18758, 18224, 18224, 18224, 18224, 18224, 18224, + 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, + 18224, 18224, 18758, 18224, 18224, 18224, 18224, 18224, 18224, 18758, 18758, 18224, 18224, + 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, + 18758, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, + 18224, 18224, 18758, 18224, 18224, 18224, 18224, 18758, 18224, 18224, 18224, 18224, 18758, + 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18758, 18758, + 18224, 18224, 18224, 18224, 18224, 19292, 18224, 18224, 18224, 18224, 18224, 18224, 18224, + 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18758, 18224, 18224, + 18224, 18224, 18758, 18758, 18758, 18224, 18224, 18224, 18224, 18224, 18758, 18758, 18758, + 18758, 18758, 18758, 18758, 18758, 18758, 18758, 18758, 18224, 18224, 18224, 18224, 18224, + 18224, 18224, 18224, 18758, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, + 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18758, 18224, 18224, 18224, 18224, 18224, + 18224, 18224, 18224, 18758, 18224, 18758, 18224, 18224, 18224, 18224, 18224, 18224, 18224, + 18224, 18758, 18758, 18224, 18224, 18224, 18224, 18224, 18758, 18224, 18758, 18224, 18224, + 18224, 18224, 18224, 18224, 18758, 18224, 18224, 18224, 18224, 18224, 18758, 18224, 18224, + 18758, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, + 18224, 18224, 18758, 18224, 18758, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, + 18224, 18224, 18224, 18224, 18224, 18224, 18758, 18224, 18224, 18224, 18224, 18224, 18224, + 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, + 18224, 18224, 18224, 18224, 18224, 18224, 18758, 18224, 18224, 18224, 18224, 18224, 18224, + 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18758, 18224, 18224, + 18224, 18224, 18224, 18224, 18758, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, + 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18758, 18224, 18224, 18224, 18224, + 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18758, 18758, 18224, 18224, 18758, + 18224, 18758, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, + 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18758, 18224, 18758, 18224, 18224, 18224, + 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18224, 18758, 18758, 18758, 18758, + 18758, 18758, 18758, 18758, 18758, 18758, 18758, 18224, 18224, 18224, 18224, 2, 21, 42, 32, + 19826, 20360, 20894, 2, 20360, 2, 3235, 21427, 20360, 21942, 22476, 23010, 23508, 9, 30, 23988, + 76, 4340, 25, 4340, 21, 16088, 4340, 28, 4340, 19, 16088, 39, 44, 14486, 48, 24522, 34, 4340, + 4340, 14486, 25056, 16088, 25590, 4340, 4340, 72, 72, 26, 4340, 36, 95, 26124, 120, 13, 37, 36, + 3328, 2, 26658, 2, 52, 2, 2, 2, 2, 2, 27192, 27726, 90, 111, 111, 25, 28260, 38, 23988, 23988, + 16088, 28794, 19, 23988, 66, 28260, 29328, 29862, 18, 30396, 40, 23988, 28260, 23988, 29328, + 28260, 23988, 23988, 23988, 23988, 23988, 16088, 23988, 16088, 26, 45, 23988, 28794, 30930, + 23988, 24, 16088, 16088, 16088, 30, 65, 122, 31464, 21326, 2, 2, 2, 21362, 2, 2, 2, 2, 2, 2, 2, + 2, 115, 31998, 32532, 33066, 33600, 23988, 34134, 23988, 34668, 43, 35202, 35736, 43, 115, 2, + 4340, 2, 36270, 31998, 46, 3138, 70, 70, 70, 3, 54, 75, 70, 53, 2, 2, 2, 36804, 11816, 3184, + 49, 128, 61, 15, 61, 61, 15, 15, 37338, 37872, 38406, 38406, 38940, 15, 39474, 40008, 39474, + 40008, 40008, 40542, 40542, 41076, 41610, 42144, 39474, 42678, 39474, 39474, 50, 40008, 40542, + 39474, 43212, 39474, 43746, 44280, 44814, 15, 45348, 39474, 39474, 39474, 39474, 39474, 39474, + 39474, 39474, 45882, 39474, 46416, 39474, 46950, 42144, 2, 83, 57, 55, 40, 18, 21942, 165, + 23010, 2, 47463, 47470, 47538, 47606, 47681, 47463, 47463, 47902, 58, 3, 80, 269, 9, 94, 2, 68, + 48388, 48922, 132, 49456, 49990, 50506, 50992, 158, 51526, 187, 3206, 3094, 2, 47463, 2, 142, + 2, 170, 100, 186, 105, 47, 52060, 21352, 52594, 53128, 53662, 11816, 2, 2, 54196, 21942, 54730, + 55264, 55798, 3225, 3245, 64, 3225, 56332, 21942, 23010, 3300, 3300, 40, 3300, 191, 21357, + 21352, 23436, 21352, 74, 73, 73, 11816, 21, 101, 2, 212, 21, 437, 56847, 236, 21335, 224, 3067, + 4340, 572, 67, 57381, 47446, 21, 50482, 57847, 56306, 56306, 58314, 56306, 59, 130, 56306, + 58314, 58314, 58314, 69, 47886, 47680, 1563, 58848, 59382, 50479, 50479, 59916, 50479, 50479, + 50479, 50479, 50479, 50479, 50479, 50479, 50479, 50479, 50479, 21, 112, 3123, 60406, 51, 89, 3, + 47944, 3099, 181, 59, 23421, 50505, 3, 215, 60457, 60465, 294, 1507, 966, 21509, 60960, 4340, + 69, 61489, 60481, 1500, 264, 3, 3315, 181, 23446, 59, 23421, 61402, 60489, 4340, 3268, 85, 77, + 86, 3268, 3322, 2, 61921, 62455, 62989, 63523, 2199, 64057, 62, 64057, 152, 64591, 64057, 121, + 3, 1851, 1169, 21, 4340, 4340, 23988, 7544, 1169, 23988, 20, 65125, 1169, 23988, 1169, 23988, + 23988, 63, 7544, 4340, 4340, 23988, 4340, 2, 2, 49, 1018, 1018, 1018, 1018, 1018, 97, 4340, 71, + 7544, 1127, 137, 47439, 65659, 4340, 21407, 21416, 67, 16088, 72, 72, 47832, 56275, 72, 72, + 59382, 59916, 21, 60451, 3, 751, 47832, 3345, 79, 3419, 1322, 466, 968, 88, 342, 91, 78, 513, + 636, 66051, 47832, 18, 16088, 16088, 4340, 18, 4340, 66546, 1169, 19, 1169, 1169, 4340, 63, + 4340, 84, 338, 2, 2, 3295, 111, 67062, 67062, 111, 23988, 1745, 1824, 3089, 99, 21, 3193, 3093, + 21648, 3296, 1824, 23988, 67, 23988, 23476, 3512, 21413, 463, 61425, 811, 16088, 23988, 67548, + 68082, 213, 3513, 1824, 14486, 23515, 3512, 1345, 811, 23549, 3512, 2942, 1293, 1285, 2, 1667, + 63, 23570, 3296, 2353, 3240, 811, 23988, 21517, 3927, 21413, 21385, 4461, 60413, 89, 3, 2, + 55264, 2, 82, 68616, 62, 2, 21326, 31998, 23988, 4340, 31998, 4340, 31998, 4340, 31998, 4340, + 31998, 4340, 36270, 4340, 4340, 36270, 31998, 2, 4340, 4340, 333, 75, 4340, 75, 75, 75, 69150, + 69684, 14486, 75, 4340, 47485, 3188, 70218, 70218, 3181, 21, 339, 70752, 71286, 71820, 72354, + 72888, 21, 71820, 71820, 73422, 3251, 73956, 73956, 73956, 74490, 75024, 75558, 73956, 76092, + 76092, 70752, 76626, 77160, 70752, 70752, 77694, 78228, 78762, 79296, 79830, 80364, 80898, + 81432, 81966, 82500, 83034, 83568, 84102, 84636, 85170, 85704, 86238, 86772, 87306, 87840, + 88374, 55264, 88908, 71820, 89442, 55264, 55264, 89976, 70752, 76092, 90510, 91044, 91578, + 92112, 92646, 55264, 93180, 93714, 73956, 94248, 94782, 73956, 67021, 95316, 95850, 96384, + 96918, 70752, 113, 73956, 97452, 70752, 97986, 98520, 99054, 99588, 100122, 100656, 101190, + 101724, 102258, 284, 292, 292, 292, 292, 292, 292, 292, 292, 543, 292, 102792, 70752, 103326, + 70752, 70752, 98, 70752, 70752, 55264, 70752, 70752, 103860, 23472, 104297, 67021, 853, 70752, + 70752, 70752, 102258, 104808, 105342, 104808, 104808, 55264, 105876, 105876, 105876, 43, + 105876, 106410, 106410, 104808, 105876, 106944, 43, 93, 93, 105876, 43, 105876, 107478, 108012, + 43, 108546, 109080, 43, 109614, 39474, 110148, 110682, 39474, 39474, 111216, 111750, 39474, 9, + 1018, 2, 7544, 81, 14486, 112284, 62, 112818, 113352, 112284, 112818, 113352, 112284, 113886, + 2, 47463, 47463, 85, 4340, 63, 69150, 14486, 63, 2, 8612, 2, 27192, 3, 114295, 104292, 47463, + 231, 517, 1158, 56254, 3615, 2, 47463, 47463, 47463, 47463, 47463, 47463, 47463, 114786, 2920, + 2, 21386, 9, 3322, 92, 115320, 96, 115854, 2, 2, 85, 2, 4340, 52594, 52594, 53662, 21412, 62, + 116388, 116922, 117372, 234, 3225, 4340, 4340, 81, 2, 62, 1022, 1056, 2, 3224, 117808, 117808, + 128, 128, 55264, 128, 462, 3143, 118342, 118876, 23539, 50449, 47783, 47711, 50461, 50464, + 57813, 191, 21357, 11816, 4340, 11816, 119410, 188, 55264, 2, 103, 143, 143, 53, 119944, 21452, + 143, 119, 143, 53, 120478, 143, 143, 53, 87, 121012, 121012, 121012, 121546, 102, 143, 122080, + 121012, 121012, 23504, 2, 2, 2, 23504, 23593, 122614, 1611, 1026, 351, 143, 354, 785, 108, 2, + 1112, 123120, 123120, 53, 307, 123149, 4340, 67092, 66098, 3, 1563, 197, 47463, 47463, 104, + 110, 143, 4340, 143, 127, 1563, 573, 123629, 47463, 47463, 4340, 47463, 47463, 47463, 123081, + 123107, 104, 124163, 124610, 124671, 143, 160, 199, 4340, 125138, 125672, 107, 3, 331, 126206, + 7668, 285, 4340, 613, 117, 4340, 21, 143, 143, 118, 21, 23112, 108, 1590, 2, 1022, 1022, 104, + 126722, 569, 569, 393, 126722, 69, 126702, 126766, 174, 174, 127213, 23431, 143, 538, 127747, + 4340, 4340, 143, 143, 128281, 123107, 104, 128815, 128815, 143, 143, 129349, 106, 348, 143, + 129849, 129849, 23427, 348, 143, 143, 128281, 123107, 104, 4340, 143, 143, 4340, 43212, 1563, + 67046, 3312, 67046, 1563, 1563, 3484, 40, 143, 129815, 140, 23291, 3377, 67046, 1590, 47876, + 67089, 143, 143, 435, 2, 1704, 4340, 143, 143, 782, 426, 9, 2, 426, 2, 143, 426, 143, 549, 21, + 2, 2, 1489, 199, 11816, 107, 107, 794, 130357, 23291, 1590, 2, 143, 143, 21, 21, 4340, 4340, + 4340, 4340, 4340, 855, 116, 1098, 143, 1156, 697, 2090, 1022, 348, 130891, 143, 23427, 348, + 4340, 131425, 23291, 1590, 553, 909, 3268, 3268, 3268, 1189, 3268, 55264, 55264, 73956, 49, + 55264, 114, 129871, 1585, 1622, 3488, 18758, 18758, 18758, 18758, 18758, 18758, 18758, 18758, + 18758, 18758, 18758, 18758, 18758, 18758, 18758, 18758, 18758, 18758, 18758, 18758, 18758, + 18758, 18758, 18758, 18758, 18758, 18758, 18758, 18758, 18758, 18758, 18758, 18758, 18758, + 18758, 18758, 18758, 18758, 18758, 18758, 18758, 18758, 18758, 18758, 18758, 18758, 18758, + 18758, 18758, 18758, 18758, 18758, 18758, 18758, 18758, 18758, 18758, 18758, 18758, 18758, + 18758, 18758, 18758, 18758, 18758, 131959, 18758, 18758, 18758, 18758, 18758, 18758, 18758, + 18758, 18758, 18758, 18758, 18758, 18758, 18758, 131959, 132493, 18758, 18758, 18758, 18758, + 133012, 125, 63523, 21942, 23010, 133020, 133020, 133020, 152, 133020, 152, 152, 4340, 2, 4340, + 145, 7544, 145, 3, 145, 145, 1563, 59382, 59916, 145, 145, 145, 7544, 145, 145, 145, 3, 143, + 721, 372, 21, 81, 99, 4340, 111216, 2, 23504, 133506, 7544, 3, 99, 3519, 4340, 21350, 1004, + 60446, 980, 174, 2, 72, 747, 4340, 134040, 21, 2, 60446, 99, 14486, 3334, 99, 9, 979, 99, 3, 9, + 14486, 126, 4340, 4340, 4340, 4340, 866, 2, 130891, 138, 60446, 4340, 56343, 124668, 47506, 81, + 21447, 1658, 16088, 63, 134574, 135108, 21, 4340, 21, 21, 81, 7544, 1792, 24, 52, 52, 1282, 52, + 471, 52, 1169, 1022, 1169, 1022, 2, 1113, 7544, 4340, 21, 7544, 7544, 2, 23988, 1169, 1169, 2, + 14486, 14486, 23695, 3927, 1831, 174, 1901, 174, 127747, 127747, 2, 5529, 1169, 2, 14486, 1169, + 2, 4340, 2, 4340, 23988, 23988, 23988, 23988, 7544, 7544, 2, 14486, 130891, 99, 4340, 4340, 2, + 4340, 4340, 2, 4340, 4340, 234, 16088, 21326, 2, 4340, 2, 4340, 2, 4340, 2, 4340, 2, 4340, 2, + 2, 2, 4340, 2, 1235, 57912, 57912, 4340, 1235, 3201, 135642, 135642, 1010, 136176, 135642, + 21347, 135642, 136176, 136176, 135642, 135642, 4340, 135642, 135642, 143, 839, 75, 2280, 1334, + 11816, 2061, 1910, 136710, 136710, 137244, 7010, 55264, 137778, 70752, 70752, 138228, 404, + 55264, 55264, 21, 43, 43, 70752, 23381, 55264, 55264, 55264, 138711, 55264, 55264, 139245, + 55264, 55264, 55264, 55264, 55264, 55264, 43, 43, 139695, 139773, 211, 49, 140230, 55264, + 140764, 140764, 55264, 127747, 141298, 102258, 141832, 140230, 142366, 141298, 55264, 142900, + 1087, 21, 55264, 140, 143434, 55264, 92, 140, 55264, 92, 102258, 70752, 70752, 43, 143968, + 143968, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, + 67021, 67021, 67021, 144502, 67021, 111216, 67021, 67021, 67021, 67021, 67021, 126685, 67021, + 67021, 67021, 67021, 67021, 67021, 67021, 145036, 67021, 67021, 67021, 67021, 67021, 67021, + 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, + 67021, 67021, 67021, 67021, 145570, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, + 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, + 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 146104, + 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, + 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, + 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, + 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 146104, 67021, 67021, 67021, + 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, + 67021, 146104, 67021, 67021, 67021, 146104, 67021, 67021, 67021, 67021, 67021, 67021, 146638, + 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, + 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 139717, 147091, + 70752, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, + 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, + 146104, 67021, 147602, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 146104, + 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 146104, 67021, + 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, + 67021, 67021, 67021, 67021, 67021, 70752, 146104, 2265, 67021, 67021, 67021, 67021, 67021, + 67021, 67021, 67021, 67021, 67021, 67021, 67021, 148055, 67021, 67021, 144502, 67021, 67021, + 67021, 67021, 67021, 67021, 67021, 67021, 148566, 67021, 67021, 67021, 67021, 67021, 67021, + 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, + 67021, 67021, 67021, 67021, 67021, 67021, 146104, 146104, 67021, 67021, 67021, 67021, 67021, + 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, + 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, + 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, + 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 124647, 67021, 67021, 67021, + 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, + 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 146104, 146104, 67021, + 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, + 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 7544, 67021, 67021, 67021, 67021, + 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, + 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, + 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, 67021, + 67021, 67021, 67021, 67021, 2201, 55264, 2318, 67021, 67021, 179, 103860, 790, 149100, 21, + 149634, 150168, 47393, 48388, 61921, 70752, 70752, 150702, 55264, 234, 49, 104808, 104808, + 151236, 108012, 49, 419, 419, 49, 43, 1354, 49, 1624, 1039, 49, 571, 43, 176, 151770, 111216, + 39474, 1018, 152, 1379, 76, 1481, 4340, 3273, 4340, 4340, 23010, 47463, 47902, 5408, 74, 23755, + 69684, 23010, 2, 3, 152280, 152760, 129781, 129781, 2, 2, 2, 4340, 81, 47463, 47463, 47463, 14, + 47463, 47463, 47463, 47463, 47463, 47463, 1045, 47463, 47463, 153294, 153294, 47463, 47463, + 153810, 153817, 153810, 153810, 153810, 47463, 47463, 153817, 2, 49, 118, 118, 1293, 23010, + 154327, 55264, 1259, 154861, 4340, 146104, 21, 50444, 146104, 21, 55264, 143, 55264, 67053, + 3245, 1582, 1270, 23010, 4340, 1022, 104290, 21352, 57851, 66128, 155394, 104290, 155886, + 155886, 156420, 603, 133, 817, 60382, 60382, 50456, 56207, 153847, 156954, 156954, 61369, 1221, + 157473, 157481, 47404, 47404, 56256, 56256, 56256, 47404, 3116, 50464, 4340, 104328, 23539, + 47711, 2030, 23314, 47617, 174, 4340, 21378, 52060, 234, 2, 14486, 4340, 4340, 157968, 158502, + 40, 157968, 43212, 49, 157968, 1622, 159036, 159570, 3955, 1622, 1852, 160048, 160534, 14486, + 2, 4340, 4340, 14486, 4340, 4340, 121012, 14486, 119, 4340, 161068, 2, 121012, 2, 23593, + 161602, 162136, 939, 5408, 53, 9680, 224, 2, 21, 4340, 127, 2, 2, 16088, 1022, 127, 14486, + 4340, 4340, 55264, 127, 4340, 4340, 2, 2361, 143, 143, 2, 4340, 1729, 1169, 21, 7544, 1169, + 162670, 1169, 1169, 63, 7544, 4340, 4340, 3197, 11816, 163204, 23291, 1590, 127, 47463, 1107, + 47463, 14486, 47463, 4340, 3, 47463, 47463, 47463, 163738, 21460, 21308, 47463, 47463, 2, + 164272, 123081, 2, 3, 124610, 1621, 152, 14486, 14486, 4340, 133065, 21, 16088, 4340, 164806, + 133, 165340, 133, 1841, 1022, 1022, 3319, 7544, 165874, 4340, 166408, 4340, 4340, 85, 4340, + 166942, 16088, 16088, 1174, 1214, 85, 4340, 167476, 85, 1022, 285, 4340, 1022, 1022, 168010, + 14486, 4340, 3241, 111216, 1022, 25, 1022, 4340, 1022, 1355, 1022, 4340, 126781, 3, 126722, + 126722, 143, 199, 4340, 168544, 23291, 1590, 104, 4340, 4340, 211, 1692, 14486, 111216, 4340, + 3123, 3, 3242, 14486, 4340, 163738, 2, 3, 2413, 11816, 47535, 2413, 2193, 23328, 728, 50314, + 2193, 14486, 4340, 2, 2193, 4340, 169078, 2, 14486, 50468, 2, 14486, 4340, 163738, 2, 3, 59, + 14486, 4340, 169520, 67046, 67046, 2631, 1563, 67046, 67046, 67046, 67046, 67046, 4340, 4340, + 1563, 4340, 4340, 1563, 2057, 67089, 14486, 4340, 2625, 2625, 2, 188, 14486, 4340, 4340, 2752, + 4340, 2, 4340, 14486, 2240, 4340, 4340, 2, 2, 4340, 138314, 4340, 4340, 4340, 4340, 4340, 4340, + 14486, 4340, 2, 2, 21441, 2573, 1347, 1421, 2220, 4340, 1255, 4340, 16088, 9, 14486, 4340, + 4340, 9, 111216, 4340, 2775, 2, 779, 779, 779, 14486, 50468, 2, 147170, 4340, 4340, 4340, 143, + 143, 1741, 893, 3268, 3268, 3268, 1585, 1585, 73956, 1466, 55264, 55264, 169991, 49, 47360, + 131959, 170525, 152, 121, 2, 2, 435, 81, 435, 171059, 435, 435, 145, 174, 174, 435, 435, 435, + 24, 435, 435, 435, 4340, 2428, 3052, 3052, 2428, 1564, 55264, 7544, 4340, 2, 1855, 152, 2155, + 2, 61452, 111216, 4340, 21614, 7545, 99, 171593, 117, 129817, 63, 4340, 18, 4340, 23840, 770, + 3355, 132994, 129817, 172127, 3396, 57722, 5408, 3396, 3396, 3396, 3396, 3396, 3396, 3396, + 4340, 1368, 8, 8, 4340, 172661, 426, 126, 9, 21, 21, 21, 21, 21, 173195, 21, 779, 99, 129817, + 21, 99, 3396, 124668, 99, 23357, 171593, 4340, 117, 23172, 1744, 47662, 81, 23214, 9, 1561, 3, + 3135, 173729, 2, 21, 109, 124163, 155390, 174207, 3, 24, 3108, 3108, 117, 7579, 4340, 205, 205, + 63, 52, 3089, 1824, 81, 3093, 156, 3296, 1824, 3512, 21413, 811, 61425, 4340, 2, 4340, 4340, + 4340, 4340, 3513, 1824, 2, 3512, 811, 3512, 1293, 2, 24, 3296, 811, 779, 63, 3927, 21413, 4461, + 60413, 3, 1293, 2279, 56321, 47650, 2, 2, 2, 2, 2, 2, 2, 4340, 3, 1235, 174189, 69, 69, 69, 69, + 69, 2587, 3299, 67, 4340, 3365, 2587, 1563, 3404, 3860, 3922, 3365, 3365, 2587, 839, 839, 2587, + 3299, 174703, 40, 111216, 2, 21, 143, 21, 74, 47485, 1606, 1048, 1836, 1922, 1048, 2, 2, 15, + 234, 70752, 1425, 1787, 1959, 55264, 1978, 2052, 152295, 234, 55264, 49, 49, 74, 74, 74, 74, + 74, 74, 74, 74, 49, 74, 74, 234, 234, 175236, 2534, 7544, 175244, 2248, 3668, 49, 4641, 5709, + 211, 152302, 175488, 1867, 49, 47353, 47688, 155428, 23177, 211, 175496, 1559, 211, 234, 49, + 49, 92112, 55264, 73956, 175680, 175813, 49, 175951, 1913, 49, 49, 87840, 141832, 141832, + 176123, 61412, 153825, 141832, 49, 176608, 234, 177124, 49, 49, 152295, 177560, 55264, 177560, + 177560, 178010, 2200, 49, 174211, 151, 70752, 234, 111216, 950, 178085, 2260, 152, 55264, + 111216, 175813, 55264, 49, 70752, 70752, 140764, 67021, 70752, 419, 178521, 141832, 141832, + 70752, 179055, 179589, 179589, 179589, 180123, 87840, 70752, 70752, 74, 70752, 70752, 180657, + 1333, 1333, 1333, 1333, 70752, 57712, 70752, 70752, 70752, 1038, 181191, 179589, 181725, + 179589, 182259, 179589, 182793, 146104, 21, 146104, 143, 127747, 183327, 183861, 182259, 55264, + 183861, 183861, 70752, 149100, 21, 21, 21, 21, 21, 149634, 55264, 21, 70752, 842, 52060, 70752, + 184395, 184929, 185463, 185997, 186531, 187065, 187599, 132984, 160007, 188052, 188545, 189079, + 187599, 187599, 189613, 190147, 189613, 189613, 190681, 55264, 23548, 67021, 1585, 234, 105876, + 105876, 43, 191215, 105876, 105876, 191215, 990, 191749, 990, 105876, 39474, 39474, 39474, + 39474, 39474, 39474, 39474, 49, 39474, 151770, 7544, 81, 2, 14486, 2444, 2, 2, 2, 3, 1550, + 174703, 1293, 2115, 2, 1169, 4340, 7544, 1169, 20, 1169, 1169, 7544, 4340, 4340, 148035, + 155294, 4340, 192283, 192817, 193351, 155338, 155338, 152231, 152231, 56254, 1189, 43, 175850, + 193885, 52594, 3337, 3337, 2, 2, 194419, 23010, 117372, 21430, 21, 13, 21, 2, 1022, 55264, + 114368, 114368, 57804, 123087, 569, 569, 23336, 47417, 1221, 2307, 1992, 60382, 1171, 60436, + 55264, 194938, 1992, 194946, 1992, 66121, 66121, 61369, 117359, 50464, 136, 50464, 47404, + 47404, 150168, 4133, 1179, 195433, 1756, 21314, 21472, 4340, 150168, 21378, 4340, 47425, 47872, + 1571, 4304, 67053, 2, 2, 2, 157968, 159570, 195950, 56245, 159036, 3955, 159036, 3955, 195950, + 159570, 40, 56245, 195957, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 23593, 23593, 23593, 14486, 14486, 3, + 4340, 58, 3, 55264, 2101, 21444, 7947, 1293, 2, 2, 143, 2, 195964, 2, 2, 2, 2, 2, 14486, 4340, + 2, 27192, 307, 2, 7544, 2, 2, 59382, 59916, 2, 2, 2, 7544, 2, 2, 2, 4340, 1574, 143, 143, 4340, + 21359, 23418, 1445, 148134, 4340, 4340, 4340, 1587, 47463, 47463, 2, 2, 127, 2, 1670, 159570, + 124610, 2, 811, 1734, 143, 1590, 55264, 196467, 1022, 3627, 4340, 21, 21, 99, 2000, 36, 21, + 50590, 123129, 21556, 188, 56191, 2, 1022, 197, 1022, 1022, 1022, 1022, 23426, 8199, 23857, + 8199, 4340, 4340, 4340, 4340, 197, 1022, 1022, 1022, 1022, 197, 85, 1022, 197001, 197535, + 198069, 2303, 152, 152, 9, 2462, 1022, 2, 1022, 1022, 1022, 36, 1022, 2323, 152, 3400, 198603, + 1022, 1022, 1022, 1022, 1022, 1670, 14486, 4340, 160033, 4340, 4340, 4340, 3, 2415, 21572, + 7544, 127213, 23431, 2, 2447, 152, 3426, 2, 4340, 143, 14486, 2895, 2, 2, 2, 1670, 23328, 53, + 128815, 4383, 4383, 56280, 2, 2, 1868, 2, 87, 1513, 60446, 60446, 2380, 1513, 14486, 1369, + 23427, 2, 2, 2, 1670, 143, 2, 2, 143, 23291, 1590, 47876, 67046, 67046, 2, 67046, 67046, 2, + 67046, 2, 2, 1438, 2, 2, 2, 1022, 2, 1022, 4456, 4456, 2, 2, 2, 4456, 1936, 199137, 23291, + 1590, 2, 2381, 3832, 143, 2, 143, 2, 2, 2, 1647, 1647, 1647, 143, 143, 53, 143, 143, 53, 2, + 143, 53, 143, 53, 143, 104, 8199, 7544, 138, 9, 1928, 47483, 8199, 2, 2, 143, 2, 143, 2447, 2, + 116, 116, 1022, 4340, 2, 199671, 23291, 1590, 2, 143, 2, 14486, 4340, 3268, 3268, 3268, 55264, + 49, 49, 49, 129871, 129871, 55264, 1622, 189613, 200121, 990, 2, 2, 2, 2, 7544, 2, 200557, 145, + 2, 2, 435, 4340, 4340, 2, 2, 2, 4340, 2, 2, 2, 145, 2463, 3060, 3060, 1740, 1740, 1740, 175496, + 49, 2349, 111216, 132994, 201091, 61532, 2508, 21416, 3519, 27192, 4340, 27192, 3519, 7545, + 3011, 4340, 4340, 49, 2493, 152, 152, 152, 152, 4340, 14486, 1938, 14486, 43, 60446, 60446, + 372, 2, 4340, 1658, 1775, 21355, 2240, 2, 79, 3419, 3334, 3523, 2438, 466, 124, 88, 55264, + 2779, 2880, 2880, 3805, 4340, 3487, 2, 2, 2, 2, 2020, 49, 2593, 152, 2, 4340, 63, 4340, 4340, + 4340, 4340, 2444, 49, 201625, 56288, 4340, 4340, 4105, 21, 81, 99, 12, 4239, 143, 99, 11816, + 202159, 2614, 152, 2, 7579, 176029, 2979, 3683, 152, 9, 27192, 202693, 63, 176029, 4761, + 174207, 176029, 176029, 4761, 5173, 4340, 3108, 2233, 2233, 2233, 2859, 2697, 2233, 3096, 63, + 63, 12, 2, 7544, 21, 152, 3035, 152, 2, 2, 3927, 174, 1293, 174, 1293, 2, 2, 2, 2, 4340, 2, + 4340, 130891, 2, 2, 4340, 2, 99, 57912, 3, 53, 53, 53, 53, 53, 4340, 2587, 4010, 4219, 4340, + 4340, 14486, 21524, 60467, 60467, 14486, 4193, 4727, 2726, 21, 11816, 779, 1048, 1048, 1048, + 1048, 1865, 1865, 3427, 38406, 70752, 1833, 70752, 203143, 55264, 2052, 123, 7544, 73956, + 175496, 73956, 73956, 55264, 73956, 55264, 73956, 70752, 1906, 124613, 47703, 1679, 1679, 49, + 114362, 1559, 73956, 3, 55264, 3, 1559, 40, 4656, 55264, 55264, 55264, 73956, 73956, 3, 55264, + 3, 3310, 3310, 55264, 73956, 49, 55264, 73956, 73956, 73956, 102258, 203188, 3964, 73956, + 55264, 91578, 55264, 73956, 73956, 211, 203201, 203201, 142366, 141832, 141832, 141832, 141832, + 141832, 3428, 141832, 141832, 141832, 141832, 21, 141832, 141832, 141832, 141832, 7544, 141832, + 203406, 73956, 203891, 55264, 55264, 204425, 73956, 73956, 7544, 49, 3134, 49, 49, 55264, + 73956, 174211, 73956, 3183, 204959, 49, 111216, 55264, 73956, 205409, 3210, 119, 152295, 284, + 55264, 57856, 57856, 55264, 234, 55264, 70752, 70752, 70752, 70752, 74, 70752, 70752, 70752, + 70752, 70752, 70752, 1038, 181191, 70752, 70752, 55264, 141832, 141832, 205866, 70752, 206400, + 55264, 49, 206934, 87840, 70752, 1934, 70752, 211, 142366, 55264, 207468, 70752, 70752, 55264, + 187599, 189079, 187599, 187599, 208002, 21391, 47911, 21, 208536, 4340, 195924, 188052, 208989, + 150168, 2053, 2637, 2053, 150168, 2637, 7384, 2637, 2053, 209001, 52060, 188052, 188052, + 209135, 188052, 188052, 1973, 209628, 210162, 210681, 40, 23594, 49, 105876, 990, 105876, + 105876, 70752, 191749, 39474, 152, 2, 2272, 2, 69150, 48123, 2, 14486, 145, 145, 145, 145, + 1563, 145, 145, 145, 145, 145, 211172, 211172, 211172, 211172, 155338, 4340, 4340, 4340, + 147111, 147111, 3322, 49, 47463, 153810, 2, 21, 76, 66128, 21, 114368, 123087, 2682, 66128, + 1992, 1992, 2346, 66052, 1903, 60382, 66052, 50464, 47810, 211706, 5201, 21472, 3220, 152, + 4691, 1894, 1894, 1894, 131, 5201, 50294, 23466, 152, 3267, 52060, 4133, 55264, 5372, 3364, + 212223, 3955, 3955, 1622, 159570, 372, 21402, 21402, 47585, 21705, 63, 47585, 175496, 2, 23676, + 4340, 2, 4340, 2, 2, 307, 81, 174, 174, 24, 21359, 56278, 21359, 21359, 14486, 4340, 21359, + 21359, 2, 212643, 23291, 1590, 2, 143, 2, 47463, 1587, 4340, 152, 40, 199, 4340, 175496, 99, + 2460, 3319, 21, 172661, 4340, 4340, 4340, 50590, 4340, 4340, 56250, 198603, 133117, 138301, + 50659, 1438, 2230, 4210, 21, 50458, 175230, 1022, 7722, 7937, 1022, 372, 1022, 4340, 1022, + 4340, 1022, 1022, 1022, 1022, 1022, 1022, 1022, 197, 152, 152, 152, 168010, 1022, 152, 152, + 4340, 111216, 157449, 111216, 201091, 1022, 1022, 1022, 4340, 2, 2609, 213177, 23291, 1590, 2, + 143, 2, 1670, 143, 143, 53, 3989, 2788, 143, 143, 53, 49, 49, 49, 111216, 2, 213711, 59, 4340, + 23189, 21, 3538, 4340, 4383, 214245, 2413, 21, 2413, 2413, 4383, 3457, 284, 60446, 60446, + 60446, 9, 129826, 9, 4340, 4340, 4340, 4340, 2752, 2, 2, 2, 40, 199, 4340, 4340, 4340, 4340, + 61344, 1179, 2, 2, 2, 4340, 4340, 63, 3318, 2663, 14486, 4340, 4340, 14486, 4340, 4340, 4340, + 4340, 4340, 4340, 4340, 3, 1022, 23845, 99, 7691, 124, 372, 4340, 1022, 4340, 9, 2, 1445, 4340, + 4340, 4340, 4340, 2, 2, 73956, 73956, 73956, 1466, 131959, 49, 145, 435, 2, 145, 145, 145, 435, + 157425, 157425, 67130, 157425, 176041, 4340, 21444, 2424, 4340, 2, 152, 5764, 152, 47411, 6298, + 152, 152, 152, 152, 152, 152, 21, 4340, 4340, 141832, 124775, 167, 2638, 3051, 124775, 133, + 4340, 194913, 124775, 124775, 124775, 2511, 4340, 3519, 3519, 3519, 3519, 21, 2, 2757, 4030, + 2289, 214779, 3309, 129826, 14486, 14486, 129826, 60446, 7544, 21, 1744, 47658, 23596, 7649, 2, + 14486, 3334, 16088, 979, 67, 3, 175496, 172661, 150168, 4456, 2, 49, 3497, 152, 2, 4340, 3011, + 130891, 1235, 124668, 81, 57660, 5065, 2, 66974, 215313, 60431, 3309, 60725, 21, 2130, 3677, + 47755, 12, 4340, 2444, 3756, 9, 4340, 2460, 201091, 1775, 2, 2762, 159570, 176029, 55264, + 55264, 176029, 203225, 176029, 21, 174207, 176029, 372, 215829, 162, 55264, 2, 2, 176029, 2, + 143, 143, 143, 143, 143, 21, 4340, 4340, 7579, 4340, 2, 49, 156, 156, 2, 2, 4340, 2, 4340, 2, + 1293, 2, 779, 1293, 4340, 4340, 4340, 4340, 4340, 4340, 2587, 1563, 3860, 3922, 60467, 174703, + 2278, 21369, 23852, 111216, 2, 4727, 4727, 4727, 4727, 3682, 4340, 1048, 1048, 1787, 55264, + 209102, 70752, 49, 73956, 209106, 210687, 175314, 216339, 216873, 73956, 123133, 49, 127, 3668, + 127, 49, 55264, 1559, 215833, 47688, 47688, 127, 47688, 127, 1559, 1559, 217389, 73956, 217393, + 217902, 49, 175496, 218418, 55264, 218425, 234, 203201, 217406, 217406, 217406, 61414, 74, + 153825, 3394, 217406, 217406, 218552, 217406, 218730, 218552, 218730, 218730, 153825, 203406, + 218785, 218923, 219018, 49, 73956, 73956, 73956, 3684, 219454, 73956, 57789, 3528, 143434, + 73956, 152, 152, 2003, 2003, 49, 55264, 73956, 219988, 3705, 43212, 70752, 70752, 220522, + 55264, 55264, 221056, 70752, 221590, 55264, 70752, 70752, 221056, 57856, 57856, 55264, 55264, + 222124, 222658, 55264, 175496, 49, 55264, 70752, 234, 175496, 28919, 43337, 211, 188052, + 188052, 188052, 188052, 187599, 223192, 5194, 950, 223645, 4340, 160007, 150168, 2053, 2053, + 60282, 2053, 150168, 2053, 2053, 150168, 1169, 188052, 4340, 223657, 4340, 209628, 224168, + 55264, 47568, 224702, 70752, 2, 124, 74, 1293, 23755, 435, 435, 435, 435, 145, 435, 435, 435, + 435, 435, 4340, 4340, 4340, 4340, 155338, 155338, 155338, 175639, 175639, 9, 49, 127747, 66128, + 66128, 66128, 66052, 1903, 66052, 225218, 210694, 48388, 1018, 4340, 42929, 4960, 12, 4175, + 1018, 55264, 4340, 1571, 47872, 5201, 225222, 56245, 372, 3364, 160048, 3173, 3173, 3173, 3173, + 3173, 3173, 143, 5408, 74, 21444, 61405, 3246, 2360, 3054, 61405, 1293, 2, 7544, 4340, 4340, + 4340, 56308, 2, 2, 4340, 4340, 4340, 4340, 47463, 2, 14486, 4340, 2, 50590, 4340, 55264, 3724, + 152, 2062, 225711, 226245, 1235, 1022, 1235, 56250, 50590, 1235, 133117, 133117, 198603, + 147131, 153822, 2752, 167, 6118, 7715, 127, 1022, 1563, 372, 81, 167, 127, 2752, 1022, 1022, + 1022, 7937, 114266, 7937, 7544, 8199, 8199, 1022, 152, 1022, 152, 4016, 152, 2, 40, 199, 4340, + 4340, 4340, 4340, 4340, 14486, 4340, 4340, 43, 43, 7544, 4296, 1022, 43, 43, 4830, 1022, 14486, + 4340, 4340, 23431, 23431, 23431, 152, 152, 152, 152, 152, 152, 152, 152, 143, 2, 55264, 71, 2, + 2, 2413, 2413, 2413, 55264, 2413, 60446, 60446, 60446, 60446, 60446, 2, 2, 2, 2, 2, 14486, + 4340, 143, 2, 143, 2, 3386, 2, 2, 4340, 4340, 4340, 4340, 99, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 1670, 4340, 48158, 9, 9, 9, 7544, 8199, 1293, 2, 2, 2, 143, 2, 2, 49, 145, 435, 2, 435, 435, + 435, 2, 66159, 2468, 160201, 2468, 2, 23676, 2885, 2527, 2, 55264, 124775, 28965, 174214, + 47910, 135, 81, 124775, 124775, 124775, 124775, 160039, 169581, 160039, 226779, 226779, 1169, + 3344, 3769, 69, 21614, 111216, 171593, 117, 4564, 21, 779, 152, 2381, 129826, 129826, 174, + 4340, 81, 23305, 23305, 23305, 23305, 23305, 23305, 14486, 2895, 3396, 21596, 4581, 8, 4340, + 172661, 2880, 2880, 5295, 2, 2, 9, 152, 2, 779, 1744, 3396, 23357, 171593, 4340, 117, 2444, + 60431, 3872, 152, 152, 152, 138308, 40, 65807, 65894, 2381, 56360, 56360, 147, 3556, 23133, 81, + 2, 3556, 74, 3, 21, 152, 1571, 152, 4340, 152, 227229, 227229, 9, 227641, 4761, 7544, 63, + 228137, 223713, 4340, 3561, 4042, 5651, 2233, 6432, 1293, 3035, 152, 1293, 1293, 2, 4340, 2, + 2587, 2587, 2587, 2587, 2587, 4010, 60467, 58, 3396, 4727, 74, 73, 228172, 73956, 4340, 70752, + 70752, 73956, 3203, 3203, 73956, 8379, 49, 55264, 23637, 4639, 4639, 49, 49, 124617, 57812, + 73956, 73956, 55264, 203188, 218425, 141832, 74, 153825, 55264, 55264, 55264, 73956, 228340, + 3915, 234, 228776, 228776, 3252, 2927, 3528, 49, 49, 73956, 175496, 229226, 227229, 2306, 49, + 3548, 221056, 221056, 221590, 55264, 55264, 221056, 221056, 55264, 221056, 70752, 229706, + 203188, 70752, 230240, 40, 21319, 55264, 188052, 152, 4011, 4571, 230774, 129, 4340, 1582, + 188052, 55264, 21, 188052, 188052, 150168, 60282, 21, 4031, 4340, 4031, 201625, 231308, 231827, + 4340, 21577, 70752, 70752, 2, 174703, 2, 1293, 2, 2, 2, 2, 2, 2, 435, 2, 2, 2, 2, 2, 155338, + 155338, 155338, 155338, 160012, 160012, 47463, 67029, 49, 66052, 4340, 5524, 152, 1756, 21472, + 21472, 172661, 108, 2678, 228263, 152, 55264, 1018, 160048, 56245, 174703, 3, 174703, 23676, + 61405, 61405, 61405, 61405, 61405, 2, 49, 2, 2, 2, 2, 143, 2, 2, 3371, 1910, 56250, 1022, + 175496, 172661, 66988, 232318, 4340, 4329, 232852, 4329, 2336, 123128, 123128, 147131, 147131, + 124775, 1022, 81, 99, 99, 1022, 7937, 21, 7937, 1022, 1022, 8034, 1022, 1022, 201091, 14486, + 4340, 2, 143, 2, 2, 2, 2, 2, 2, 233386, 127747, 1022, 3989, 21, 21, 2788, 2, 2, 2, 4340, + 175496, 21, 175496, 3371, 1910, 4340, 4340, 21, 21, 21, 3845, 4983, 3290, 5451, 63, 4340, + 50437, 2, 2, 9267, 1022, 2, 4340, 73956, 435, 2, 2, 2, 2, 111216, 2, 66344, 126725, 9, 1169, + 4382, 4382, 175496, 127, 124775, 47910, 3329, 152262, 157514, 152262, 21, 4340, 2511, 21, 4071, + 152, 49, 4340, 60543, 60543, 4340, 4340, 779, 4340, 1235, 12, 23189, 3538, 3334, 99, 171593, + 124, 3011, 2779, 152, 4340, 81, 4340, 2444, 49, 56288, 4340, 2, 65807, 215313, 129822, 1445, + 67057, 4340, 47646, 60431, 4537, 4340, 81, 4096, 3396, 12, 81, 4340, 11816, 172661, 23566, + 176029, 159036, 152, 4118, 157968, 2, 218919, 372, 233920, 3782, 2458, 2458, 49, 2967, 5178, + 4340, 5599, 2, 2, 2, 2, 2, 21579, 4340, 203273, 73956, 157453, 175544, 81, 55264, 4475, 3, 3, + 3, 3, 3, 3, 3, 49, 73956, 73956, 126644, 56260, 231833, 218425, 233955, 141832, 231840, 234046, + 234179, 55264, 55264, 73956, 73956, 2927, 73956, 152, 3232, 73956, 49, 2653, 49, 221056, + 221056, 221056, 70752, 55264, 6125, 234354, 223192, 190147, 21, 152, 141832, 4406, 152, 153851, + 4340, 1582, 195924, 234538, 4340, 188052, 188052, 55264, 188052, 4031, 188052, 234750, 234994, + 235485, 236004, 194829, 212116, 212116, 212116, 212116, 212116, 236094, 138188, 67053, 81, + 6441, 48123, 2, 2, 21352, 21352, 3591, 66263, 114368, 8405, 1894, 4523, 152, 4340, 3493, 3352, + 47392, 47824, 3078, 3078, 225222, 5985, 47585, 10869, 2, 4340, 199, 2, 225711, 152, 21, 114132, + 3599, 152, 236586, 50454, 50455, 4340, 117168, 117168, 174272, 118, 1022, 1022, 55264, 8568, + 152, 3371, 1910, 4340, 7544, 1022, 47440, 28875, 1022, 7544, 7544, 1022, 2, 2279, 55264, 66986, + 199, 2, 2, 2, 55264, 55264, 237120, 23988, 23988, 4340, 4340, 4340, 4340, 4340, 2, 8199, 2, 2, + 4717, 152, 237654, 129932, 129932, 3893, 9, 3893, 4293, 129932, 129932, 3893, 3893, 129932, + 3930, 175449, 4382, 3420, 2, 2, 176038, 177091, 55264, 36, 124775, 4951, 177094, 124775, 49, + 3769, 1169, 9, 111216, 124775, 2289, 3309, 4030, 4030, 4030, 4030, 4030, 4030, 4030, 4030, + 4030, 4030, 4030, 4030, 4726, 3011, 4340, 4043, 1744, 23133, 2, 4340, 67, 2, 150168, 3011, 12, + 5065, 2, 66974, 60431, 3309, 47646, 152, 124736, 21, 28893, 65807, 2528, 50478, 2528, 47657, + 71, 58, 71, 2444, 2, 2460, 4523, 4340, 5800, 152, 227641, 174207, 7544, 2, 2478, 2478, 2478, + 2678, 2062, 2062, 2, 3429, 3429, 23636, 28801, 3854, 4547, 3092, 7719, 2480, 4340, 2, 2, 3011, + 55264, 111216, 234947, 3, 3, 2847, 73956, 6147, 4419, 104296, 3, 49, 55264, 233955, 2260, 234, + 3279, 49, 49, 73956, 47941, 238188, 238188, 238188, 49, 4340, 3864, 152, 209628, 4340, 114325, + 230774, 211, 111216, 4750, 152, 238722, 195924, 1582, 234, 188052, 55264, 21, 212116, 55264, + 231308, 4340, 21, 3727, 1293, 2862, 2862, 4340, 3245, 12, 172661, 3782, 2678, 8405, 188, 4432, + 2835, 1018, 47824, 55264, 2566, 2566, 2, 74, 2, 2, 4340, 4329, 4340, 66136, 127747, 5079, + 50454, 61445, 61428, 61428, 7538, 175496, 55264, 1022, 199, 2, 2, 1379, 4108, 8733, 8733, 1379, + 1379, 175496, 4340, 234, 234, 152, 4752, 43, 5829, 3290, 5829, 2, 5451, 1022, 111216, 4488, + 152, 239256, 152, 152, 152, 152, 9, 129932, 9, 127, 12350, 12350, 9, 9, 2, 2, 2, 2, 2360, + 124775, 117395, 124775, 175496, 199, 188084, 188084, 188084, 4322, 124775, 188156, 200155, 2, + 21, 152, 4837, 152, 779, 2381, 61344, 2, 3011, 4340, 81, 81, 3396, 5128, 4340, 5295, 2, 23133, + 2444, 60431, 65807, 2381, 28893, 67057, 172661, 50113, 47646, 50478, 50478, 58, 3396, 58, 2, + 21, 61427, 5800, 8470, 152, 4761, 218919, 228137, 65975, 2527, 2527, 28801, 239790, 239790, + 240324, 3888, 4205, 21, 2980, 2, 2, 2, 175544, 175544, 152, 67, 4443, 4444, 114469, 67, 114469, + 3145, 3145, 56260, 4364, 73956, 240774, 152, 73956, 49, 241210, 241729, 241733, 241737, 4215, + 4829, 4215, 4215, 70752, 4460, 129, 4031, 152, 143434, 152, 4340, 209628, 1973, 56261, 241946, + 225178, 234, 231308, 234, 212116, 67053, 67053, 15, 2, 40, 40, 3702, 21472, 152, 2678, 52060, + 4995, 242069, 4645, 3656, 174703, 1910, 1235, 66339, 49, 4329, 5079, 61453, 50590, 50590, 1022, + 1022, 195964, 4340, 1169, 40, 10335, 1022, 1022, 1022, 1022, 1022, 2, 1910, 143, 61344, 237120, + 61344, 152, 4340, 152, 152, 4897, 152, 129932, 129932, 12350, 129932, 152373, 129932, 152373, + 129932, 129932, 124775, 129916, 2706, 4340, 7309, 7309, 3416, 210678, 1171, 210678, 49, 9, + 3769, 4340, 779, 2, 81, 3989, 12, 171593, 3011, 3396, 2, 65807, 47646, 60431, 50113, 55264, + 5024, 152, 242520, 243054, 3396, 28893, 3396, 3396, 172661, 21, 57987, 3408, 2, 66826, 66826, + 114185, 1169, 1169, 4340, 3939, 3939, 3939, 55264, 2511, 114469, 67, 114469, 67, 114469, + 114469, 104294, 114441, 49, 104298, 152, 148, 5033, 5033, 5033, 5033, 5033, 4914, 49, 49, 49, + 21, 152, 950, 152, 152, 141832, 141832, 127, 57848, 141832, 56261, 57848, 4340, 188052, 21, + 188052, 212116, 5026, 212116, 4340, 4340, 4340, 50371, 3766, 47824, 3301, 188, 47824, 47824, + 3301, 6297, 47824, 10869, 2, 124409, 50590, 152, 4329, 61442, 56250, 56250, 1910, 1022, 4340, + 2, 21, 152, 2, 239256, 152, 129932, 152373, 124775, 124775, 215803, 188084, 144, 188084, 4682, + 188084, 188084, 2, 152, 3011, 4340, 4296, 23133, 2, 47646, 28893, 65807, 3396, 175496, 172661, + 65894, 243588, 243588, 50113, 4523, 172661, 60379, 285, 117133, 2, 2, 2, 1018, 1018, 1018, + 1018, 1018, 4845, 5084, 5098, 28801, 28801, 175496, 1169, 114469, 114469, 3250, 3250, 73956, 3, + 244122, 285, 49, 3287, 49, 244656, 129, 148073, 148073, 57848, 148073, 57848, 188052, 55264, + 212116, 3702, 3702, 4517, 8405, 4432, 4432, 47824, 52060, 47824, 1179, 4340, 1756, 21, 47824, + 2, 56250, 50590, 2, 10335, 55264, 152, 188084, 215815, 215815, 2, 3011, 3396, 28893, 50113, + 47646, 242520, 152, 152, 152, 3396, 61427, 152, 5102, 56181, 3092, 4146, 4197, 4197, 66053, + 4566, 143, 74, 2980, 21, 3213, 3213, 2847, 4829, 49, 49, 245190, 5164, 152, 238722, 4340, + 175496, 4340, 4340, 245724, 4340, 50402, 47824, 3220, 1894, 55264, 56250, 234, 188084, 188084, + 2, 50113, 3396, 28893, 243588, 57987, 172661, 66978, 47409, 2980, 2, 117133, 2458, 2458, + 246258, 123249, 123249, 152, 9, 9, 244656, 23637, 1973, 139699, 4750, 188052, 117272, 117272, + 5556, 4836, 135, 3245, 4294, 1179, 234, 61344, 3396, 50113, 152, 60379, 152, 3396, 2511, 4197, + 2062, 2062, 152, 5260, 152, 152, 152, 152, 4458, 152, 49, 152, 126737, 9, 132945, 148069, + 209628, 55264, 245724, 1756, 47824, 47824, 47824, 3396, 56181, 1169, 2527, 2527, 246792, 3396, + 4340, 21, 209628, 104298, 148049, 123313, 132945, 1585, 174, 1894, 47409, 21, 1169, 1169, 152, + 129, 244656, 152, 104298, 123313, 49, 4340, 1179, 3396, 246258, 49, 49, 21, 5164, 152, 104298, + 284, 3245, 47824, 5260, 244656, 152, 152, 3396, 5164, 152, +]; +pub(crate) static ACTION_DEF_RULE_TABLE: [i16; 6473] = [ + -1727, -1466, 232, -1555, -1554, -1466, 648, -275, 657, -1566, 665, -1466, -443, -1123, 707, + 657, 714, 716, 754, -1466, 657, -1727, 789, 799, 804, 657, 716, -1740, 57, 813, 813, 813, + -1747, 847, 789, 657, 866, 868, 869, -1263, 872, 877, 882, -1466, 657, 889, -1747, 901, 909, + 911, 912, -1740, 918, -1568, 923, 924, 657, 0, 929, -8, -9, -44, -79, -80, -37, -36, -97, -62, + -23, -70, -132, -131, -133, -49, -45, -87, -32, -34, -46, -50, -72, -74, -39, -52, -63, -109, + -71, -30, -69, -75, -95, -57, -18, -19, -58, -20, -59, -21, -60, -105, -81, -98, -42, -68, -29, + -51, -77, -78, -11, -53, -85, -17, -64, -65, -67, -90, -91, -92, -115, -93, -127, -48, -124, + -102, -103, -121, -104, -122, -15, -106, -61, -22, -118, -117, -119, -88, -54, -89, -76, -96, + -116, -33, -120, -24, -25, -27, -28, -26, -66, -35, -73, -38, -94, -123, -113, -108, -128, + -126, -10, -134, -110, -82, -13, -14, -99, -12, -31, -56, -16, -41, -40, -55, -47, -130, -43, + -1566, -101, -114, -100, -83, -107, -86, -111, -129, -112, -84, -125, -1691, -1690, -1751, + -1694, -1726, 944, -1706, -1465, -1464, -1479, 648, 657, 657, 657, 954, 657, 956, 657, 959, + 648, 967, 975, 977, 978, 993, 999, -671, 648, 657, 1003, 648, 657, 657, 1009, 657, 1012, 657, + 1016, 1018, 657, 1021, 657, 657, 1025, 1028, 1030, -1476, -2478, -2479, -2480, -2481, -2482, + -2483, -2484, -2485, -2486, -2487, -2488, -2489, -2490, -2491, -2492, -2493, -2494, -2495, + -2496, -2868, -2497, -2498, -2499, -2805, -2806, -2869, -2807, -2808, -2500, -2501, -2502, + -2503, -2504, -2505, -2506, -2507, -2508, -2810, -2509, -2809, -2510, -2511, -2512, -2513, + -2811, -2870, -2514, -2515, -2516, -2517, -2518, -2519, -2871, -2520, -2521, -2522, -2523, + -2524, -2525, -2526, -2527, -2528, -2529, -2872, -2530, -2531, -2532, -2873, -2533, -2534, + -2536, -2535, -2537, -2538, -2812, -2813, -2539, -2540, -2541, -2542, -2543, -2544, -2545, + -2546, -2547, -2548, -2549, -2550, -2551, -2552, -2553, -2554, -2555, -2556, -2557, -2558, + -2559, -2560, -2561, -2562, -2563, -2564, -2565, -2566, -2567, -2568, -2814, -2569, -2570, + -2571, -2572, -2815, -2573, -2574, -2575, -2576, -2816, -2577, -2578, -2579, -2580, -2874, + -2875, -2581, -2582, -2583, -2584, -2585, -2817, -2818, -2586, -2587, -2588, -2589, -2590, + -2461, -2591, -2592, -2876, -2593, -2594, -2595, -2596, -2597, -2598, -2599, -2600, -2601, + -2602, -2603, -2604, -2605, -2877, -2819, -2606, -2607, -2608, -2609, -2821, -2822, -2820, + -2610, -2878, -2879, -2611, -2880, -2823, -2824, -2825, -2826, -2827, -2828, -2829, -2830, + -2831, -2832, -2833, -2612, -2613, -2614, -2615, -2616, -2617, -2618, -2619, -2834, -2881, + -2620, -2882, -2621, -2622, -2623, -2624, -2626, -2625, -2627, -2628, -2629, -2630, -2631, + -2632, -2633, -2835, -2634, -2635, -2636, -2637, -2638, -2639, -2641, -2640, -2836, -2883, + -2837, -2642, -2643, -2644, -2645, -2646, -2647, -2648, -2649, -2838, -2839, -2650, -2651, + -2652, -2884, -2653, -2840, -2654, -2841, -2655, -2656, -2657, -2658, -2659, -2660, -2661, + -2662, -2663, -2664, -2665, -2885, -2842, -2666, -2886, -2843, -2667, -2668, -2669, -2670, + -2671, -2672, -2673, -2674, -2675, -2676, -2677, -2678, -2679, -2680, -2844, -2681, -2845, + -2682, -2683, -2684, -2685, -2686, -2687, -2688, -2689, -2690, -2691, -2692, -2693, -2694, + -2695, -2846, -2696, -2697, -2698, -2700, -2701, -2699, -2702, -2703, -2704, -2705, -2706, + -2707, -2708, -2709, -2710, -2711, -2712, -2713, -2714, -2887, -2715, -2716, -2717, -2718, + -2719, -2847, -2720, -2721, -2722, -2723, -2724, -2725, -2726, -2727, -2728, -2729, -2730, + -2731, -2732, -2733, -2734, -2735, -2848, -2736, -2737, -2738, -2888, -2739, -2740, -2849, + -2741, -2742, -2743, -2744, -2745, -2746, -2747, -2748, -2749, -2750, -2751, -2752, -2753, + -2754, -2755, -2756, -2850, -2757, -2758, -2759, -2760, -2889, -2761, -2762, -2763, -2764, + -2765, -2766, -2767, -2851, -2852, -2768, -2769, -2853, -2770, -2854, -2771, -2772, -2774, + -2773, -2775, -2776, -2777, -2778, -2779, -2780, -2781, -2782, -2783, -2784, -2785, -2786, + -2787, -2788, -2855, -2789, -2856, -2790, -2890, -2791, -2792, -2793, -2794, -2795, -2796, + -2797, -2798, -2799, -2800, -2857, -2858, -2859, -2860, -2861, -2862, -2863, -2864, -2865, + -2866, -2867, -2801, -2802, -2803, -2804, -145, 1038, 1040, -2423, -2462, -2463, -2466, -413, + -2461, -412, -1680, -2420, -2462, 1043, -1565, -1544, 1068, 716, -1479, -442, -1727, 657, 1082, + 657, 1084, 1085, 657, -889, 657, 1089, 1090, 1093, 1095, 967, 1099, 1101, 1103, 657, 657, 967, + 1107, 1110, -139, 657, 657, -467, -466, 1117, 657, -1095, -472, 1119, 1124, 1125, 1126, 1127, + -662, -1607, -2682, -1605, -1681, -276, -279, -280, -277, -278, 966, -2444, -1235, -1236, + -1238, 1144, 1145, 1148, -929, -930, 1150, 1152, 1155, -943, 1157, 1158, 1161, -927, 1165, + 1168, 1171, -949, 1172, -946, 1174, 1176, -950, -947, -924, -948, -931, 1178, -923, 1180, 1182, + 1148, -951, 1184, 1187, -925, 1189, 1190, 1193, 1196, -1479, -1604, 699, 1202, -1727, -1588, + -1589, -1590, -1566, -1578, -1591, -1583, -1585, -1584, -1586, -1587, -1582, -2480, -1019, + -1019, -1019, -1019, -1016, -2443, -1017, -1019, 782, -1019, -1019, 782, -2703, -998, 657, + -1000, -2445, -1019, 1225, -2488, -552, -552, -552, 1231, 1233, -1028, -552, 1235, -1447, + -1488, -2422, -1739, 912, -1703, 1239, 55, -2458, -4, -2334, -2457, -5, -6, -1746, -1744, + -1748, -1749, -2407, -3, -1950, -1979, -1957, -1979, -1979, -1946, -1946, -2554, -1959, -2464, + -1948, -1984, -1947, -2004, 1370, -1979, -1946, -1951, 847, -1949, -1987, -1987, -1974, -2, + -1929, -1930, -1931, -1932, -1960, -1961, -1933, -1966, -1967, -1971, -1934, -2001, -1937, + -1946, -2465, -999, -1446, -2768, 1398, 1400, 1401, 1043, 1407, -2722, -1456, -260, -2734, + -2851, -2768, -259, -254, -255, -226, 1415, 1416, 1417, -552, 716, -1479, -1454, 1422, 1326, + -2407, -2507, -2524, -2623, -251, -2715, -2724, -2734, -2851, -2768, -2801, -202, -212, -207, + 1449, -269, -2734, -2851, -2768, -265, -1476, 1454, -1707, -1857, -1856, -2416, 912, -1449, + -1448, -1567, 1043, -1570, 1326, -2698, -1711, -1714, 1466, -1712, -1727, 1043, -1577, -1743, + -1743, 1478, -1743, 1483, -1695, -1703, -1698, -1702, 1493, 1494, 1495, 912, 1498, 1500, -1450, + 1503, 1504, 1509, -954, 1513, -1491, -1080, 1537, 657, 1543, 1545, 1546, 1565, 1571, -1132, + -1131, -2450, -2451, -2467, -2452, 1574, 1541, -2449, -2468, -2469, -2470, 1576, -2592, 1596, + 1604, 1608, 657, -2256, -2259, 657, -2261, -2258, -2260, -2257, -2252, -2262, -2249, -2255, + -2251, -2254, -2253, 1612, 1615, -1230, -2250, 1616, 1617, 1618, 1621, 1628, -174, 1631, -149, + 1638, 1641, 1643, -2592, 1659, 1665, -2592, 1671, 1681, 874, 657, 1685, -2592, 1691, 1697, + 1701, 1702, 1708, -174, -2628, 1713, -149, -2592, 1718, 657, -1470, 1721, 1722, 1724, -1472, + -1475, -1462, 1731, 1816, 1326, -2332, -2424, -1559, 1827, -1558, -1552, -1562, -1557, -1547, + 1837, -2416, 648, 1839, 657, 657, -937, 847, 648, -927, 1844, 1846, 648, -938, 648, -939, -940, + 1850, 847, 657, 657, -936, 657, -1460, -1452, 1855, -1596, -1598, -1597, -1599, -1595, -552, + 657, 1858, 847, -2592, 1862, -149, -1530, 657, -2592, -149, 1870, 1871, -471, -470, -149, + -2448, -469, -468, 657, 657, 1862, -1122, 1879, -1205, -149, -2592, 1885, -195, -2592, -731, + -2592, 1466, -138, 1892, 1893, 1898, -843, -2628, -149, 1904, 1905, 1907, 657, 1911, 657, -141, + 648, 1916, 648, 648, 657, 1920, 657, -661, 214, -1608, -1606, 1928, -1239, -253, -252, -1237, + -941, -2592, -1164, -144, 1934, 1935, -2592, -1511, -2592, -144, -958, -942, 1941, -928, -2592, + -144, -1128, -2592, -2453, -184, 1947, -926, 1949, 1951, 1953, -144, -1232, 967, -2592, -144, + -2592, -180, -2592, -144, -2592, -144, -2592, -676, 1968, 1969, -2592, -144, -2592, -2628, + -182, -945, -2592, -144, -952, -2592, -144, -2418, 1981, 1982, -1463, 1326, -1600, 1984, -2855, + 1985, -1580, -1727, -1019, -1018, 657, -1019, 657, -1019, 657, -1019, 657, -1019, 657, -2447, + 657, 657, -2446, -1019, -1001, 657, 657, 2004, -1033, 657, -1032, -1031, -1030, 2020, 799, 967, + -1034, 657, -1861, -1635, -1693, -1692, 2030, 2033, 2034, -2428, -2806, -2807, -2808, 1326, + 2039, -2810, -2809, -2811, -2870, -2137, -2123, -2132, -2138, -2124, -2126, -2133, -2812, + -2813, -2072, -2814, -2815, -2441, -2426, -2816, -2817, -2818, -2821, -2822, -2820, -2823, + -2824, -2825, -2826, -2827, -2828, -2829, -2830, -2831, -2833, -2834, -2128, -2130, 1326, + -2835, 1326, -2836, -2837, -2839, 1326, 1326, -2840, -2442, -2841, -2661, -2843, -2263, -2334, + -2844, 1326, -2846, -2847, -2134, -2849, -2850, -2135, -2413, -2851, -2852, -2853, -2854, + -2440, 2079, -2136, -2856, -2429, -2858, -2859, -2860, -2861, -2863, -2864, -2865, -2866, + -2101, 2090, -1938, -1939, -1962, -1963, -1940, -1968, -1969, -1941, 2093, -1942, -2412, -2005, + -2208, -2100, -2118, 2573, -2106, -2107, 1326, -2099, -2095, -2210, -1814, -2406, -2408, 2581, + -2096, -2425, -2427, -2324, -1978, -1965, -1972, -1973, 1326, -1955, -1954, -1953, 782, -1952, + -1979, -1979, -1977, -1956, -1929, 782, 2592, 2593, -1983, 782, -1981, -1925, -1921, 782, + -1990, -1991, 782, -1992, -1989, -2002, -1988, -1935, -1993, 1816, -1946, -1943, 716, -1444, + -1459, 847, 2610, 967, -141, 2613, -1261, -1258, -141, -1260, -1259, -141, -141, -1455, -258, + -256, 2617, 657, 2619, 2020, 967, 2622, -1461, 2623, -1453, 966, 2626, -1729, -1729, -215, + -271, 2631, -272, -2414, -2734, -203, -250, -218, -249, -220, -219, -217, -216, 2636, -2509, + -204, 2642, 716, -205, 2649, 2652, 2657, 2658, -268, -266, 2660, -1451, 657, -1859, -1858, + -2417, -963, 2665, -1569, -1566, -2273, 2679, -1713, 657, 657, 2682, -7, 2683, -1574, -1576, + -1550, -1572, -1741, -1742, 55, 55, 1326, 55, 2693, 2699, 2700, 2704, -1801, -1759, -1760, + -1762, -1798, -1802, -1810, 1483, -1699, 912, 657, 912, -1863, 2727, 1326, -1477, 2729, 2730, + 2731, 2732, 2739, -1163, 2748, 2749, 2750, 2751, -955, 2752, 2753, 2754, 2755, -1499, -1497, + -1500, -1501, 2757, 2758, 2759, -1502, -1503, -1491, -262, -1510, -1507, -1490, -1492, -1505, + 2769, 2774, 2779, 2780, 2782, 2785, 2786, -1522, 2790, -188, -189, 2792, -688, 2802, 657, + -2592, 2808, 2810, 1604, 2812, -1173, -1180, -1331, 2813, 2814, 657, 2816, 2817, 1604, 2820, + 2823, -1174, -1172, 657, -1175, -264, -1185, -1212, -1215, 2830, 2831, -1130, -1133, 2834, + 2835, 2836, 657, 2845, -1322, 2853, 2854, 2857, -1322, 2864, 2865, 657, 2868, 2869, 657, 2871, + 2872, 2873, 2874, 2875, 2881, 2883, -287, -289, -302, -368, 2885, -653, 2886, 2887, 2888, -656, + 2889, -2592, 2892, 2895, 2896, 2897, -1234, 2899, 2901, 993, 657, 657, 2905, 2906, 2907, -1215, + 2909, 2912, 2912, 2919, 2920, 2912, 2923, 2924, 2926, -147, -148, -153, 2924, 2929, 2930, 2931, + -1215, 2933, 657, 2935, 2936, 657, 847, 1604, -637, -652, -640, 1604, 1604, 2946, 2947, 2948, + -648, 2950, 2951, -149, -650, -292, -627, -633, 2955, 2956, 2957, -738, -737, 657, 2961, 2962, + 2964, 2965, 716, -1420, 2967, -1419, 2968, 2969, 2970, 2971, 1862, -1520, -1519, 1449, 2974, + 912, 2976, 2977, 2868, -1322, 2981, -281, -283, 2982, 2983, 2875, 2875, 657, 657, 657, 657, + 657, 2992, 2993, 2995, 2996, 2999, 3001, -405, -406, 2924, 3004, 3007, -153, 2924, 657, -1322, + 3013, -294, 3015, 3018, -1471, -1468, -1469, 1034, -1474, 1326, 1326, -2109, 3023, 1326, 3026, + -2277, 3027, -2275, -2423, -2891, -2892, -2893, -2894, -2895, -2896, -2897, -2898, -2899, + -2900, -2901, -2902, -2903, -2904, -2905, -2906, -2907, -2908, -2909, -2910, -2911, -2912, + -2913, -2914, -2915, -2916, -2917, -2918, -2919, -2920, -2921, -2922, -2923, -2924, -2925, + -2926, -2927, -2928, -2929, -2471, -2931, -2932, -2933, -2930, -2934, -2935, -2936, -2937, + -2938, -2939, -2940, -2941, -2942, -2943, -2944, -2945, -2946, -2947, -2948, -2949, -2950, + -2951, -2952, -2953, -2954, -2327, -2955, -2956, -2957, -2958, -2959, -2960, -2961, -2962, + -2963, -2964, -2965, -2966, -2967, -2968, -2326, -2421, -2472, -2473, -2474, -2475, 3030, 3031, + -2333, 1043, -1542, -238, -239, -237, -1560, -240, -1561, -1556, 657, -1543, 657, 3036, 847, + 3038, 3039, 3040, 3041, 1604, 657, 657, 3045, 3046, 3047, 847, 3049, 3050, 3051, 3052, 3053, + 3055, 3057, 3058, 3059, 3060, 657, 1816, -851, -1491, -1529, 847, 3067, 3068, -681, 657, -2592, + 3073, -151, 676, 3076, -841, -472, 3078, 657, 3080, 1862, -1396, -151, 3084, 967, -191, 3095, + 716, 1665, 3099, 3100, 716, 967, 3103, 657, 657, 657, 657, 3110, -842, 3004, 3112, -151, 657, + -2592, -630, -2592, 3119, -552, -552, 3125, 3128, -140, 3129, 3132, 657, 3136, 3136, 3139, 847, + 3143, 3145, -1685, -1684, 3147, -1686, 3149, -1683, 648, -142, 648, -143, -1222, -1247, 847, + 657, 3154, 847, 847, -919, -944, 648, 648, -1216, 967, 967, -2592, -144, -2592, 3164, -2592, + 3166, 993, 993, -1224, -144, 648, -1218, 967, 648, -1220, 657, -1422, 657, -935, -933, -932, + -934, 847, 847, -917, 967, 3004, 3179, 657, 657, -912, 657, 657, -914, 657, 657, 3186, 3187, + -1727, -1579, 657, -1009, 657, -1013, 657, -1004, 657, -1010, 657, -1005, -1002, -1003, 657, + -1008, 3197, -553, -555, 657, 3199, 3204, -2536, -2553, 3208, -2581, -2616, -2617, -2671, + -2688, -2718, -2724, -2730, 657, -2761, -2773, 3222, -1039, -1029, -1077, 3227, 912, 3234, + -1645, -2459, -2460, -2335, -1747, 1326, 3240, -2104, -2105, 2677, 3244, 1326, 1326, 3249, 782, + 782, -2103, 3259, 1326, 1326, 1326, 3267, 1326, 1326, 3267, 1326, 1326, 1326, 1326, 1326, 1326, + 782, 782, -2101, 3290, 3291, 3292, -2011, 1326, -2028, -2029, 1326, 993, 1326, -2097, 3303, + -2010, 3308, 1326, 1326, 3317, 3322, 29, 1326, 3325, 3303, 1326, 2649, 3331, 1326, 2649, -2102, + -2437, -2434, 782, -2001, -2001, -2969, -2970, -2971, -2972, -2973, -2974, -2975, -2976, -2977, + -2978, -2979, -2980, -2981, -2982, -2983, -2984, -2985, 1816, -2986, -2987, -2988, -2989, + -2990, -2991, -2992, -2993, -2994, -2995, -2996, -2997, -2998, -2337, -3000, -3001, -3002, + -3003, -3004, -3005, -3006, -3007, -3008, -3009, -3010, -3011, -3012, -3013, -3014, -3015, + -3016, -3017, -3018, -3019, -3020, -3021, -3022, -3023, -3024, -3025, -3026, -3027, -3028, + -3029, -3030, -3031, -3032, -3033, -3034, -3035, -3036, -3037, -3038, -3039, -3040, -3041, + -3042, -3043, -3044, -3045, -3046, -3048, -3049, -3047, -3050, -3051, -3052, -3053, -3054, + -3055, -3056, -2256, -3058, -3057, -3059, -3060, -3061, -3062, -3063, -3064, -3065, -3066, + -3067, -3068, -3069, -3070, -3071, -3072, -3073, -3074, -3075, -3076, -3077, -3078, -3079, + -3080, -3081, -3082, -3083, -3084, -3085, -3086, -3087, -3088, -3089, -3090, -3091, -3092, + -3093, -3094, -3095, -3096, -3097, -3098, -3099, -3100, -3101, -3102, -3103, -3104, -2259, + -3105, -3106, -3107, -3108, -3109, -3110, -3111, -3112, -3113, -3114, -3115, -3116, -3117, + -3118, -3119, -3120, -3121, -2261, -3122, -3123, -3124, -2258, -3125, -3126, -3127, -2476, + -3128, -3129, -3130, -3131, -3132, -3133, -3134, -3136, -3137, -3138, -3139, -3140, -3141, + -3142, -3143, -3144, -3145, -3146, -3147, -3148, -3149, -3150, -3151, -3153, -3154, -3152, + -3155, -3135, -3156, -2043, -3157, -3158, -3159, -3160, -3161, -3162, -3163, -3164, -3165, + -3166, -3167, -3168, -3169, -3170, -3171, -3172, -3173, -3174, -3175, -3176, -3177, -3178, + -3179, -3180, -3181, -2260, -3182, -3183, -3184, -3185, -3186, -3187, -3188, -3189, -3191, + -3190, -3192, -2257, -3193, -3194, -3195, -3196, -3197, -3198, -3199, -3200, -3201, -3202, + -3203, -2252, -3205, -3204, -3206, -3207, -3208, -3209, -3210, -3211, -3212, -3213, -3214, + -3215, -3216, -3217, -3218, -3219, -3220, -3221, -3222, -2045, -2262, 3377, -3223, -3225, + -3226, -3224, -3227, -3228, -3229, -3230, -3231, -3232, -3233, -3234, -3235, -3236, -3237, + -3238, -3239, -3240, -3242, -3241, -3243, -3244, -3245, -3246, -2263, -3247, -3248, -3249, + -3250, -3251, -3252, -3253, -3254, -3255, -3256, -3257, -3258, -3259, -3260, -3261, -3262, + -3263, -3264, -3265, -3266, -3267, -3268, -3269, -3270, -3271, -2255, -2251, -3272, -3273, + -3274, -3275, -3276, -3277, -3278, -3279, -3281, -3282, -3283, -3280, -3284, -3285, -3286, + -3287, -3288, -3289, -3290, -3291, -3292, -3293, -3294, -3295, -3296, -3297, -3298, -3299, + -3300, -3301, -3302, -3303, -3304, -3305, -3306, -3307, -3308, -3309, -3310, -3311, -3312, + -3313, -3314, -3315, -3316, -3317, -3318, -3319, -3320, -3321, -3322, -3323, -3324, -3325, + -3326, -3327, -3328, -3329, -3330, -3331, -3332, -3333, -3334, -3335, -3336, -3337, -3338, + -3339, -3340, -3341, -3342, -3343, -3344, -3345, -3346, -3347, -3348, -3349, -3350, -3351, + -2254, -2253, -3352, -3353, -3354, -3355, -3356, -3357, -3358, -3359, -3360, -3361, -3362, + -3363, -3364, -3365, -3366, -3367, -3368, -3369, -3370, -3371, -3372, -3373, 847, -3375, -3374, + -3376, -3377, -3378, -3379, -3380, -3381, -3382, -3383, -3384, -3385, -3386, -3387, -3388, + -3389, -3390, -3391, -3392, -3394, -3393, -3395, -3396, -3397, -3398, -3399, -3400, -3401, + -3402, -3403, -3404, -3405, -3406, -3408, -3409, -3410, -3411, -3412, -3413, -3414, -3415, + -3416, -3417, -3418, -3407, -3419, -3420, -2267, 1326, 3389, -2411, -2477, 3391, -2210, 3394, + -2025, 3396, -2218, 3404, -1879, 1326, 1731, -2432, -2430, -2325, 1326, 3423, 3424, -1975, + -1976, -1926, -1922, 3426, 3427, 3428, 3429, 782, 3431, 3433, 3435, 3437, 3439, 1388, 782, + 3442, -956, 1816, -1944, -1445, -2282, 3445, -1727, 3447, 657, -1262, 657, 657, -137, -257, + -227, 799, 3454, -1077, 799, -2722, -1458, -994, 3465, 3473, -1814, -1814, -273, -274, -270, + 657, 2638, -223, -222, -221, 3479, -247, -243, -248, -242, -214, -246, 3480, -241, -225, -2194, + -2193, -224, -211, -232, -209, -228, -230, -231, -213, -210, -208, -267, 3483, 3484, 3485, + -144, -1577, -1564, 1326, 3340, -2337, 657, -2271, 3350, 3365, -2269, 3378, 1326, 3382, 1326, + -1811, -1715, 3491, 3493, -1577, 657, -1573, -1710, -1709, -1752, -1753, -1114, -1708, -1781, + -1782, 3505, 3509, 3510, 3511, -1807, -1805, -1772, -1763, -1771, 3513, 3513, -1769, 3518, + -1773, -2005, -1800, -1697, -1757, -1758, -1761, -1696, 2699, -1803, 657, -1648, -1801, -1762, + -1632, 3530, -1610, 3534, 657, -1864, 3536, 3541, -1478, 967, 657, 657, -1145, -1143, 3546, + -1144, 847, 3548, -1147, -1156, 2737, 2739, -1142, -1161, 3556, -1150, -1148, 967, -1518, 657, + 657, 967, 657, 657, -1498, 967, 3565, 657, -2761, -261, -1501, -1506, -1493, -1504, 3568, 3572, + 799, 3574, 3575, -1079, -1078, 3577, 657, 3579, -1525, -546, 3580, -370, 3582, 967, 657, 657, + 1326, 3587, 657, 657, -837, -834, 3592, 3593, -833, 657, -686, 648, 3598, 847, 648, 3602, 648, + 648, 3606, 847, 657, 657, 3614, 912, -1322, 3621, -300, 3622, -1182, 3624, -1181, 967, -1186, + 657, 3627, -1183, -1178, -1179, -2724, -2734, -2768, -263, -1184, -1214, 2823, -1213, -1209, + 3629, -1125, 3631, -1126, 967, 967, 657, 3635, 3637, 3638, 657, -2565, 3643, -2592, 3645, 3646, + -308, -332, -537, 847, -1321, 657, 782, 657, 657, 3655, 657, 3658, 3660, 3662, 3665, 3667, + 3668, 657, 3671, 3673, -354, 3674, 657, -357, -356, 3678, 967, 657, 3689, 1816, -362, 3694, + -340, 657, -341, 3697, -361, 657, 1689, 3700, -655, -654, 3701, 3702, 657, -1322, 3706, -296, + 3707, 657, 657, 3710, 3712, 967, 1816, 657, -1231, 3718, -764, 967, 657, -2724, -1210, 3725, + -1405, 912, -2760, -1406, -1409, -552, 1456, -552, -1411, 967, 657, -1408, -1410, 657, 1431, + -177, 967, -172, -176, 967, 657, -2724, -1211, 3748, 3749, 967, 657, 3753, -635, -636, -651, + 1604, -641, -642, -638, -643, -644, 657, 657, 1604, 657, 657, 1604, 2946, -634, 967, 657, -733, + -732, -736, 3765, 967, 657, 657, 3769, 657, -1414, 657, 967, -1205, 657, 657, -1413, -1421, + 657, 3780, 657, 657, 657, 657, 657, 657, 967, 657, -1265, -1264, 3796, 3799, 3802, 3804, 3805, + 657, 3809, 657, 3812, 716, 967, 657, 657, 716, 1816, 657, 3822, -179, -751, 3824, -750, 967, + -173, -178, 3827, 657, 657, 657, 3832, 3833, 3835, 3836, -236, -1467, -1473, 3837, 3837, -2115, + 934, 1326, 1326, 3843, 3845, -1750, -2328, 1326, -1553, -1547, -1546, -1545, 3849, 3852, 3849, + 3854, 3849, 3849, 3858, 3859, 3860, 3849, 3849, 3849, 3864, 3849, 3849, 3849, 657, -419, -416, + -417, -419, 3873, 1326, 847, 657, -853, 3879, -856, -859, -1489, -499, 1816, 657, -678, -711, + 3891, 3892, 3899, -186, 3906, 657, 3908, 657, -766, 3912, -1205, -1204, -146, 657, -195, -473, + 799, -194, -196, -198, -199, -200, -197, -201, 657, -730, -734, 3920, 657, 3922, 3927, -674, + 716, 1862, 1862, 1862, 1862, 3933, 657, 1862, 3938, 3939, -171, 3940, 3941, -625, -629, 3942, + 3943, 3892, 657, 3948, -591, 3951, -2592, 3954, -552, 716, 3957, 3958, -136, 3959, -840, 1862, + 3963, 3964, -1167, -1167, 3978, 3979, -780, -779, 3980, 3984, 657, 3988, 3989, 3990, -1682, + -144, -1165, 3992, -1512, 3994, -144, -959, -144, -1129, -185, -2454, 657, -921, 657, 657, 657, + 657, -144, -1233, -909, -144, -181, -144, -144, -677, 4008, -144, -183, 4010, 4011, -144, -953, + -144, -2419, 4014, -144, -1603, -2592, -552, -1581, -1006, -1015, -1014, -1012, -1011, -1007, + 657, -1026, 4018, -551, 4019, 4020, 4021, 4022, 4023, -1047, -1048, 4024, 657, -1044, -1049, + 1604, -1051, -1035, -1037, -1045, -1046, -1052, -1041, -1040, -1053, -1054, 4030, 4034, 1816, + -1066, -745, 4038, 4039, 4040, -1862, 4042, -1642, 4044, 4046, 4047, -1644, -1633, -2456, 4048, + -2286, 4049, -2287, 4051, 1326, 4053, -2317, 4056, 4057, 1326, 4059, 4060, -2294, -2295, -2291, + -2296, -2293, 4061, -2297, -2292, 4062, 4063, -2298, 4064, 4065, -2372, 4070, 847, -2101, + -2372, -2400, 4074, -2399, -2405, 4081, -2277, -2005, 4084, 4085, -2396, -2390, 4082, -2396, + 4091, 4092, 3267, 4094, 4095, 4096, 4097, -2334, 1326, -2178, 4101, 4102, 4103, -2277, 3837, + 4105, 4106, 1326, 3303, 3303, -2847, 4126, -2073, 3303, 4129, -2244, 4130, -2277, 4134, 4135, + 4136, 3315, 1326, 3315, 3315, -2273, 2678, 4142, -513, 4143, -2063, 4144, 1816, 4146, -2192, + 4150, -2189, 1326, 1816, 4153, 1326, 4155, -2438, -2435, -2026, -2410, -2009, 4156, -2336, + 3303, 3303, -2007, -2017, -2020, -2022, -2019, -2034, 1326, -2314, -2059, 4161, -2064, -2049, + -2380, -2299, -2300, -2301, -2302, -2066, 4172, -2042, -2047, -2051, 4175, -2389, -2021, -2030, + -2018, -2013, -2023, -2337, -2272, 3350, -2270, 4183, 993, -2027, -2016, -2012, 1326, -2015, + -2014, -2006, -2024, -2248, -2246, -2247, 4186, 4188, -2218, 1326, 4191, -2046, 4192, 4193, + -2117, -2823, -2832, 3404, 3404, -2720, -2867, -1840, -1813, -1815, -1825, -1840, -1847, -1840, + -1840, -2119, -1877, -2120, -2121, -2416, 1326, -1784, -2409, 3027, 4233, -1945, -1958, 782, + -1987, -1986, -1985, -1987, 4237, -1927, 4238, -1970, -1995, -1996, -1997, -1998, -1999, -1936, + -2000, 4239, -1994, -957, 847, -1593, -1592, 967, -618, -1256, -1255, -1257, 4244, 1232, 4030, + -144, 4247, -1457, 648, 657, 847, 648, 4252, 648, 648, 847, 657, 657, -2584, -2623, 657, -1740, + -1740, -1740, -1728, -1738, -1879, -1879, -2415, 1034, 782, -2001, 2652, -1860, -961, -962, + -960, -1549, -1563, -1577, -2274, -1571, -1717, 4273, 4274, -1551, -1575, 1326, -1112, -1113, + 4276, -1117, 4281, 4281, -2847, -2720, 3518, 4285, -1774, -1808, 4286, -1799, 1326, -2426, + -1776, -2425, -1775, -1779, -1780, -1770, -1809, -1646, 4288, -1804, -1701, -1700, 3404, -1882, + 4292, 1202, 4297, -1624, -1612, 657, 3404, -1865, 657, -1814, -1650, 4307, -2334, -1812, -1372, + -1266, -1333, -1146, 2739, -1946, -1157, 2737, -1141, 2737, -1140, -1946, 2739, 4314, -1158, + -1946, -1373, -1267, -1334, -1374, -1268, -1335, -1375, -1509, -1269, -1508, -1496, -1495, + -1494, 967, 967, 4318, 657, 4320, 4321, 1326, 2774, -818, -2592, -144, -1523, -1376, 4327, + -1270, -369, -1524, -1336, -1528, -836, -835, 967, 657, -1337, 966, -687, -692, 847, -694, + -695, 657, 657, -696, -699, -700, 847, -702, -691, -690, 657, 4338, 4339, 4340, 657, -708, + -713, 1590, 4345, 657, 657, 657, 4350, -1176, -1177, -1377, -1273, 4351, -1338, 4352, 2739, + -1124, -1274, -187, 4355, 4356, -288, 1326, -2592, -310, 4359, 657, 4362, 4363, 4364, 4365, + 4367, 4368, -818, -497, -818, 4374, 4379, -307, -338, 4385, -353, -348, -349, -347, -2592, + -144, -2592, -144, 657, 657, 657, 657, 4394, -350, -345, -346, -342, 4395, 4396, -355, 1816, + 1816, 1816, 4401, -719, -721, 716, -726, -358, -1294, -377, -376, -375, 4404, -363, 4406, -382, + -385, 4409, -360, -339, -337, -334, -303, 4412, 967, 657, 4416, 657, 657, 657, 4421, 4424, + 4429, 847, 4431, -1226, -1380, 4434, -1361, -1365, -1339, 657, 4437, 967, -758, -1383, -1280, + -1342, 4441, -552, 4443, 2912, -567, -567, -552, -1394, -1281, -175, -1311, 4449, 4450, -164, + -160, 4452, 4454, 967, 4456, -152, -1384, -1282, -1343, 4457, 4458, -1385, -1283, 4459, 4460, + -293, -628, -639, -645, -1288, -649, -646, -1351, -647, -1392, -1284, 4461, -1388, -1314, + -1346, -395, -611, -394, -1205, -1205, -1395, -1415, -1285, -1205, 4466, -1322, 4470, -282, + -284, 4472, -141, 4476, -1286, 4477, -1344, -1387, -1313, 4478, 4479, 4480, 4481, 4482, 4483, + 4484, 4485, 4486, -1531, 4487, 4488, 4489, 4490, 4491, 4492, -144, 847, 4495, 716, 4497, -2592, + -144, -878, -1386, 4501, -1319, 4502, 4503, -1359, 2991, 2994, -407, 657, -1312, -1322, 4507, + -295, -1290, 4508, -1353, 967, 657, -234, -233, -235, 1326, 4511, 4512, 4513, -2278, -2279, + 1326, -2276, -2110, 2677, 4515, -1541, -983, -969, -982, 847, -965, -2553, 4518, -968, -970, + 3849, 657, 657, -971, -975, -976, 657, -967, -964, -966, 4523, -418, 4525, 4525, -775, -776, + 4529, 4530, 4531, 4532, 1816, -855, 4538, -1521, 4561, -149, -685, 966, 657, 966, -680, -710, + -715, 657, 657, 4570, 4571, -478, -482, -483, -484, 657, 967, 4575, 967, 782, -165, -150, 4578, + -898, 657, -552, 4581, -768, -1205, -1398, 4585, -195, -190, 4587, 1134, -731, 4589, 1466, + 1326, 4593, -606, -609, -608, 657, -381, -850, -848, -847, -849, 716, 4599, 4600, -1885, -846, + 657, 4602, 657, 657, 657, 657, -618, 4609, -555, -477, 657, 657, -594, 2875, 4618, 4619, 57, + -591, 4622, 4623, 912, -2464, 4627, -867, -839, 3984, -1135, 4630, -1153, -1136, 716, 966, + 4636, 4639, -1190, -1197, -1166, -1191, -1168, -1197, 4650, 657, -781, -785, -784, -788, -786, + 4655, -782, -659, -1688, -1689, 57, -1223, 847, 4659, -1517, 4661, -1515, -920, -1217, -144, + 4663, -144, 4665, -144, -1225, -1219, -1221, -1423, 657, -918, 657, 3004, -911, -913, 657, + -915, 4671, -554, -1027, 4672, 4673, 4674, 4675, 4676, 657, -1043, -657, -1050, 657, 657, 967, + -1065, -1060, -1062, 967, -1077, -1071, 4690, -744, 912, 4693, -1643, -1636, -1638, -1637, + 4694, 4695, -1634, -1745, -2284, 2034, -2285, 4697, 1326, -2318, 4699, 847, -2154, 4701, -2125, + -2127, 1326, -2140, 1326, -2155, -2108, 4704, -2371, -2368, 4705, 4706, 4707, -2372, 3267, + -2174, 4710, 1326, 4712, 3267, 4714, -2399, 1326, 1326, 1326, -2169, -2171, 4719, 1326, 4721, + -2389, -2389, 1326, -2176, 4725, 1326, -2156, -2129, -2131, -2098, 4727, 3360, -2141, 1326, + -2264, 1326, -2144, -2143, 4731, -2076, -2075, 4732, 3303, 3303, 3303, 3303, 3303, 4741, 3303, + 3303, 3303, 3303, 2070, 3303, 3303, 3303, 3303, 847, 3303, -2090, -2145, -2243, 1326, 1326, + 3382, -2147, -2146, 847, 4756, 2678, 4757, 4758, 1326, -2152, -514, -2157, 4761, 4762, 4765, + 1816, 1326, -2163, 4769, 4772, 4773, 4775, 4776, 1326, 4779, 4780, 1326, 4782, 1326, -2382, + -2383, -2384, -2381, 4784, -2065, -2050, -2068, -2044, -2048, -2052, 4785, -2389, -2067, -2070, + 1326, 3303, 3303, -2036, -2060, -2032, 1326, 4793, -2038, 1326, -2061, 934, -2116, 4797, 4798, + 1326, -2221, -2216, -2217, 1326, -1840, -1847, -1840, -1840, -1703, 4217, -1825, 4809, 4810, + 657, -1839, -1823, -1838, 3404, 4815, 4816, -1851, 3404, 4816, 4820, 4816, 4823, -1817, 4826, + -1843, -1819, -1838, -1821, -1827, 4829, -1869, -2417, -1878, 4830, -1797, 4833, -1964, 4834, + -1982, -1980, -1923, -1928, -2003, -2283, -910, 4836, -624, 2020, -1077, -1068, 967, 4840, + 4841, 4842, 4843, 1604, 4845, 4846, 4847, 4848, 4849, -1740, -1740, -1740, -1740, -1737, 657, + 657, 657, -1784, -1784, -206, 4859, -244, -229, -1548, -1718, -1727, -1754, 4861, -2265, -1117, + 4864, -1756, -1778, -1777, 4866, -1767, 4867, -1806, -1764, -1647, -1631, 4868, -1629, -1616, + 4873, -1619, -2334, -1618, -1617, 4875, 4876, -1629, -1611, 4878, -1655, 4880, 3536, -1882, + 1326, -1654, 4884, -1946, -1138, -1139, -1162, 2739, 4887, -1082, -1083, 4893, -1081, 4895, + 4893, 4897, -545, -548, 657, -1526, 657, -1393, -1310, -689, 4905, 4906, 4907, 4908, -704, + -663, -705, -707, 967, 657, -706, -709, -712, -1322, 4914, -301, -1296, 4915, -1357, -1170, + 4916, 657, -1127, 4918, 4919, 657, 4921, 4922, 3641, -536, -1097, 4923, 657, 657, 657, -818, + 657, 657, -540, 4935, -496, -493, -333, 4940, 4941, 4944, 2875, -390, 4951, -312, -325, -388, + -331, 4958, -365, 657, -336, 657, -329, -351, -343, -352, -344, -364, -366, 4961, -723, -724, + -722, 3678, -718, -725, -727, 657, 1816, -379, 1816, 4538, -397, -359, -396, 657, -1379, 4969, + -1322, 4972, -297, -1292, 4973, -1355, 4974, 4975, 4976, 4977, 4980, 4984, 4987, 4988, 4989, + 4990, 4991, 4992, 1816, -1360, 4994, 5001, 657, -763, 5003, -760, 657, -567, 5008, -1407, 5010, + -1404, -1402, -567, 788, 5013, -156, -155, -154, 716, -163, 716, 657, 657, 657, 657, 3769, + -1416, -1417, -1418, 5022, 5023, 657, 657, 657, 657, -401, 5028, -304, -306, -305, 657, 657, + 5031, 5033, 5035, 967, 657, 657, 967, 657, 657, 657, 657, 657, 657, 657, 5047, -408, -372, + 5050, -874, 4947, 5053, 657, -410, 657, 716, -1371, 1590, 657, 657, 657, 657, -1378, -1275, + -2113, -2114, -2111, 934, -2329, 5063, 5064, 3849, -980, 5066, 5067, 5068, 3849, -421, -422, + -149, -420, -445, 657, -818, 5077, 657, -852, -857, -2252, -865, -2661, -2251, -863, -858, + -860, -862, -864, -861, 5079, 657, 657, 3303, -518, 5084, 5087, 5089, -505, 5090, 657, -515, + -498, -501, -502, 5094, 657, -681, -684, -682, -683, 5100, -703, 5102, -525, 5104, 3892, -477, + -167, 967, 967, -168, -166, 847, 5111, 3951, -765, 5117, -762, -1397, 967, -193, 5122, 1665, + 5125, 5126, 5127, 3922, 3404, -1205, -673, 5131, 5132, -872, -844, 657, -715, 3004, 5136, -630, + 5138, -552, -1604, -613, -581, 2845, -583, -477, -590, 2875, 5154, -598, -380, 57, 657, -618, + -381, 716, 657, 3641, 4538, 5165, -866, 5167, 2739, -1134, 1326, 1326, -1187, -1192, -1188, + 5172, -1167, -1149, 5174, -1189, 5176, 1326, -1195, -1120, -1169, -1121, -1439, -1440, -1437, + -1438, 5178, 5179, 657, 657, 3984, 657, -1679, 5184, 3994, 3994, -1513, -922, 657, -905, 657, + -907, -144, -752, 5190, -144, 657, 657, 657, 657, 657, 657, -1042, 1604, -1036, -1038, -1063, + 4030, 5199, -1077, -1076, 1816, -1067, -1075, -1073, -1074, -1072, 5202, 657, -1641, -1639, + -2288, 1326, 2677, -2316, 5205, -2122, 2677, 2677, -2370, -2386, -2388, -2175, -2378, 5209, + 5210, -2401, 5211, 5212, 1326, 3267, -2339, -2393, -2392, 5217, -2391, 5218, 3267, 3267, -2339, + -2177, -2339, -2245, 5223, 5224, 5225, 1326, -2244, 5227, -2082, -2085, -2087, -2084, 4126, + 5228, -2093, 5230, -2086, -2083, -2078, -2088, -2081, -2077, -2080, -2079, -2074, -2089, 5231, + 5232, 5233, 5234, -2149, -2150, -2151, 2678, 5235, -2158, -2501, -2201, 3303, -2162, -2191, + -2190, 5243, 5244, 5245, 1326, -2165, 5247, 5249, 847, -2439, -2436, -2008, 1326, 1326, -2035, + -2315, -2053, 1326, -2069, -2071, -2031, 5255, 5256, 1326, 1326, -2040, -2264, 1326, 5261, + 5262, 1326, -2241, 5264, 5265, -2223, -2220, 5268, -1824, -1820, -1822, -1828, -1829, 3399, + -2862, 4146, -1836, 657, -1816, 3404, -1852, -1848, 5279, -1849, 3404, 5282, -1850, 3404, 648, + -1818, 657, -1836, 657, -1876, -1743, 1326, -2212, -2110, -1924, -616, 5295, 5296, -144, -1077, + 5299, 5299, 5299, 5299, 5305, 5299, 5299, 5299, 5299, 5299, 657, 657, 657, 657, -1731, -1730, + -1736, -1797, -1797, 716, 5318, 993, -1755, -1115, -1116, -1765, 5320, -1768, -2532, -1880, + 1326, -1630, 657, 5324, -1621, 57, 5328, -1609, 1326, 657, 5332, -1651, -1629, -1652, -1159, + 5334, 5335, -1151, -1088, -1089, -1092, -1090, -1087, -1091, 5336, 799, 5338, -818, -821, 5341, + 5342, 5344, -819, -144, -1271, 847, 657, 657, 657, -664, -1391, -1272, 657, 657, 657, 657, + -1171, -1325, 967, 657, -1295, -818, 657, 1326, 5360, -562, 5361, -1111, -1111, 5366, -309, + 5367, -542, -603, 5368, -495, -494, 5369, -492, -715, 3769, 5084, -316, -326, 5376, -321, 1604, + -1323, 5378, 5084, 5380, 3769, -320, -323, -322, -392, 4949, -389, 847, -144, -144, -367, -720, + -378, -383, -387, -384, -1330, 5386, 5387, 657, 657, 657, 657, 657, 967, 657, 657, 782, 782, + 847, -899, -882, 782, 782, -900, -901, 967, 657, 657, -1228, -1229, -1227, -1362, -1363, -1369, + -1366, -1364, -1368, -1370, -1367, 5406, -1278, 1326, 5408, -756, -1326, -1399, -1401, -1400, + 1326, -1403, -161, -158, -157, -159, -162, -1327, -1308, -1289, -1352, -612, 967, 657, 5412, + -1287, 5413, -1345, 5416, -1304, -1298, 657, 657, 657, 657, 5421, -1390, -1318, -1350, -1389, + -1316, -1348, -1315, -1347, -1317, -1349, -1309, 5422, 657, -1887, -879, 716, 716, 847, -144, + -144, -877, -754, -1291, 5429, -1354, -1300, 5430, 5431, 3849, -972, 3849, 3849, 3849, -974, + -426, -446, -149, 5440, -774, -838, 5442, 5443, -854, 1326, -503, 5445, -509, -516, 5447, 5448, + -520, -521, -519, -504, -1205, -552, -1205, -807, -808, 648, 5454, -828, 5455, -679, 1816, + 3892, 5459, -522, 5462, 5463, -479, 4472, -170, -169, 5465, 657, 5467, -769, -773, -771, -770, + -772, -767, 967, -758, -195, -2592, 5472, 5473, 657, 3922, -610, -607, -604, -1412, -845, 716, + -1886, -748, 5477, 3951, -626, 5479, 3892, 657, 5483, -618, -583, 5487, -480, -485, -486, -499, + 5490, -591, -582, 4472, -592, -593, 5493, 5494, -1487, 5498, -619, 5494, 5500, 5501, 5502, + -869, 4625, -868, 657, -1137, -1154, -1155, 716, 834, -1197, 847, 5511, -1199, -1194, 657, + 5515, -787, -790, -783, -666, -144, 5522, -1516, -144, -144, -1254, 657, -916, -1057, -1058, + -1059, -1056, -1055, -658, -1061, 5526, -1020, -1070, -746, 5527, -2319, -2139, 657, -2385, + -2387, -2173, -2398, -2397, -2172, -2404, 5529, 1326, 5539, -2395, -2394, 5543, 5544, -2379, + -2379, -2142, -2153, 1326, 5548, -2243, 3303, 5550, -2094, 1326, 1326, 1326, -2148, -2857, + 5556, 5557, -2205, -2206, 5239, -2202, -2203, -2198, -2199, -2164, 5559, -2649, -2182, 5561, + 5562, 5564, -2057, -2055, -2054, 1326, 1326, -2037, -2033, 1326, -2039, -2062, -2207, 5569, + -2240, -2209, 5570, -1751, 1326, -1826, -1872, 5574, -1875, 5577, 5581, 657, 5583, -1830, 1326, + 5585, -1832, -1834, 3404, 5279, 5588, 5589, 657, 5591, -2420, 5595, -1796, 657, -1751, -2433, + -2431, -617, 4030, -1021, -144, -997, -989, -996, -985, -988, -990, 5299, -992, -993, -987, + -984, -986, -1735, -1734, -1733, -1732, -2212, -2212, -245, -1722, 5614, -1766, 657, -1628, + -1620, 4297, -1614, -1613, 4923, 5619, 5620, 5621, -1656, 1326, -1649, -1152, -1160, 4030, + 5628, 4030, -547, -823, -822, -825, -820, -824, -1527, 5630, -697, -698, -701, -1297, 5631, + -1358, -1306, 5632, -1645, -538, -311, 5634, 4923, -557, 5638, 657, -1104, -139, -1103, 5643, + -557, -557, -491, -490, -499, -319, 5647, 5648, 5649, -313, -391, 5650, -393, -314, -318, -372, + -335, -328, 4538, 967, 657, -1293, 5655, -1356, -1302, -1329, -1381, -1276, -1340, 5656, 993, + -888, 4980, 5661, 5662, 4984, -1382, -1277, -1341, 657, 5665, 5666, 5667, 5668, -1645, 657, + 657, 5672, 5673, 5674, 5676, 5678, 5676, -1536, 5681, 657, -371, -876, -875, -372, -409, -1320, + 657, -2112, 3849, -973, -978, -979, -977, 1816, -415, -423, -426, 716, 648, -1245, -1245, 5706, + 5089, -500, -517, 5708, -602, -561, -602, 5714, 657, 5094, 5717, 5719, -716, 5720, 657, 5731, + 5731, 657, 657, 5736, 657, 5738, 57, -761, -760, -192, 5741, 3892, 5742, -715, 5744, -873, 657, + 5746, 657, -618, 5749, -477, 657, -1601, -591, 2845, -476, 5754, -488, 657, -594, -583, 5760, + 657, -615, 5764, -1480, 57, -621, 657, 912, 4923, -817, -1193, 2737, -1207, 5773, -1148, -1118, + -1202, 5774, -1727, 3418, 5780, 5781, 5782, 5784, -800, 657, -670, -1246, -1514, -906, -908, + -753, -1064, 657, -2369, -2403, -2338, -2340, 5797, 1326, 5800, -2354, -2357, -2355, -2356, + -2358, 5801, -2353, 5802, -2170, -2402, -2351, 5539, 5808, -2245, -2091, 3303, 2677, 2677, + 2677, 1326, 1326, -2159, -2160, -2204, -2166, -2183, 5813, -2167, -2195, 5814, 5815, -2058, + -2056, -2041, -2242, 1326, 5819, -1908, 3399, -1877, 5825, -1871, 3303, 5828, -1902, 5829, 657, + 5833, -1837, -1855, 657, -1833, -1831, 1326, -1844, 5836, -1846, -2531, -2818, 5839, -2717, + -1783, -1785, -1788, -1790, -1789, -1791, -1787, -2211, -2213, 5843, -1762, -1077, -1069, -991, + -1705, -1704, 5847, -1725, -2266, -1881, 5850, 5852, -1099, 657, 5855, 5857, -1629, -1658, + 5860, 5860, -1653, -1065, 4893, -144, -693, 657, 5867, -290, -1111, -563, 5869, -1205, 5871, + -564, -1110, -1114, -138, 657, -1205, -1205, -487, 5877, -317, -327, 1326, -374, -386, 5881, + -1645, 657, 847, -886, -895, -895, -883, 847, 847, -902, -1279, -757, 1326, -566, 5891, -285, + -1305, -1299, 1326, 1326, 966, -1538, -1539, 657, 657, 657, 657, 657, -1328, -144, -1301, -981, + 5904, -448, -456, -427, -431, 1865, 716, 1865, 5916, -428, -432, 1865, 1865, -425, -1879, -444, + -1245, 5922, -1242, -1241, -550, -632, 1326, 5928, -507, 5931, -572, -506, 5936, -829, 648, + 5938, 1816, -714, 5104, -477, -535, -526, -527, -528, -529, -531, -530, -532, -533, -534, -524, + -523, 5943, -715, 657, 5946, 3951, -1487, -755, 657, 5951, -728, 3404, -715, 57, -1604, -614, + -581, -583, -477, -594, -481, -499, 5961, -598, -591, 5964, -595, 5965, -599, 5966, 5967, 5968, + -618, -1540, 3641, 5971, 657, -818, -1206, 834, -1167, 847, -1196, -1200, -1201, 5977, 5978, + 5979, 5980, -1249, -794, -795, -789, -791, 5983, -802, 5987, -665, 5989, 657, -669, -660, -715, + 1326, 1816, 2677, -2359, -2360, 5994, -2180, 5998, 6000, -2377, 6004, 6005, 1326, -2092, 6007, + 6008, 6009, -2184, -2196, -2168, -2222, 6012, 6012, 6012, 6018, 657, 5215, -1873, -1870, 657, + -1905, 5577, 6023, 1816, 6026, -1890, 6027, -1835, 6029, 6030, -1845, 1326, 6032, -1792, 1326, + 5595, 657, 4193, 1481, -144, 6039, 6040, 657, -1716, 57, 4923, 3418, -1626, -1623, 6045, -1665, + 6046, -1657, -1659, 1326, 6048, 6049, -1084, 6050, -1085, -1307, 657, -1105, 657, -602, 993, + -1117, -1114, -552, -602, -602, -632, 6061, 1326, -330, 6063, -298, -1303, 6064, 6066, -897, + -897, 6070, 6071, 6072, 657, 6074, 6075, -403, 6077, 782, -1532, 5676, -1533, -1534, -1537, + -411, 1816, -424, -454, 1830, -453, -451, -450, -452, 716, -441, 716, 6086, 6087, 6089, 716, + 716, -414, -1240, -1244, -1243, 6093, -508, 2953, -510, 6095, 6096, -558, -559, -560, 6098, + -512, -568, -569, -826, 6103, -831, 6105, -717, 6106, 4472, -580, -739, -715, 657, 6110, 6111, + -1481, 6112, 657, -605, -749, -1487, -618, -583, -591, 4472, -598, -489, 6120, -600, -594, + -596, -597, 6127, -1484, 6128, -620, 6129, -1107, -816, 6132, -1208, -1197, -1203, -1198, + -1443, 6137, 6138, -792, -797, -796, -1530, -801, 6141, 6143, 6144, -668, -667, -743, -2341, + -2342, -2366, 6145, 6147, 6149, -2345, 6150, -2343, 6151, 6152, 5539, 6155, -2181, 2677, -2188, + -2161, -2186, -2805, -2532, -2776, 6161, 6162, -2228, 6162, 6162, -2219, -1907, 6166, 6167, + -1903, 3303, -1904, 657, -1888, 6170, -1892, -1842, -1868, 6182, 5595, 6184, -1786, -2214, + -2215, -2455, -1022, 6185, 6186, 6187, -1615, -1100, -1625, 3536, -1667, 2677, 6192, 6196, + 4030, -1645, 6200, -567, 6202, -1101, -1117, -561, -818, -818, -324, -315, -373, 657, 648, + 6209, -893, -896, -884, -885, -904, -903, -759, -1645, 6211, -399, 966, -398, -402, 657, -449, + -459, 6215, -457, -429, -434, 6216, -440, -439, -436, -435, -430, -433, -549, 6218, 6219, 657, + 6224, 6224, 6097, -570, 6098, -571, 6227, 6228, -830, 657, 6230, -741, -891, 4980, 57, 3892, + -715, -1482, -1602, -591, -594, -583, -600, 1326, 6240, -585, -1111, -1111, -462, -598, -1485, + -1486, 4923, 6245, -515, 6247, -1119, -1442, -1441, -1727, 648, 648, 657, -803, -804, -799, + 1326, 5094, -2346, 6264, -2349, 6265, -2350, -2344, -2374, -2376, 6268, -2362, -2363, 6270, + -2232, -2231, -2230, -2234, -2233, 6274, -2226, -2224, -2225, 6275, -1874, 4146, -1891, -1894, + 3303, 3303, 6279, -1900, 3303, -1893, -1895, 657, -1854, 6283, -1866, -1794, 6284, -1793, 657, + 657, 657, -1879, 6290, -1672, 6291, 6292, -1660, -1661, 6293, 6297, -1662, -144, -291, -556, + -818, -565, -1102, -572, -541, -539, -1645, -887, 657, -286, 6304, -404, -1535, 1830, -455, + -438, -437, -631, -511, -601, -577, 6306, -576, 6308, -574, -573, -827, -832, -715, 657, -881, + -1487, -729, -594, -598, -591, -460, 6315, 6120, -584, -139, -139, -600, 6320, 4923, -381, + 6324, -1727, -1425, -1424, -1426, -1434, -1431, -1433, -1432, -1430, 944, 6330, 6331, -793, + -798, 6332, 648, -2347, -2348, 6334, 6335, -2179, 6336, 6012, 6338, -2236, 6339, -2237, 6340, + 6344, -1898, -1897, -1899, -1901, -1896, -1841, 1326, -1795, 6346, 6347, 6349, -1622, -1666, + -1668, -1663, 3536, -1664, 6351, 657, 4297, 6354, -1673, -1086, -543, -818, -299, -894, 1326, + -458, -575, -552, -552, -740, -715, -1483, -598, -600, -594, -1111, -586, -588, -587, -464, + -1107, -1108, 6366, -600, 5987, 6370, -1435, -1429, -1703, 1239, 6371, 6372, -805, 6373, 6374, + 6375, 6376, -2229, -2235, -2238, -2642, 6380, -1909, 6381, 657, 6384, 657, 657, 6387, 657, + -1671, -1677, 6391, 6392, 1326, -544, 6394, -579, -578, -742, -600, -463, -598, -139, -515, + 4923, -1106, -1879, 6401, -1427, -1727, 6403, 6404, -811, -2373, -2375, -2364, -1917, 716, + 6340, 5539, 6414, -1920, 6419, -1867, -1721, -1720, -2004, 6420, 6421, -1724, 6422, 6297, 6425, + -400, -461, -600, -589, -381, -1109, -1093, 5094, -1428, 6429, 6430, -813, 6432, -809, -812, + -814, -815, 6434, -1910, 6435, -1911, -1920, 716, -2351, -1920, -1889, 1326, 6387, 4297, -1675, + -1674, -1678, -465, -600, 648, 6445, 6446, 6405, -777, 657, 6449, -1906, -2367, -1919, -2377, + -2351, 3837, 6454, 6455, -1879, 6457, 648, 648, -810, 6460, 6340, -1914, -2365, -2377, 6464, + 657, 6297, -1094, -811, -1250, -1251, 6468, 6469, -1912, -2365, 5293, -1723, -1676, 6471, 6340, + -1915, -1913, -778, 6473, -1916, +]; -#[rustfmt::skip] -pub(crate) const GOTO_TABLE: &[u8; 36246] = &[236,221,7,156,28,103,121,48,240,241,206,189,39,116,186,147,162,222,80,57,213,128,90,32,1,62,80,151,78,5,72,232,4,48,216,244,222,92,130,165,59,89,150,2,4,76,2,4,131,193,84,91,96,99,131,109,48,198,146,2,184,128,83,62,18,87,2,9,9,144,0,1,18,224,195,116,18,136,108,51,223,104,189,94,75,186,178,119,167,221,155,221,153,255,255,247,155,157,217,221,217,189,153,185,217,103,159,125,230,157,119,30,29,61,38,90,27,173,139,146,138,245,209,134,234,116,146,108,140,54,165,247,54,71,91,162,173,81,79,58,181,173,252,220,246,99,230,56,214,142,234,227,59,163,199,150,167,31,23,61,62,250,195,65,230,62,214,31,149,231,121,66,244,196,33,231,125,210,48,222,233,228,60,185,252,23,158,18,61,181,60,126,90,249,246,233,209,31,71,207,56,225,47,63,243,184,251,207,74,239,157,26,61,187,252,216,115,202,183,167,69,167,87,230,120,110,191,101,126,94,229,145,231,71,47,136,94,88,158,126,81,122,251,226,232,37,209,75,163,151,157,48,247,203,211,251,175,24,230,90,191,178,50,223,171,210,241,171,163,215,12,240,170,215,166,143,157,113,220,227,103,70,103,149,239,159,29,253,73,244,186,232,156,104,87,191,87,237,78,31,233,77,135,190,242,51,123,42,207,159,27,237,29,224,253,207,139,246,85,31,221,95,157,250,211,1,151,255,245,39,249,191,124,67,249,245,111,140,254,44,122,83,245,157,222,92,158,58,63,189,125,75,58,252,121,58,252,69,244,214,202,179,111,139,222,94,158,250,203,244,246,29,209,5,149,71,223,25,189,43,186,176,60,253,238,232,61,209,69,209,123,163,247,29,183,92,239,79,239,125,32,250,96,244,161,232,226,99,30,191,36,157,62,16,125,248,152,71,62,18,93,26,93,86,190,255,209,232,242,232,138,232,99,233,244,199,163,43,211,219,171,162,171,211,219,79,68,159,76,111,175,25,100,157,63,149,62,126,109,249,185,79,167,183,215,69,7,251,205,119,40,125,228,112,245,209,191,170,78,125,230,132,57,63,91,185,255,185,232,250,232,134,232,198,232,166,232,243,199,204,241,133,58,125,126,110,110,248,231,16,224,68,127,43,242,64,83,250,129,207,38,0,0,0,0,117,246,67,53,39,0,10,236,79,74,173,177,156,175,27,100,57,207,41,237,170,60,179,187,212,91,234,107,145,181,1,0,104,5,123,229,86,153,58,111,200,237,191,175,250,236,254,52,15,182,181,32,43,111,240,249,3,0,160,69,188,73,238,74,225,188,197,94,15,208,68,62,54,230,81,249,227,185,252,30,184,114,76,215,234,170,1,255,218,213,190,97,1,128,186,185,70,187,8,40,180,79,249,100,103,74,219,52,0,32,27,159,41,125,86,118,65,147,248,156,125,113,140,124,51,87,91,250,91,233,218,124,187,244,31,246,30,0,154,200,119,124,47,1,64,19,251,174,99,114,117,242,253,242,246,249,65,249,246,135,182,21,117,241,255,6,221,147,126,84,121,230,174,242,248,199,253,230,251,201,113,143,252,180,122,239,103,39,204,249,243,202,253,95,148,92,211,19,242,233,148,184,20,219,10,205,43,246,223,201,212,3,109,211,218,210,255,68,56,225,191,33,15,166,158,38,196,157,113,151,79,60,12,219,196,88,12,6,0,160,120,126,71,30,12,208,96,147,43,145,118,138,74,29,208,207,52,145,1,160,193,166,199,51,226,163,109,211,102,54,32,226,106,155,6,64,43,153,29,207,73,191,13,231,170,7,3,100,224,193,98,48,64,102,230,137,193,64,213,194,184,59,94,228,216,220,152,89,108,91,3,77,230,49,105,92,90,155,14,235,210,97,125,58,108,72,135,141,241,166,120,115,58,222,18,111,141,123,210,241,182,120,123,206,162,215,142,202,250,236,76,199,125,50,97,70,225,177,250,139,104,106,250,139,200,150,254,34,0,154,213,227,212,131,1,26,232,15,135,252,29,34,15,6,0,0,40,142,39,57,82,5,0,133,246,148,186,31,147,123,70,191,236,226,153,241,179,100,28,0,3,56,85,187,8,234,232,57,241,105,174,101,4,35,112,186,24,12,163,246,60,223,55,0,208,178,158,47,15,6,0,200,212,11,227,23,169,172,180,184,215,198,103,196,103,198,103,249,63,2,12,83,253,219,69,236,18,131,1,50,139,193,0,0,100,175,47,222,83,232,95,198,231,214,92,251,189,242,96,40,188,243,84,16,1,40,160,253,242,96,104,18,111,144,141,2,0,64,3,189,41,126,179,156,123,204,156,239,90,70,192,113,222,34,6,139,193,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,57,246,214,216,54,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,168,237,130,248,157,250,111,3,0,32,87,222,149,102,184,23,198,239,110,72,158,123,115,100,251,2,0,0,0,0,0,208,72,31,212,158,11,40,128,15,137,117,180,168,139,7,217,119,207,41,237,42,221,55,181,187,212,91,234,43,217,82,12,229,18,49,16,234,234,64,245,51,181,63,141,193,182,7,67,251,176,24,12,98,48,64,203,248,200,144,153,203,190,146,24,12,0,173,224,50,181,8,168,43,181,8,0,0,242,233,114,245,96,0,96,216,62,174,238,76,206,92,57,200,62,125,85,124,236,57,26,87,219,243,1,26,234,218,248,211,39,68,218,235,202,247,15,198,135,226,195,98,48,64,221,124,182,102,76,221,171,93,4,0,0,64,110,220,154,254,198,187,77,117,141,33,221,30,223,145,241,62,114,167,90,4,64,3,253,163,246,193,0,192,176,125,89,13,129,156,209,62,24,32,11,95,81,139,0,104,26,255,28,127,213,57,26,52,185,127,177,39,146,51,106,17,0,89,248,87,181,8,128,204,124,77,12,6,200,196,55,244,23,1,144,169,127,147,7,83,55,223,116,196,0,234,202,245,228,0,26,233,91,242,96,0,128,194,249,94,188,167,208,245,171,115,29,147,3,200,212,127,170,69,0,0,80,64,223,151,7,83,55,63,208,54,13,234,74,219,52,128,177,244,163,248,46,253,166,1,140,129,159,104,23,1,0,228,212,175,226,255,142,255,199,239,71,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,90,196,145,56,73,238,142,109,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,178,116,111,252,219,56,137,163,54,91,162,216,78,41,239,1,7,227,67,241,97,231,64,3,0,144,3,165,52,195,141,135,252,157,211,86,125,118,127,169,183,100,139,213,203,55,115,181,45,103,180,205,108,155,213,54,219,47,102,0,160,101,205,145,201,64,3,204,245,201,2,0,128,58,122,112,37,195,158,215,47,211,158,127,220,35,11,170,247,22,14,146,147,119,183,93,31,221,16,221,24,221,20,125,62,122,224,209,47,68,245,89,206,155,235,244,62,0,80,47,139,106,86,169,246,86,91,4,107,23,1,0,205,108,137,99,79,80,87,7,228,193,0,208,18,150,203,131,161,174,228,193,0,141,244,187,67,102,46,251,74,98,48,0,180,130,135,168,69,64,93,169,69,0,0,144,79,43,213,131,1,0,0,128,12,61,172,237,225,39,84,39,174,43,31,151,115,61,57,0,160,62,30,165,29,29,53,221,30,223,145,113,230,121,167,182,105,0,0,228,210,163,181,77,3,200,204,99,196,96,128,166,177,118,4,237,34,214,59,170,1,208,64,27,170,81,86,30,12,80,127,155,78,170,22,177,69,38,204,49,182,218,31,160,174,244,155,6,208,72,61,142,201,1,100,102,155,24,12,0,0,0,64,75,218,161,93,4,212,149,118,17,0,0,0,64,99,61,214,117,52,0,0,0,0,0,224,164,60,75,235,89,0,0,0,72,158,173,223,52,0,128,140,60,199,145,10,0,0,0,0,0,0,128,134,56,205,241,88,128,138,211,7,140,136,207,45,63,170,239,74,0,160,222,158,231,215,24,77,226,115,206,132,3,0,0,0,128,97,122,97,219,139,212,118,105,73,23,15,210,226,225,156,210,174,74,141,120,119,169,183,212,167,94,76,142,189,68,252,6,0,0,0,32,231,94,230,58,26,212,213,43,84,85,105,144,87,166,251,214,218,244,216,213,186,116,88,159,14,27,210,97,99,188,41,222,156,142,183,196,91,227,158,116,188,45,222,158,179,243,121,119,84,214,103,103,58,118,76,14,0,0,0,128,162,57,163,237,76,53,103,114,230,202,65,170,216,87,197,199,158,163,113,181,190,43,1,26,236,236,182,63,57,46,203,184,174,28,121,245,31,12,0,0,208,234,110,141,251,218,246,168,43,51,164,219,227,59,50,254,245,127,103,245,239,59,71,3,0,0,32,59,231,105,155,70,238,104,155,6,0,64,209,157,221,182,95,251,96,154,216,235,213,34,200,29,181,8,0,0,0,0,0,0,0,32,127,222,232,154,158,0,0,20,208,155,228,193,0,64,198,206,119,246,29,0,0,163,246,231,178,73,26,228,149,233,190,181,54,78,146,117,233,176,62,29,54,164,195,198,120,83,188,57,29,111,137,183,198,61,233,120,91,188,61,103,125,42,236,168,172,207,206,116,220,167,34,12,208,96,103,183,189,77,191,105,0,0,0,195,242,142,182,11,212,130,161,174,14,184,174,50,64,195,188,171,237,66,231,104,0,100,230,61,98,48,52,216,69,106,52,0,57,245,62,17,158,166,246,254,49,223,67,63,238,23,3,0,180,184,15,182,253,54,78,226,104,140,178,136,233,241,140,248,198,232,166,104,102,3,206,3,184,57,242,223,28,189,83,202,123,128,115,52,106,249,126,57,251,253,65,249,246,135,50,97,26,236,67,149,200,124,87,121,95,251,113,191,61,238,39,199,61,242,211,234,189,159,157,48,231,207,43,247,127,81,186,62,186,33,58,26,131,63,127,76,188,252,66,157,98,167,24,12,0,0,0,0,48,92,23,107,129,6,0,0,0,0,0,0,0,0,0,0,0,0,53,181,197,73,114,137,115,113,104,128,3,109,31,182,103,1,100,22,131,47,21,131,161,134,163,121,240,101,62,41,52,36,6,127,212,158,5,144,89,12,190,66,12,134,26,142,230,193,31,243,73,1,0,0,0,160,197,29,104,251,184,42,23,0,208,180,174,148,169,208,32,7,218,174,178,119,1,100,22,131,175,22,131,1,128,166,245,9,153,10,64,102,142,158,163,241,73,113,24,0,96,140,92,35,243,202,212,121,165,161,158,221,87,125,118,127,169,183,100,107,1,0,0,12,215,129,182,79,249,189,11,0,0,0,131,58,228,119,51,64,102,14,139,193,0,153,249,43,49,24,0,0,0,0,160,16,174,87,15,6,0,0,0,0,0,0,0,0,78,194,141,109,123,226,155,10,220,14,233,220,184,214,28,123,171,115,184,142,6,0,0,0,121,243,174,244,87,239,133,241,187,227,70,188,247,205,145,237,11,0,0,0,208,56,55,235,117,6,0,0,0,0,0,0,0,0,0,128,76,77,14,173,177,156,83,202,203,57,181,124,59,45,76,15,51,210,169,153,97,86,152,29,122,226,36,153,19,230,86,214,227,193,233,120,94,152,31,22,164,227,133,35,92,183,238,176,40,44,174,188,102,201,48,94,187,180,58,207,178,154,115,47,79,231,248,221,240,144,240,208,227,230,92,17,86,134,85,97,117,191,87,175,9,187,42,189,165,237,46,245,150,250,244,156,6,0,0,0,77,229,97,45,82,79,1,0,128,122,122,184,60,24,32,51,191,47,6,3,52,220,35,196,90,128,204,60,82,12,6,0,160,160,30,45,23,6,0,0,0,0,0,0,0,10,100,157,182,18,0,13,183,94,172,5,0,160,80,54,164,25,240,186,56,205,132,211,97,67,58,108,140,55,197,155,211,241,150,120,107,124,244,90,70,219,226,237,113,190,214,120,71,101,125,118,166,99,215,50,2,0,96,112,91,84,139,1,50,211,35,6,3,0,0,0,117,177,93,149,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,104,160,39,134,39,57,171,153,66,122,138,61,159,49,240,84,251,25,0,0,0,84,61,221,239,100,0,104,57,127,236,251,27,90,200,51,125,98,1,0,0,128,58,122,118,248,109,156,196,81,155,45,81,108,167,148,247,128,131,241,161,248,112,108,107,80,4,207,15,47,80,105,5,128,130,123,97,53,27,216,95,234,45,217,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,52,163,235,245,21,8,0,80,40,175,210,103,42,52,192,107,124,178,0,0,10,229,12,249,31,0,12,195,228,22,249,198,156,82,94,206,169,229,219,105,97,122,152,145,78,205,12,179,194,236,208,19,39,201,156,48,183,178,30,15,78,199,243,194,252,176,32,29,47,28,225,186,117,135,69,97,113,229,53,75,134,241,218,165,213,121,150,213,156,123,121,121,142,51,195,67,143,155,115,69,88,25,86,133,213,253,94,189,38,236,170,92,61,99,119,169,183,212,231,74,26,32,6,139,193,39,29,131,207,10,15,17,131,1,154,204,217,153,127,15,190,78,253,16,40,136,115,194,174,154,17,111,111,245,106,246,39,127,77,207,222,112,70,124,102,124,86,108,203,3,12,207,169,117,140,193,253,237,145,245,2,84,157,59,230,49,241,60,81,24,160,226,244,1,251,73,120,110,249,209,131,241,161,248,176,58,2,64,195,236,111,104,86,250,6,245,96,128,17,105,108,61,24,0,160,81,126,21,191,201,49,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,196,126,21,255,119,252,118,103,43,3,64,211,121,199,152,94,203,8,0,0,0,0,128,122,58,146,86,112,223,233,56,44,208,2,110,108,219,19,191,171,192,241,234,220,154,215,118,115,76,14,0,0,0,0,138,225,194,240,219,56,137,163,54,91,162,216,78,41,239,1,7,227,67,241,225,184,25,150,7,138,234,61,142,182,3,228,212,228,22,137,240,83,202,203,57,181,124,59,45,76,15,51,210,169,153,97,86,152,29,122,210,44,113,78,152,91,89,143,139,210,241,188,48,63,44,72,199,11,71,184,110,221,97,81,88,92,121,205,146,242,248,189,67,190,195,210,234,179,203,106,254,165,229,3,206,177,34,172,12,171,194,234,126,207,173,9,187,42,173,33,118,151,122,75,125,90,70,64,1,188,47,188,217,111,222,49,115,254,144,219,122,95,53,234,106,155,6,0,0,64,22,62,232,168,28,0,100,238,67,97,93,116,255,244,250,104,67,244,192,51,27,163,77,233,189,205,209,150,104,107,212,147,78,109,43,63,183,61,26,248,125,118,84,31,223,25,61,182,60,253,184,232,241,209,31,70,181,151,224,143,202,243,60,33,122,226,144,243,62,41,74,26,236,201,229,191,240,148,232,169,229,241,211,202,183,79,143,254,56,122,198,9,127,249,153,199,221,127,86,122,239,212,232,217,229,199,158,83,190,61,45,58,189,50,199,115,251,45,243,243,42,143,60,63,122,65,244,194,242,244,139,210,219,23,71,47,137,94,26,189,236,132,185,95,158,222,127,197,48,215,250,149,149,249,94,149,142,95,29,189,102,128,87,189,54,125,236,140,227,30,63,51,58,171,124,255,236,232,79,162,215,69,231,68,187,250,189,106,119,250,72,111,58,244,149,159,217,83,121,254,220,104,239,0,239,127,94,180,175,250,232,254,234,212,159,14,184,252,175,63,201,255,229,27,202,175,127,99,244,103,209,155,170,239,244,230,242,212,249,233,237,91,210,225,207,211,225,47,162,183,86,158,125,91,244,246,242,212,95,166,183,239,136,46,168,60,250,206,232,93,209,133,229,233,119,71,239,137,46,138,222,27,189,239,184,229,122,127,122,239,3,209,7,163,15,69,23,31,243,248,37,233,244,129,232,195,199,60,242,145,232,210,232,178,242,253,143,70,151,71,87,68,31,75,167,63,30,93,153,222,94,21,93,157,222,126,34,250,100,122,123,205,32,235,252,169,244,241,107,203,207,125,58,189,189,46,58,216,111,190,67,233,35,135,171,143,254,85,117,234,51,39,204,249,217,202,253,207,69,215,71,55,68,55,70,55,69,159,63,102,142,47,212,233,243,115,115,195,63,135,0,245,118,177,115,52,72,156,163,1,205,228,146,112,32,124,88,85,56,39,62,226,90,70,192,48,124,84,212,7,200,204,229,98,48,0,0,5,244,49,121,48,64,211,248,68,26,147,63,25,174,25,50,50,127,42,125,246,218,240,233,112,157,248,13,0,0,0,140,210,193,112,72,101,1,0,0,0,0,0,0,90,200,103,195,158,56,73,62,87,216,227,124,231,214,236,7,77,159,61,0,0,0,0,0,64,51,249,107,231,111,1,0,144,153,47,202,70,1,0,134,229,171,229,188,233,95,100,79,20,194,191,134,175,133,175,135,111,216,223,129,38,244,111,98,19,52,153,239,250,84,2,0,208,0,223,27,50,207,220,87,237,35,98,180,253,69,252,80,30,11,0,0,0,85,119,149,251,174,44,174,166,232,187,178,82,171,136,218,139,252,159,160,190,78,25,100,111,42,141,114,47,139,237,157,0,169,32,26,2,0,131,56,146,86,15,218,229,10,0,0,0,0,0,0,0,0,13,247,32,109,52,0,0,0,0,0,0,0,0,0,104,18,243,219,147,100,65,251,194,2,183,108,235,214,170,175,105,44,242,191,128,150,182,204,103,24,168,161,45,78,146,229,98,5,192,24,121,104,205,136,59,6,215,50,34,71,86,248,14,135,186,58,32,6,3,0,0,12,105,165,90,4,212,149,90,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,220,111,181,158,45,0,0,0,0,0,0,0,0,32,223,194,125,163,72,91,33,234,230,148,65,246,166,71,141,114,47,251,63,246,78,0,96,152,54,202,27,0,0,40,132,173,199,101,190,61,242,96,128,86,224,152,28,117,55,216,49,185,157,163,220,203,30,107,239,4,0,0,0,128,6,122,118,185,2,183,176,229,235,112,207,105,63,109,148,235,208,173,6,9,144,153,231,159,16,131,95,32,38,3,0,0,0,0,45,229,25,113,255,199,206,84,233,4,24,192,169,213,136,185,191,212,91,58,217,119,59,43,141,181,103,139,183,0,153,196,96,0,0,96,104,123,218,207,109,207,195,57,26,163,231,28,13,0,0,0,0,128,251,189,181,253,109,106,166,0,253,188,93,108,4,0,0,0,26,234,130,227,170,15,239,84,139,0,0,128,81,120,79,78,174,101,52,122,206,147,3,0,104,164,139,134,204,182,246,85,251,74,211,111,26,0,0,0,0,0,0,0,205,230,67,90,24,2,0,208,0,151,202,51,235,102,114,104,141,229,156,82,94,206,169,229,219,105,97,122,152,145,78,205,12,179,194,236,208,19,39,201,156,48,183,178,30,151,165,251,198,188,48,63,44,72,239,47,28,225,186,117,135,69,97,113,229,53,75,42,227,143,182,95,62,232,222,182,180,250,254,203,106,254,165,229,3,206,177,34,172,12,171,194,234,126,207,173,9,87,84,254,234,238,82,111,169,79,11,97,128,58,251,77,205,76,226,127,211,57,142,180,223,221,126,79,251,189,178,14,200,169,188,229,193,191,173,115,30,60,148,19,242,224,33,227,228,72,243,224,93,149,220,87,30,12,0,64,51,139,198,217,6,0,0,0,0,0,52,143,246,114,221,122,92,65,170,215,15,82,165,231,36,140,183,255,20,66,91,124,122,219,242,1,218,181,61,183,237,232,237,193,248,80,124,56,182,149,0,128,124,155,32,243,5,0,0,90,200,145,180,102,251,206,22,57,239,27,234,171,203,47,120,90,212,197,131,28,109,59,167,164,191,8,0,104,5,147,228,161,80,87,7,170,249,241,254,52,15,182,61,0,234,235,119,134,204,92,246,149,196,96,0,128,162,155,156,102,140,107,211,223,230,235,210,97,125,58,108,72,135,141,241,166,120,115,58,222,18,111,141,143,246,225,190,45,222,158,179,115,201,118,84,214,103,103,58,118,76,142,230,48,69,221,153,156,185,114,144,111,142,171,226,99,219,69,92,237,92,101,0,0,128,22,118,107,250,171,110,134,154,6,67,186,61,190,35,227,95,255,119,106,155,70,19,154,41,118,146,51,234,193,0,192,112,204,146,7,147,51,242,96,0,0,0,0,128,7,204,113,174,178,214,105,12,105,174,99,101,80,87,250,174,4,104,164,7,235,187,18,0,128,2,154,39,15,6,0,0,0,0,0,0,0,0,0,0,114,108,129,94,15,0,0,114,111,161,243,228,0,0,24,210,34,253,7,203,132,1,160,65,150,57,26,9,45,106,185,79,47,0,208,162,30,34,143,1,128,49,245,80,109,211,0,90,222,74,191,163,0,0,0,128,26,214,212,172,31,236,173,158,113,162,30,12,0,0,253,253,158,99,114,0,0,0,0,0,80,16,15,115,84,0,234,234,128,182,105,140,192,195,197,96,16,131,25,181,223,23,67,129,58,123,132,184,2,0,0,20,208,163,253,22,34,247,30,99,47,7,0,0,0,154,196,122,117,10,0,0,96,20,54,249,45,1,0,0,20,212,22,191,135,0,0,0,24,181,109,126,85,2,0,64,83,120,188,220,28,0,96,132,158,32,131,2,0,0,0,106,120,114,205,250,193,94,215,244,28,129,167,170,199,0,35,240,52,49,24,32,51,79,23,131,1,32,39,158,161,26,3,117,117,160,102,30,252,44,159,58,0,0,90,214,169,131,100,179,231,148,118,85,178,223,221,105,30,220,167,34,12,0,64,174,60,71,30,12,144,153,211,196,96,128,12,156,62,100,187,134,125,213,168,171,125,48,0,0,121,242,60,121,48,0,133,242,124,103,182,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,242,42,231,221,2,0,0,0,0,20,200,25,170,194,0,0,20,202,217,50,96,0,0,0,0,0,0,0,32,167,118,105,23,1,0,0,0,0,0,0,48,6,246,140,187,160,205,86,128,122,58,16,223,63,181,191,212,91,178,61,0,160,89,237,213,78,17,234,74,30,204,72,236,19,131,65,12,6,40,144,215,203,125,0,0,0,128,147,112,118,219,27,142,171,46,92,87,174,9,31,140,15,197,135,99,91,7,160,185,252,153,122,48,0,0,0,0,64,33,156,175,30,12,0,64,1,253,185,60,24,0,0,0,0,0,0,0,200,169,119,106,23,1,0,0,0,0,0,0,0,228,212,123,181,139,0,0,0,0,198,208,7,212,34,0,0,0,0,0,0,0,160,134,201,161,53,150,115,74,121,57,167,150,111,167,133,233,97,70,58,53,51,204,10,179,67,79,156,36,115,194,220,202,122,92,148,142,231,133,249,97,65,58,94,56,194,117,235,14,139,194,226,202,107,150,148,199,23,15,217,246,96,105,245,253,151,213,252,75,203,7,156,99,69,88,25,86,133,213,253,158,91,19,118,149,238,155,218,93,234,45,245,149,138,178,55,2,0,0,0,0,0,0,205,231,251,229,35,150,63,40,223,254,208,209,75,26,236,195,149,227,244,119,149,247,181,31,247,219,227,126,114,220,35,63,173,222,251,217,9,115,254,188,114,255,23,165,235,163,27,162,27,163,155,162,207,71,15,60,251,133,168,62,75,123,115,157,222,7,24,141,3,109,31,209,171,8,0,0,208,68,46,245,27,37,83,231,13,89,185,220,87,125,118,127,169,87,141,147,81,58,208,118,153,207,57,0,244,243,81,223,143,153,146,7,211,120,7,218,46,247,57,7,128,126,174,240,253,152,41,121,48,141,119,160,237,99,62,231,0,208,207,199,125,63,102,74,30,76,227,29,104,187,210,231,28,0,250,185,202,247,99,166,228,193,0,0,217,184,90,30,156,41,121,48,20,219,39,196,96,49,24,0,104,144,3,109,159,148,107,1,0,0,77,228,26,191,81,50,165,30,60,144,79,141,187,214,126,9,100,238,211,227,138,25,131,1,0,160,136,14,170,69,0,77,64,45,2,0,0,0,128,214,247,183,234,237,20,222,223,141,219,21,106,205,179,55,190,127,74,61,152,250,248,191,162,47,12,219,68,49,24,96,76,157,221,246,197,227,50,149,235,202,113,248,96,124,40,62,28,219,58,0,0,228,195,223,15,89,157,211,127,48,0,192,104,220,234,8,40,0,0,0,64,174,221,81,199,250,207,157,106,73,0,0,13,247,101,57,215,176,124,197,118,2,0,0,0,42,30,22,50,95,4,0,0,90,204,228,22,201,33,167,148,151,115,106,249,118,90,152,30,102,164,83,51,195,172,48,59,244,196,73,50,39,204,173,172,199,63,165,199,206,230,133,249,97,65,122,127,225,8,215,173,59,44,10,139,43,175,89,50,140,215,46,173,204,243,207,227,150,213,156,123,249,128,115,172,8,43,195,170,176,186,223,115,107,194,174,74,47,17,187,75,189,165,62,61,70,0,0,48,128,135,171,7,3,100,230,247,197,96,0,0,0,0,0,0,0,0,0,0,0,0,0,90,192,35,156,15,7,144,153,71,138,193,0,0,212,201,55,92,171,18,0,0,0,0,128,38,244,104,109,35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,200,200,127,141,155,17,223,24,221,20,205,140,235,255,222,55,71,245,123,175,41,229,190,122,166,150,111,167,133,233,97,70,58,53,51,204,10,179,67,79,186,228,115,194,220,74,95,62,223,31,151,36,243,194,252,176,32,189,191,112,132,253,251,116,135,69,97,113,229,53,75,202,227,31,12,217,195,253,210,234,251,47,171,249,151,150,15,56,199,138,176,50,172,10,171,251,61,183,38,236,42,221,55,181,187,212,91,234,43,21,121,15,133,124,155,220,34,253,144,13,55,6,255,176,174,49,120,104,98,48,0,0,89,90,167,79,97,0,0,70,40,111,245,224,31,169,7,3,98,112,102,49,248,46,49,24,0,0,0,168,147,245,218,63,0,0,0,0,0,208,20,126,54,206,54,0,0,104,13,121,59,71,227,23,206,209,0,0,0,0,0,0,0,0,0,0,128,28,216,162,87,53,128,204,244,136,193,0,0,0,0,12,226,55,250,152,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,168,35,113,146,156,242,32,219,1,160,213,196,98,55,0,0,0,0,0,0,0,0,0,0,0,192,73,107,119,142,6,64,213,45,227,239,136,111,29,159,36,183,141,207,122,73,110,175,46,193,29,153,47,11,0,0,173,237,75,50,74,0,0,0,0,0,0,0,40,136,201,161,53,150,115,74,121,57,167,150,111,167,133,233,97,70,58,53,51,204,10,179,67,79,156,36,115,194,220,202,122,124,121,124,146,204,11,243,195,130,244,254,194,17,174,91,119,88,20,22,87,94,179,100,24,175,93,90,157,103,89,205,185,151,15,56,199,138,176,50,172,10,171,251,61,183,38,236,42,221,55,181,187,212,91,234,43,21,97,79,4,0,0,128,252,250,39,103,105,0,133,240,85,209,14,0,0,0,160,201,124,93,197,6,0,0,0,0,160,101,28,137,147,228,27,234,186,0,0,0,0,0,0,12,32,111,253,7,95,20,234,217,127,240,191,15,121,148,77,255,193,0,0,0,0,0,12,223,55,157,217,1,0,192,168,124,75,38,9,144,153,111,139,193,0,0,0,64,29,125,71,173,1,128,134,248,174,111,24,0,0,0,0,128,66,248,47,245,96,0,0,0,0,128,66,248,161,122,48,0,0,0,48,134,238,82,139,0,0,0,0,0,0,0,0,0,160,78,126,86,179,77,218,255,182,39,201,145,246,187,219,239,105,191,183,221,246,2,178,246,11,45,105,1,0,32,55,126,41,191,7,0,0,128,38,242,171,244,151,250,218,56,73,214,165,195,250,116,216,144,14,27,227,77,241,230,116,188,37,222,26,247,164,227,109,241,246,184,145,203,240,223,99,94,45,216,81,89,159,157,233,184,175,100,47,0,0,32,175,206,110,251,245,113,217,246,117,229,76,248,96,124,40,62,60,64,142,255,27,199,241,0,0,0,0,0,10,225,136,122,48,0,0,0,48,134,238,86,139,0,200,204,61,98,48,0,0,0,0,0,0,0,208,146,126,91,109,245,176,191,212,171,247,96,0,200,129,168,195,54,160,232,254,110,220,174,80,107,158,189,213,30,131,229,193,0,99,225,236,182,83,142,203,81,134,238,195,29,0,0,0,160,126,218,170,85,9,245,96,128,188,9,142,142,3,84,156,222,54,208,163,207,45,63,234,152,28,0,192,88,122,144,223,170,0,153,25,47,6,3,0,0,185,215,233,151,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,19,155,172,119,8,128,10,215,209,0,0,128,70,155,89,160,58,196,44,53,23,24,35,179,91,246,211,214,22,207,233,88,222,238,63,8,144,141,185,178,53,168,171,15,201,106,0,160,106,126,225,115,205,238,142,69,233,54,88,92,222,14,227,198,21,99,157,151,248,133,1,212,208,22,159,222,54,80,61,88,219,52,128,252,88,46,15,6,232,71,30,12,0,0,0,0,0,0,245,246,144,154,71,235,247,86,143,194,237,47,245,150,108,49,0,0,0,224,68,81,65,206,122,160,153,173,116,78,10,0,0,0,64,75,91,173,190,3,64,161,220,50,254,142,248,214,241,73,114,219,120,219,2,0,0,0,26,105,157,234,243,152,57,127,200,62,129,247,85,207,79,118,174,50,64,189,173,239,184,176,77,12,6,0,0,0,0,0,0,0,0,178,181,89,187,93,0,0,0,32,39,222,21,39,201,150,142,119,199,141,120,239,155,35,219,23,160,86,12,222,42,6,3,100,98,114,24,222,124,61,29,219,50,61,50,56,165,188,156,83,203,183,211,194,244,48,35,157,154,25,102,133,217,161,39,253,254,152,19,230,86,214,99,123,186,148,243,194,252,176,32,189,191,48,140,236,111,116,135,69,97,113,229,53,75,134,241,218,165,213,121,150,213,156,123,249,128,115,172,8,43,195,170,176,186,223,115,107,194,174,74,47,17,187,75,189,165,62,61,70,64,110,29,205,131,119,200,131,1,90,208,227,180,154,3,0,160,37,77,14,35,127,205,147,51,200,126,135,91,15,126,138,122,48,144,243,24,156,36,79,239,248,227,49,142,195,195,141,193,207,72,151,235,153,29,98,48,80,76,207,234,56,181,227,218,240,233,112,93,104,146,5,2,200,149,103,59,14,7,144,145,231,136,192,0,153,56,173,227,244,142,79,134,107,84,25,0,154,218,243,58,212,131,1,0,40,166,23,168,28,3,212,209,11,211,168,90,171,30,252,162,116,30,109,211,0,0,160,191,207,134,61,113,146,188,184,176,181,138,115,107,246,82,183,183,58,199,254,82,175,179,228,160,105,189,68,205,181,5,189,180,230,127,77,12,6,26,231,190,60,248,101,242,96,49,24,160,9,189,162,67,12,6,0,104,172,201,45,210,134,108,184,125,87,94,20,234,217,127,240,171,134,172,151,232,187,18,0,0,0,0,0,0,128,122,219,221,209,219,209,151,30,173,222,147,14,231,166,195,94,103,138,229,220,121,233,127,120,109,156,36,235,210,97,125,58,108,72,135,141,241,166,120,115,58,222,18,111,141,143,182,139,216,22,111,143,155,109,185,79,206,190,202,126,189,51,93,47,237,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,111,222,218,113,70,124,102,124,86,206,250,87,6,104,156,83,171,17,115,127,169,87,15,238,0,0,0,140,216,219,59,190,22,190,30,190,17,108,9,0,0,0,0,128,252,251,203,14,245,96,0,0,138,233,130,14,219,0,104,62,239,233,184,72,116,130,194,186,184,227,18,17,0,0,0,0,0,0,0,0,0,0,234,226,147,218,228,1,0,0,0,0,140,129,79,169,198,2,140,153,111,230,234,26,213,159,235,184,190,99,86,155,255,42,0,208,90,110,24,242,87,240,190,106,190,182,191,212,155,171,220,13,128,193,125,161,252,221,176,176,189,184,91,160,187,192,235,14,0,64,62,252,181,118,15,64,13,109,113,146,44,247,251,23,0,0,0,0,0,0,0,0,128,6,251,191,213,118,173,206,85,6,0,0,70,230,31,156,39,7,212,224,60,57,128,60,59,35,190,179,227,172,216,118,0,24,158,83,171,17,211,49,57,0,0,128,129,124,201,177,71,168,171,3,106,17,0,0,0,0,0,212,71,184,111,20,57,59,132,186,249,202,160,199,6,255,201,81,67,0,0,90,210,191,84,51,217,127,237,232,237,232,75,239,237,145,219,22,196,121,233,127,122,109,156,36,235,210,97,125,58,108,72,135,141,241,166,120,115,58,222,18,111,141,123,210,241,182,120,123,206,206,197,221,87,217,191,119,166,235,213,167,117,26,0,0,77,42,26,103,27,0,0,0,0,0,112,188,127,171,217,166,103,111,238,250,236,249,246,144,235,252,31,29,151,104,231,4,52,141,239,184,174,50,133,246,159,190,147,1,0,0,0,0,10,225,46,245,96,0,0,0,0,114,226,151,5,60,71,3,0,0,160,190,126,173,21,1,212,213,1,181,8,0,0,0,0,0,198,212,189,142,246,0,100,38,158,96,27,0,0,0,0,0,0,0,0,0,0,0,0,173,224,202,54,219,0,32,43,159,16,131,1,0,0,0,0,24,115,19,203,253,164,45,108,79,10,171,187,192,235,222,108,38,233,181,15,0,0,0,160,112,166,166,53,161,181,113,146,172,75,135,245,233,176,33,29,54,198,155,226,205,233,120,75,188,53,238,73,199,219,226,237,113,190,214,122,71,101,125,118,166,227,62,87,183,7,0,0,0,128,81,152,169,189,25,53,221,30,223,145,113,117,249,206,234,223,223,95,234,85,13,6,168,179,89,67,102,3,251,74,98,48,64,99,204,174,249,107,108,175,60,24,0,0,78,210,25,241,157,29,103,229,172,253,52,64,227,156,218,248,90,68,184,111,20,233,161,134,186,249,74,199,96,207,204,211,26,2,0,0,70,109,209,132,197,50,234,186,88,82,232,237,184,180,230,218,47,171,206,161,93,4,28,27,131,151,139,193,98,176,24,12,0,0,112,210,30,234,247,245,48,45,154,176,194,182,170,11,181,136,161,169,69,0,228,217,87,203,237,131,87,203,41,0,0,0,0,0,90,200,239,169,234,2,180,148,251,142,201,61,76,244,6,0,0,0,234,78,31,238,0,35,161,15,119,90,209,224,125,184,63,194,145,7,0,0,128,76,61,202,181,237,1,0,0,128,49,244,24,181,8,160,165,172,77,163,214,186,52,46,173,79,135,13,233,176,49,222,20,111,78,199,91,226,173,113,79,58,222,22,111,207,89,251,215,29,149,245,217,153,142,251,68,225,81,90,167,69,20,80,67,91,26,101,151,107,165,11,64,174,108,144,5,3,100,104,163,40,12,212,160,22,209,56,155,196,96,64,12,6,0,0,0,114,99,187,138,39,0,144,0,245,22,203,179,1,6,245,88,49,18,0,0,168,122,188,95,8,0,0,0,0,0,0,84,61,209,209,35,0,72,61,201,55,34,0,35,240,100,223,27,80,87,7,92,87,25,0,0,0,0,0,0,234,232,25,142,106,3,0,0,0,0,0,0,0,144,75,167,105,25,3,144,153,211,197,96,0,0,0,0,0,0,128,28,121,222,132,61,113,145,215,255,220,154,107,191,215,117,52,0,0,0,0,96,140,188,216,89,43,80,22,251,44,0,0,0,0,0,0,64,67,189,220,49,57,128,204,188,66,12,6,128,33,188,210,55,37,212,213,1,253,69,48,2,175,18,131,65,12,38,51,175,22,131,65,12,38,51,175,17,131,65,12,6,104,9,175,173,153,181,232,63,24,0,0,0,0,0,0,0,0,0,0,24,190,175,134,163,183,123,156,95,5,64,11,217,235,123,11,114,233,188,19,62,219,215,149,207,149,59,24,31,138,15,199,182,14,64,179,218,47,51,3,104,41,247,213,131,255,84,244,6,0,96,204,188,94,191,105,48,164,55,250,133,6,101,177,207,2,0,0,0,48,106,127,161,178,0,0,0,0,0,0,228,198,91,29,249,0,0,160,1,46,109,183,13,234,101,114,104,141,229,156,82,94,206,169,229,219,105,97,122,152,145,78,205,12,179,194,236,208,19,39,201,156,48,183,178,30,151,165,251,198,188,48,63,44,72,239,47,28,225,186,117,135,69,97,113,229,53,75,42,227,183,77,184,124,208,189,109,105,245,253,151,213,252,75,203,7,156,99,69,88,25,86,133,213,253,158,91,19,174,168,252,213,221,165,222,82,159,179,149,17,131,197,224,130,198,224,183,139,193,0,0,0,36,106,17,245,164,22,241,128,129,106,17,73,242,142,65,91,185,168,69,0,0,144,39,183,140,191,35,190,117,124,146,220,54,222,182,0,178,119,225,132,119,59,235,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,72,110,25,127,71,124,235,248,36,185,109,188,109,1,0,0,64,49,252,54,126,239,132,168,205,118,40,182,83,202,123,192,193,248,80,124,56,182,53,0,234,229,125,19,106,205,177,183,26,117,247,151,122,75,182,24,0,0,0,0,0,0,0,0,0,0,52,183,247,15,217,70,120,95,181,77,176,246,193,0,0,228,197,7,156,39,7,0,64,77,31,74,179,198,181,105,94,184,46,29,214,167,195,134,116,216,24,111,138,55,167,227,45,241,214,184,39,29,111,139,183,231,172,95,155,29,149,245,217,153,142,251,100,194,0,0,0,0,0,48,132,143,76,200,124,17,128,38,215,150,30,117,91,222,110,59,48,122,151,250,174,129,186,58,160,125,48,35,112,153,24,12,98,48,0,0,0,0,192,73,250,152,115,149,85,132,1,0,0,0,0,0,160,144,62,229,236,44,0,0,0,0,0,0,160,16,14,57,58,10,117,165,239,202,162,57,60,225,175,196,81,104,50,159,73,63,149,71,218,239,110,191,167,253,94,215,217,0,0,90,210,103,39,124,45,124,61,124,35,216,18,0,0,192,240,124,78,255,193,142,202,1,0,0,117,112,163,150,96,0,0,153,184,105,200,60,108,95,181,2,236,28,13,0,0,24,200,95,171,108,2,64,67,252,141,239,88,0,0,0,0,0,0,0,90,202,23,107,30,233,222,235,58,26,48,128,69,19,254,65,59,145,186,88,82,232,237,184,180,230,218,47,155,32,6,23,201,45,226,10,0,192,136,221,42,135,2,0,0,0,70,225,246,19,106,10,215,149,219,70,28,140,15,197,135,71,125,157,166,47,101,86,167,248,199,140,254,242,151,51,173,204,124,165,9,235,66,255,52,130,101,250,231,220,213,181,190,170,82,7,0,0,48,160,127,245,123,169,137,125,109,194,215,253,127,0,0,0,0,128,58,249,119,245,70,128,140,125,179,1,237,131,1,128,198,250,182,95,82,80,87,7,244,31,204,8,252,135,24,12,98,48,153,249,142,24,12,98,48,153,249,174,24,12,98,48,0,0,144,91,223,247,187,31,114,233,60,237,131,1,90,206,15,229,101,0,0,180,132,255,87,51,115,221,171,93,4,0,45,233,174,244,59,238,199,19,78,107,183,37,0,0,0,128,161,252,82,11,15,128,204,252,74,12,6,104,81,255,35,130,3,195,242,107,109,211,0,0,96,196,142,248,213,13,208,64,119,87,163,172,90,68,145,220,219,130,223,174,191,149,17,0,0,35,51,100,246,176,175,154,251,202,131,105,38,167,116,218,6,0,89,41,137,193,0,0,64,33,180,165,191,126,214,198,73,178,46,29,214,167,195,134,116,216,24,111,138,55,167,227,45,241,214,184,39,29,111,139,183,231,236,122,63,59,42,235,179,51,29,247,169,8,183,140,7,249,173,14,0,0,0,0,0,156,160,211,241,3,0,0,0,0,160,165,188,176,109,162,186,38,45,233,226,65,206,44,57,167,180,171,114,94,198,238,82,111,201,57,26,0,192,192,38,201,130,105,81,242,96,0,0,0,0,128,7,252,142,190,43,213,131,1,234,106,242,144,71,146,93,79,14,0,90,199,84,237,195,104,144,87,182,169,69,216,11,128,172,76,83,15,22,131,1,0,0,50,49,189,243,204,54,91,129,124,185,114,144,10,202,85,241,177,231,42,95,157,179,58,11,173,106,134,227,126,136,193,0,0,144,43,103,183,205,60,238,151,222,117,229,236,247,96,124,40,62,44,15,6,104,176,89,39,212,218,196,96,128,230,53,199,241,17,0,0,0,0,0,0,0,78,112,107,188,160,115,143,115,158,25,210,237,241,29,25,183,6,187,179,250,247,245,225,78,222,98,112,146,44,212,166,7,49,24,128,147,208,45,151,0,128,130,88,164,239,74,114,71,191,105,0,0,20,221,217,109,139,245,155,70,19,91,162,22,65,238,168,69,0,0,80,44,75,135,108,89,182,175,218,38,88,251,96,0,0,242,100,153,60,24,0,0,0,0,0,128,166,177,60,61,122,181,54,78,146,117,233,176,62,29,54,164,195,198,120,83,188,57,29,111,137,183,198,61,233,120,91,188,61,103,231,49,236,168,172,207,206,116,220,231,168,28,53,253,174,126,244,104,144,87,182,137,193,246,2,0,0,242,234,236,182,135,232,179,167,5,60,212,111,126,200,165,243,38,28,127,95,12,6,128,102,183,178,243,2,125,74,66,93,29,112,77,79,70,96,149,250,8,136,193,0,0,80,195,234,206,11,135,172,224,233,55,13,160,145,214,232,187,18,0,128,2,250,61,121,48,117,243,48,237,34,160,174,180,139,0,160,53,60,117,156,109,0,12,223,31,212,252,229,184,87,30,60,108,223,47,111,159,31,148,111,127,104,91,209,96,143,168,124,122,239,42,239,107,63,238,183,199,253,228,184,71,126,90,189,247,179,19,230,252,121,229,254,47,74,215,71,55,68,55,70,55,69,159,143,30,120,246,11,81,125,150,246,230,58,189,15,0,0,212,203,35,29,73,205,212,121,67,254,106,214,46,2,0,160,81,30,37,15,206,148,60,24,0,32,27,255,71,30,156,41,121,48,0,64,54,30,45,15,206,148,60,24,0,32,27,143,145,7,103,74,30,12,0,0,0,0,140,149,181,234,193,153,82,15,6,0,0,0,0,160,184,54,116,94,235,218,112,64,230,62,93,141,68,142,201,1,0,0,0,39,111,91,231,133,109,67,61,175,125,48,195,183,189,243,130,54,91,1,234,233,64,44,6,3,0,247,123,108,231,153,242,109,114,230,202,120,224,199,175,138,119,85,178,223,221,105,30,124,117,108,75,1,212,207,227,212,131,1,160,64,254,176,243,143,244,212,5,195,242,132,234,103,69,30,76,179,120,162,122,48,185,163,30,76,235,120,146,24,140,24,12,192,73,123,178,99,114,0,153,120,74,231,174,80,107,158,189,206,209,0,104,136,167,138,193,0,153,122,154,90,4,117,243,116,253,69,64,157,233,47,2,0,0,0,128,60,122,150,243,151,129,150,240,156,206,211,196,43,0,224,164,156,222,185,167,208,103,223,158,91,115,237,181,15,134,214,246,66,191,153,0,50,244,98,81,24,0,0,0,0,128,97,91,24,119,199,139,244,32,62,102,94,162,138,15,5,51,57,100,190,8,195,50,165,188,156,83,203,183,211,194,244,48,35,157,154,25,102,133,217,161,39,253,142,152,19,230,86,214,227,162,116,60,47,204,15,11,210,241,194,17,174,91,119,88,20,22,87,94,179,164,60,126,233,144,49,113,105,245,253,151,213,252,75,203,7,156,99,69,88,25,86,133,213,253,158,91,19,142,189,142,70,159,214,105,32,6,23,50,6,191,188,26,131,95,209,249,202,78,49,24,0,0,0,104,132,91,198,223,17,223,58,62,73,110,27,111,91,0,52,175,87,119,190,70,75,6,224,36,228,237,152,220,107,59,235,121,76,110,104,142,201,1,98,112,35,219,69,156,161,109,26,0,0,52,196,89,42,202,0,153,57,91,12,6,0,160,169,157,219,185,183,33,57,235,121,50,97,40,44,237,34,30,208,191,93,196,62,237,34,0,49,56,179,24,188,95,12,6,26,234,245,157,111,232,188,49,186,41,154,217,128,94,130,111,142,198,62,6,191,49,243,115,52,254,172,28,183,223,116,92,244,126,115,167,24,12,12,36,111,121,112,246,49,248,252,1,115,103,49,152,60,185,180,221,54,16,131,7,142,193,111,73,35,224,159,119,214,47,6,255,69,231,229,237,35,139,193,247,121,107,57,18,191,173,243,237,157,163,139,193,87,180,139,193,32,6,183,94,12,254,203,58,199,224,161,12,167,30,252,142,81,198,96,121,48,136,193,173,24,131,235,123,76,238,2,199,228,0,114,237,157,90,7,3,100,230,93,98,48,192,73,58,146,86,68,78,121,144,237,0,112,178,92,203,8,0,128,34,146,7,3,99,37,111,109,211,222,227,122,114,0,45,77,30,12,32,6,3,249,151,187,243,228,212,34,160,137,189,87,123,120,106,186,61,190,35,206,118,9,238,172,254,253,253,105,12,246,31,161,217,232,55,173,126,242,150,7,191,175,206,121,240,251,59,47,111,255,192,113,223,220,31,172,222,107,100,30,172,223,52,128,225,187,99,156,109,0,140,92,222,242,224,36,249,112,231,71,70,217,119,101,146,60,144,7,95,58,68,213,234,178,202,115,234,193,0,245,167,93,4,48,86,244,31,252,128,254,245,224,203,245,31,12,3,112,76,78,12,30,44,6,95,209,128,99,114,31,235,23,137,63,222,217,232,24,236,152,28,136,193,173,24,131,175,212,62,24,16,131,51,139,193,215,212,53,6,127,106,208,90,196,181,157,98,48,0,64,43,59,232,204,65,128,204,104,23,241,128,254,181,136,67,218,69,0,0,228,84,254,206,147,75,146,191,170,195,121,114,195,33,15,6,196,224,227,99,240,103,6,104,23,241,217,206,207,13,171,234,173,109,26,64,99,92,239,216,35,0,0,199,200,91,45,226,70,231,201,1,52,157,155,212,34,0,114,43,210,135,59,0,0,0,208,18,62,175,82,13,228,194,23,58,159,212,34,173,60,0,242,231,102,49,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,156,200,219,181,237,255,218,181,237,1,0,160,165,253,77,154,211,31,105,191,187,253,158,246,123,219,109,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,94,190,216,105,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,245,246,247,157,182,1,212,211,129,248,254,169,253,165,222,146,237,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,145,77,14,173,177,156,83,202,203,57,181,124,59,45,76,15,51,210,169,153,97,86,152,29,122,226,36,153,19,230,86,214,227,31,58,147,100,94,152,31,22,164,247,23,142,112,221,186,195,162,176,184,242,154,37,195,120,237,210,234,60,203,106,206,189,124,192,57,86,132,149,97,85,88,221,239,185,53,97,87,233,190,169,221,165,222,82,95,169,8,123,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,180,166,201,161,53,150,115,74,121,57,167,150,111,167,133,233,97,70,58,53,51,204,10,179,67,79,156,36,115,194,220,202,122,220,210,153,36,243,194,252,176,32,189,191,112,132,235,214,29,22,133,197,149,215,44,25,198,107,151,86,231,89,86,115,238,229,3,206,177,34,172,12,171,194,234,126,207,173,9,187,74,247,77,237,46,245,150,250,74,69,216,19,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,162,203,219,117,52,110,117,29,13,0,0,0,0,128,1,229,173,30,124,155,122,48,0,0,0,0,0,0,0,0,64,230,242,214,54,237,118,109,211,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,212,157,157,182,193,232,124,201,150,3,24,99,223,28,118,228,253,150,24,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,105,114,104,141,229,156,82,94,206,169,229,219,105,97,122,152,145,78,205,12,179,194,236,208,19,39,201,156,48,183,178,30,223,238,76,146,121,97,126,88,144,222,95,56,194,117,235,14,139,194,226,202,107,150,12,227,181,75,171,243,44,171,57,247,242,1,231,88,17,86,134,85,97,117,191,231,214,132,93,165,251,166,118,151,122,75,125,165,34,236,137,0,0,99,43,111,121,240,127,200,131,1,0,0,0,0,0,0,0,0,0,0,0,0,10,37,111,231,201,125,199,121,114,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,38,242,118,174,242,119,157,171,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,180,136,188,93,79,238,123,174,39,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,14,228,173,255,224,31,233,63,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114,101,114,104,141,229,156,82,94,206,169,229,219,105,97,122,152,145,78,205,12,179,194,236,208,19,39,201,156,48,183,178,30,119,117,38,201,188,48,63,44,72,239,47,28,225,186,117,135,69,97,113,229,53,75,134,241,218,165,213,121,150,213,156,123,249,128,115,172,8,43,195,170,176,186,223,115,107,194,174,210,125,83,187,75,189,165,190,82,17,246,68,16,131,243,16,131,127,44,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,128,201,161,53,150,115,74,121,57,167,150,111,167,133,233,97,70,58,53,51,204,10,179,67,79,156,36,115,194,220,202,122,252,180,51,73,230,133,249,97,65,122,127,225,8,215,173,59,44,10,139,43,175,89,50,140,215,46,173,206,179,172,230,220,203,7,156,99,69,88,25,86,133,213,253,158,91,19,118,149,238,155,218,93,234,45,245,149,138,176,39,130,24,156,135,24,252,51,49,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,181,159,119,38,201,218,56,73,214,165,195,250,116,216,144,14,27,227,77,241,230,116,188,37,222,26,31,189,174,242,182,120,123,156,175,181,222,81,89,159,157,233,216,117,149,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,250,155,28,90,99,57,167,148,151,115,106,249,118,90,152,30,102,164,83,51,195,172,48,59,244,196,73,50,39,204,173,172,199,47,58,147,100,94,152,31,22,164,247,23,142,112,221,186,195,162,176,184,242,154,37,195,120,237,210,234,60,203,106,206,189,124,192,57,86,132,149,97,85,88,221,239,185,53,97,87,233,190,169,221,165,222,82,95,169,8,123,34,192,81,255,211,105,27,0,0,0,0,0,228,195,111,84,124,1,154,206,221,98,51,64,230,110,25,127,71,124,235,248,36,185,109,188,109,1,0,64,254,252,86,237,1,200,88,220,213,216,247,111,235,10,93,237,39,252,141,113,93,123,226,251,167,31,52,192,223,31,127,210,203,212,145,190,195,132,174,206,6,175,219,72,116,29,179,44,231,86,215,254,117,131,156,1,55,177,203,121,114,192,216,250,157,38,138,152,0,99,35,111,253,69,60,56,52,119,127,17,147,143,251,166,209,95,4,173,233,210,118,219,64,12,30,56,6,95,214,94,223,24,60,165,235,242,246,122,198,224,227,13,30,131,175,104,23,131,1,0,0,128,193,69,227,108,3,96,228,242,86,15,190,168,174,199,228,166,14,217,86,67,31,238,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,118,230,234,187,30,32,51,243,196,96,0,0,78,82,183,156,18,32,51,139,197,96,0,0,10,104,169,60,24,128,17,88,230,123,3,0,0,0,24,3,191,91,179,6,241,191,237,73,114,164,253,238,246,123,218,239,109,183,189,0,0,0,0,0,0,198,214,138,202,209,156,121,109,39,62,51,255,184,71,22,84,239,45,108,27,248,157,186,219,174,143,110,136,110,140,110,138,62,31,61,240,232,23,162,250,44,231,205,117,122,31,0,0,160,245,173,170,217,42,109,111,124,255,212,254,82,111,201,22,3,0,32,47,86,15,153,11,239,171,230,190,242,96,128,250,90,115,146,181,136,223,211,203,15,64,3,221,61,97,168,24,12,0,0,64,45,15,235,122,120,87,87,108,59,192,112,77,212,54,13,0,114,239,15,28,225,5,104,176,71,168,69,192,8,168,69,0,100,231,145,93,98,48,0,0,80,31,223,204,213,111,138,141,93,155,186,102,181,249,175,2,64,189,237,208,98,165,97,118,234,187,18,24,19,143,21,201,1,50,243,56,49,24,0,0,0,0,128,194,122,188,118,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,45,237,9,122,89,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,101,61,213,213,55,0,128,2,184,36,28,8,79,147,247,228,196,71,66,173,57,246,198,247,79,237,47,245,150,108,49,24,91,79,175,68,219,63,22,117,1,114,109,114,200,124,17,134,101,74,121,57,167,150,111,167,133,233,97,70,58,53,51,204,10,179,67,79,154,51,206,9,115,43,235,241,215,157,73,50,47,204,15,11,210,251,11,71,184,110,221,97,81,88,92,121,205,146,97,188,118,105,117,158,101,53,231,94,62,224,28,43,194,202,176,42,172,238,247,220,154,176,171,146,253,238,78,243,224,62,153,48,0,0,77,238,139,157,182,1,99,237,239,237,117,80,87,7,28,147,131,130,200,91,61,248,118,245,96,160,133,220,233,87,204,40,125,201,150,3,24,99,223,28,118,228,253,150,24,13,212,148,183,90,196,127,168,69,0,0,48,12,121,203,131,127,36,15,6,0,96,24,242,150,7,63,163,75,30,12,0,0,0,0,80,219,179,245,88,12,208,207,209,235,104,60,71,124,204,9,215,209,128,86,115,154,248,43,6,3,0,0,0,0,0,0,144,51,47,208,26,128,12,220,50,254,142,248,214,241,73,114,219,120,219,2,0,0,0,0,200,143,209,246,31,252,210,180,86,255,178,49,172,215,15,183,255,224,163,94,222,53,186,254,131,147,228,129,254,131,135,67,255,193,0,0,0,0,0,0,0,0,0,0,208,252,244,23,1,140,149,209,158,163,145,36,175,29,211,30,149,134,123,142,198,15,199,37,201,188,48,186,115,52,186,195,3,231,104,44,25,198,107,235,115,142,198,25,93,206,209,0,49,120,228,206,108,202,24,252,11,49,24,72,0,160,177,254,68,255,206,0,212,153,99,114,0,0,0,0,0,0,0,0,0,0,0,0,0,48,152,215,117,237,170,217,195,207,222,248,254,169,253,165,94,61,246,64,75,218,173,55,7,128,130,121,86,71,111,215,181,225,211,225,186,208,36,11,4,144,19,167,117,244,117,125,50,92,35,186,2,12,226,92,21,8,128,49,179,255,164,98,238,159,118,93,31,221,16,221,24,221,20,205,140,235,191,108,55,71,254,63,0,0,0,0,205,239,141,213,10,147,246,193,0,0,163,241,166,174,55,119,157,175,165,68,203,121,139,60,24,0,0,0,104,176,191,56,161,102,116,93,185,197,246,193,248,80,124,56,78,0,168,163,183,14,89,165,223,87,173,1,171,7,3,212,223,219,196,96,0,0,0,0,0,0,154,202,134,144,36,235,226,36,89,159,14,27,210,97,99,188,41,222,156,142,183,196,91,227,158,116,188,45,222,158,179,246,91,239,168,28,179,219,153,174,87,159,163,114,0,0,0,0,20,216,59,211,90,217,187,244,6,86,16,231,117,36,201,218,184,104,245,224,125,29,247,141,213,131,105,62,23,150,163,239,187,197,96,49,56,199,49,248,61,142,201,1,0,0,0,0,0,39,120,191,227,99,140,129,167,6,219,0,128,70,248,128,235,104,0,0,144,123,31,116,29,13,128,204,124,72,12,6,104,34,23,171,7,3,140,145,75,228,193,0,153,57,32,6,3,0,64,234,195,234,193,0,0,228,222,165,234,193,0,153,185,76,12,6,0,0,0,0,0,128,92,186,188,124,44,112,220,184,98,172,237,21,174,46,1,212,208,22,159,222,182,188,189,255,227,207,109,59,122,235,28,13,0,104,101,87,118,61,188,171,203,55,57,12,219,196,234,231,69,251,96,0,104,101,159,144,7,195,136,200,131,1,0,0,0,0,242,226,26,253,166,209,148,174,117,94,11,0,0,0,57,117,232,164,126,243,30,246,139,25,0,0,0,0,104,17,159,209,54,13,0,0,0,200,212,231,78,168,78,92,87,238,59,205,117,52,0,234,239,122,245,96,128,204,220,32,6,3,169,201,161,53,150,115,74,121,57,167,150,111,167,133,233,97,70,58,53,51,204,10,179,67,79,250,75,125,78,152,91,89,143,27,211,216,54,47,204,15,11,210,251,11,71,184,110,221,97,81,88,92,121,205,146,97,188,118,105,117,158,101,53,231,94,62,224,28,43,194,202,176,42,172,238,247,220,154,176,171,18,121,119,167,49,184,79,20,6,0,32,39,62,175,22,1,144,153,47,136,193,0,0,0,0,0,0,0,64,78,253,157,118,17,77,225,139,174,137,4,64,75,251,123,223,100,180,168,139,7,233,17,237,156,146,115,149,1,0,138,238,150,244,119,206,218,52,95,92,151,14,235,211,97,67,58,108,140,55,197,155,211,241,150,120,107,124,180,207,158,109,241,246,156,245,177,187,163,178,62,59,211,177,60,152,230,112,171,154,3,57,115,229,32,223,28,87,197,199,214,34,174,214,135,59,249,137,227,233,222,124,135,88,206,144,110,143,239,200,56,234,221,89,253,251,218,69,208,60,238,20,59,201,25,121,48,173,228,75,98,48,98,48,0,0,5,241,101,237,34,84,132,25,210,87,212,8,160,174,14,56,38,7,208,64,255,164,191,136,38,242,245,174,111,116,253,155,92,18,0,104,184,127,239,218,83,232,35,253,231,214,92,251,189,106,17,20,218,183,252,42,129,178,120,130,109,0,0,0,0,0,0,0,0,0,208,186,190,119,66,139,200,235,202,109,132,15,198,135,226,195,250,77,3,0,32,39,254,83,127,17,0,0,0,0,0,0,208,80,223,63,230,152,220,254,112,226,179,142,201,1,0,0,0,0,0,64,43,57,35,190,179,227,44,125,78,0,12,211,169,174,233,9,0,0,0,0,0,0,0,0,192,73,251,81,215,195,219,142,127,196,245,228,0,198,206,217,109,119,117,137,193,0,99,225,199,77,122,61,185,159,150,151,107,97,123,113,255,51,221,5,94,119,32,175,126,222,101,27,0,173,226,59,29,247,79,57,87,153,177,117,173,111,75,0,0,0,0,0,40,164,95,166,199,8,214,198,73,178,46,29,214,167,195,134,116,216,24,111,138,55,167,227,45,241,214,184,39,29,111,139,183,231,172,13,237,142,202,250,236,76,199,125,142,202,1,0,144,19,191,106,210,115,52,0,138,229,191,7,136,198,255,211,37,6,3,52,198,175,107,182,130,223,235,122,114,0,13,244,27,181,8,0,0,10,232,136,60,24,32,51,247,138,193,0,217,17,131,1,154,212,41,19,197,96,0,0,0,0,128,124,24,55,113,168,103,29,147,3,104,164,14,49,24,0,0,0,0,32,247,186,38,214,154,67,223,149,0,0,192,216,154,60,113,202,196,169,19,167,77,108,138,133,1,50,51,61,141,2,71,218,239,110,191,167,253,222,118,91,3,160,145,102,156,144,119,93,87,174,9,31,140,15,197,135,99,91,7,160,158,102,182,196,57,26,15,246,123,28,32,99,243,38,206,23,139,129,194,89,160,30,12,0,0,0,0,208,242,186,245,93,9,0,0,0,0,80,8,75,154,186,30,188,180,192,231,100,116,107,139,13,0,0,0,0,0,0,0,0,180,164,135,184,174,50,12,105,133,30,171,161,44,158,96,27,0,0,0,0,0,156,140,213,250,15,6,200,204,26,49,24,0,0,0,200,212,239,159,80,157,184,174,124,158,198,193,248,80,124,56,182,117,40,174,63,152,248,8,103,108,144,137,71,166,123,222,145,246,187,219,239,105,191,87,191,226,0,117,244,40,199,228,0,0,128,150,181,86,173,18,0,224,164,172,211,46,2,96,140,172,119,76,14,32,51,27,142,137,193,251,131,24,12,0,0,0,0,228,211,166,137,123,10,125,164,255,220,154,107,239,154,158,0,0,0,0,141,182,213,89,191,0,0,20,80,143,60,24,24,165,35,113,146,108,19,67,0,0,96,132,182,235,55,13,96,140,236,208,111,26,0,0,0,48,134,118,142,89,45,226,173,29,103,196,103,198,103,169,41,3,12,211,169,250,236,1,0,160,16,30,59,241,225,109,199,63,50,146,182,105,79,113,118,8,0,0,0,48,66,79,117,158,28,192,24,121,154,243,228,0,50,243,244,99,98,240,254,32,6,3,0,0,0,0,20,199,51,181,139,0,24,35,207,106,210,118,17,207,41,47,215,194,246,86,223,190,167,77,60,109,148,235,208,221,242,235,14,0,0,0,0,80,60,167,235,79,14,168,161,45,78,146,229,142,3,1,0,0,0,0,0,0,52,173,231,106,255,1,117,117,192,181,237,1,26,232,121,174,163,49,6,158,47,63,4,106,208,62,152,147,245,2,223,53,80,87,106,17,0,141,244,66,181,136,49,240,34,249,33,80,131,90,4,0,0,0,144,133,23,187,158,28,192,24,121,137,99,114,0,0,0,0,0,0,48,198,94,166,93,4,192,24,121,185,118,17,0,153,121,133,24,12,208,4,142,246,23,241,74,125,203,0,140,153,87,77,188,176,109,168,231,229,193,0,0,228,209,171,229,193,0,77,229,53,218,166,145,51,175,117,156,3,0,232,231,12,109,211,0,50,114,166,122,48,0,0,0,48,166,206,106,210,122,240,235,38,158,147,46,217,194,2,95,231,185,219,53,174,1,0,26,100,87,205,86,147,123,171,45,130,29,147,3,168,175,221,98,48,64,166,122,181,15,6,200,76,159,24,12,144,153,61,98,48,64,102,206,21,131,1,154,200,94,253,166,1,140,145,243,228,193,0,0,0,0,100,226,124,215,155,0,0,0,0,200,220,219,213,104,0,40,152,191,244,221,151,188,163,186,13,180,15,46,170,119,250,28,0,0,5,244,46,121,48,64,102,222,45,6,3,140,169,247,232,179,7,96,140,92,164,207,30,128,204,188,87,12,6,104,10,239,211,10,9,6,245,254,137,143,240,9,33,19,143,76,247,188,35,237,119,183,223,211,126,111,187,173,1,80,63,31,104,233,90,196,135,228,37,0,0,0,0,0,0,0,192,176,93,50,241,225,109,199,63,50,146,115,149,159,162,157,2,0,0,156,132,143,148,51,234,133,5,62,39,164,219,249,48,0,0,13,116,169,62,123,0,50,115,153,24,12,144,153,143,138,193,0,0,0,0,0,0,0,0,0,0,100,228,234,137,239,158,96,43,0,100,227,19,98,48,0,0,5,244,73,121,48,64,67,76,14,173,177,156,83,202,203,57,181,124,59,45,76,15,51,210,169,153,97,86,152,29,122,226,36,153,19,230,86,214,227,154,137,73,50,47,204,15,11,210,251,11,71,184,110,221,97,81,88,92,121,205,146,97,188,118,105,117,158,101,53,231,94,62,224,28,43,194,202,176,42,172,238,247,220,154,176,171,210,75,196,238,82,111,169,79,143,17,32,6,183,72,12,254,148,24,12,13,119,169,158,238,197,224,65,98,240,101,237,245,142,193,159,158,152,69,12,190,162,93,12,6,0,0,0,0,234,43,111,245,224,131,153,29,147,59,52,228,149,49,28,147,3,0,24,220,225,137,182,1,0,0,0,140,204,103,252,154,134,17,250,172,79,13,0,228,192,245,190,209,97,132,228,193,156,156,27,237,65,80,87,7,226,251,167,246,151,122,181,14,102,4,110,18,143,97,132,228,193,212,207,231,237,77,32,6,3,0,0,0,80,8,127,163,178,5,35,164,30,76,253,252,173,189,9,196,96,50,243,119,246,38,16,131,1,160,128,190,232,27,29,70,72,30,76,253,252,189,189,9,196,96,50,243,15,246,38,16,131,25,83,183,216,131,160,174,90,165,207,158,219,124,246,1,0,0,128,49,116,187,90,4,0,77,225,75,190,145,0,160,165,76,14,173,177,156,83,202,203,57,181,124,59,45,76,15,51,210,169,153,97,86,152,29,122,226,36,153,19,230,86,214,227,31,211,92,100,94,152,31,22,164,247,23,142,112,221,186,195,162,176,184,242,154,37,195,120,237,210,234,60,203,106,206,189,124,192,57,86,132,149,97,85,88,221,239,185,53,97,87,165,53,196,238,82,111,169,207,213,140,128,204,124,57,141,170,107,211,56,187,46,29,214,167,195,134,116,216,24,111,138,55,167,227,45,241,214,248,104,12,222,22,111,143,243,181,214,59,42,235,179,51,29,139,193,12,237,43,170,32,80,87,174,233,9,0,0,0,0,0,0,140,222,191,56,138,15,0,192,16,254,53,205,23,143,180,223,221,126,79,251,189,237,182,6,64,253,124,109,200,223,227,251,170,109,130,181,15,110,148,111,170,136,0,52,133,175,119,125,107,226,183,197,100,0,0,234,226,187,105,102,249,189,116,248,207,116,248,175,65,178,204,239,151,31,255,193,196,75,58,108,47,160,89,124,167,26,145,212,131,1,154,221,79,38,254,84,53,19,0,0,0,24,194,207,181,15,6,0,160,96,126,89,243,248,217,94,215,209,104,33,255,237,120,40,0,0,80,245,107,191,16,0,128,6,115,142,6,192,88,249,141,120,11,208,64,255,91,141,178,39,211,46,226,136,88,13,80,80,119,251,6,104,65,87,13,248,141,127,143,255,37,192,168,77,136,31,222,213,21,219,14,48,92,19,157,163,1,0,0,0,0,0,0,0,0,0,0,45,228,94,215,50,2,0,0,0,160,53,233,83,7,234,234,128,254,34,134,225,148,73,165,73,182,2,52,163,142,174,36,137,39,117,118,53,207,18,117,13,184,44,175,27,36,190,182,77,218,85,121,102,119,26,131,251,68,97,0,0,0,160,142,218,85,53,11,110,156,61,0,32,51,15,18,131,1,50,51,94,12,6,200,76,135,24,12,0,0,144,153,206,73,93,147,38,250,93,150,188,163,122,238,169,243,228,138,96,146,125,30,0,0,128,22,243,147,137,63,213,115,22,0,0,0,0,0,133,244,248,9,182,1,0,0,64,51,154,49,233,250,232,134,232,198,232,166,104,102,92,255,119,191,57,178,133,139,108,230,164,36,249,222,196,36,249,207,116,248,175,65,218,206,125,191,252,248,15,38,94,210,113,116,124,112,220,181,227,108,55,32,107,179,170,231,174,58,87,153,218,102,59,215,25,234,202,117,149,1,104,54,15,150,239,1,5,51,95,220,3,0,0,0,114,169,91,213,3,0,160,80,22,201,255,0,0,0,0,200,192,178,73,203,155,190,50,181,187,163,183,163,175,35,73,246,164,195,185,233,176,183,195,255,45,223,206,75,255,195,107,227,36,89,151,14,235,211,97,67,58,108,140,55,197,155,211,241,150,120,107,220,147,142,183,197,219,227,38,93,252,81,218,87,217,175,119,166,235,213,231,108,101,0,104,144,223,117,84,22,0,0,154,218,138,73,43,39,221,95,15,94,37,127,47,4,245,224,134,212,131,195,125,163,168,189,112,59,20,13,241,251,147,254,96,210,35,38,61,82,84,6,49,152,12,60,74,12,6,0,0,0,0,0,0,128,220,219,56,105,147,182,1,0,0,131,218,60,100,174,180,175,122,86,198,254,82,175,30,123,0,0,0,0,0,10,109,155,163,239,0,0,0,192,152,219,161,34,1,0,180,144,199,78,122,156,236,133,147,244,120,251,16,0,0,5,244,135,242,96,0,0,0,0,0,40,144,63,154,116,65,155,173,0,245,116,32,190,127,74,255,193,0,208,204,158,160,141,12,212,149,60,24,160,145,158,232,90,70,212,205,147,228,193,80,87,242,96,128,70,122,242,73,231,193,79,145,251,0,0,0,0,99,232,169,106,17,0,0,20,208,211,228,193,0,153,121,186,24,12,0,0,0,140,161,103,168,69,0,0,0,0,0,20,194,169,234,193,0,0,20,208,179,229,193,0,0,0,192,24,58,77,45,2,0,0,0,224,36,252,114,130,109,0,0,0,0,0,0,0,0,0,0,0,121,242,92,103,96,3,153,251,244,184,251,167,246,151,122,75,182,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,214,94,58,233,194,182,161,158,223,87,237,35,66,127,17,0,0,192,200,188,108,210,203,245,133,9,12,169,45,78,146,229,237,182,3,0,0,0,0,0,0,0,0,0,0,0,0,0,64,45,175,158,244,26,231,111,195,0,94,123,194,39,227,186,248,232,237,193,248,80,124,56,182,117,0,32,79,206,156,116,150,140,24,134,112,118,250,9,57,210,126,119,251,61,237,247,234,211,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114,104,114,104,141,229,156,82,94,206,169,229,219,105,97,122,152,145,78,205,12,179,194,236,208,19,39,201,156,48,183,178,30,175,159,148,36,243,194,252,176,32,189,191,112,132,235,214,29,22,133,197,149,215,44,25,198,107,151,86,231,89,86,115,238,229,3,206,177,34,172,12,171,194,234,126,207,173,9,187,74,247,77,237,46,245,150,250,74,69,216,19,1,70,238,141,147,254,204,181,105,1,0,200,133,91,198,223,17,223,58,62,73,110,27,111,91,0,0,228,85,222,142,201,157,239,152,28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,255,111,239,78,224,228,72,235,194,225,183,93,243,76,232,201,76,50,247,76,18,115,95,106,46,228,21,60,114,223,17,4,69,240,64,216,93,21,79,78,97,221,77,102,246,72,240,224,242,2,89,118,85,174,101,23,69,217,229,216,205,33,184,155,64,20,117,77,194,0,162,168,120,163,176,120,224,95,65,69,179,187,214,91,211,219,233,108,50,247,76,119,87,119,245,247,251,249,84,87,77,119,245,244,83,207,244,252,250,233,95,61,245,60,0,80,3,111,88,24,199,91,163,56,222,150,44,219,147,101,71,178,236,140,118,69,187,147,245,158,104,111,52,58,126,240,254,232,64,148,173,163,62,88,58,158,67,201,218,248,193,0,147,187,152,196,202,175,122,146,122,0,72,219,47,155,105,25,96,214,230,58,167,231,155,196,96,0,0,0,32,69,191,34,55,1,144,178,95,19,137,1,166,97,174,231,228,0,0,0,0,0,104,70,119,57,23,7,0,64,67,208,47,2,32,43,238,150,139,0,0,0,0,0,200,156,119,203,253,2,51,210,21,26,163,156,221,197,114,246,20,111,123,67,95,232,79,182,6,194,96,88,20,70,231,147,91,28,150,148,142,227,55,147,40,184,52,44,11,203,147,159,87,204,240,216,86,134,85,97,117,233,57,107,166,241,220,181,229,125,214,77,185,247,250,113,247,216,16,54,134,77,97,243,152,199,182,132,195,165,57,228,142,228,135,242,230,147,3,154,137,190,105,0,98,48,0,0,212,146,118,48,0,0,0,0,144,69,159,159,215,31,157,206,157,201,13,68,149,255,221,103,115,149,251,93,211,237,31,252,240,188,74,246,15,254,192,164,215,92,232,31,12,204,85,214,174,209,136,227,251,22,222,213,62,187,24,28,199,151,99,240,221,237,83,239,45,6,3,98,240,213,49,248,126,49,24,0,0,102,233,163,70,223,1,0,200,180,236,229,131,127,95,62,24,0,0,0,0,128,105,49,110,26,0,0,0,80,75,114,17,64,173,100,173,127,240,251,219,43,58,110,218,132,189,132,71,22,234,31,12,136,193,87,199,224,59,66,37,99,240,199,141,93,9,136,193,113,253,181,131,63,161,29,12,136,193,169,197,224,79,138,193,0,85,225,156,28,0,0,0,0,0,0,0,0,0,89,245,233,133,113,124,177,245,145,214,71,91,31,107,85,27,64,227,251,115,179,37,3,212,57,215,104,0,0,0,64,245,100,109,204,158,191,90,88,201,49,123,38,103,204,30,128,236,250,107,253,34,128,38,228,156,28,80,43,89,203,69,252,173,92,4,0,0,0,0,0,211,228,156,28,0,0,0,0,144,69,89,235,31,28,199,159,93,120,87,251,236,250,7,199,241,229,254,193,119,183,79,189,183,254,193,128,24,124,117,12,254,7,49,24,0,0,102,65,223,52,0,49,24,64,12,6,64,12,6,16,131,1,42,233,243,243,250,163,211,185,51,185,129,168,242,191,251,108,174,114,191,107,186,125,211,238,8,149,28,63,248,115,11,39,219,95,223,52,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,250,247,165,133,211,221,243,203,11,99,0,0,0,0,0,0,160,170,190,226,172,28,192,140,153,203,8,64,12,6,16,131,1,16,131,1,196,96,0,234,215,69,125,33,128,25,232,10,141,81,206,238,98,57,123,138,183,189,161,47,244,39,91,3,97,48,44,10,251,162,56,94,28,150,148,142,227,145,36,6,46,13,203,194,242,228,231,21,51,60,182,149,97,85,88,93,122,206,154,105,60,119,109,121,159,117,83,238,189,126,220,61,54,132,141,97,83,216,60,230,177,45,225,112,254,241,173,35,249,161,252,112,190,25,222,137,208,156,62,222,174,14,102,231,81,45,94,96,206,178,214,14,126,76,59,24,0,96,60,190,63,50,165,143,69,35,81,186,37,248,120,249,245,143,37,237,96,127,17,160,153,232,155,6,32,6,3,136,193,0,213,147,181,126,17,185,78,253,34,0,26,153,118,48,128,24,12,0,0,181,164,29,12,0,0,0,0,100,81,190,83,29,0,0,64,51,105,241,29,0,72,89,214,174,85,190,35,84,242,90,229,48,105,148,118,173,50,0,0,0,0,64,163,40,212,233,89,185,182,114,185,204,101,4,0,80,29,243,83,110,9,182,143,243,250,29,115,46,83,91,71,114,100,29,237,29,245,83,207,29,227,150,229,134,9,218,184,55,230,245,139,128,230,176,160,179,63,58,157,59,147,27,168,194,76,194,103,115,163,183,11,59,59,175,138,169,243,58,110,42,191,218,147,198,137,77,133,57,199,206,250,142,193,55,71,83,197,224,5,29,98,48,0,0,0,204,69,111,103,159,235,130,103,160,95,191,8,0,128,76,89,174,53,12,0,64,19,233,237,92,161,5,60,3,242,193,64,37,173,42,198,148,213,226,240,52,173,17,131,129,10,234,237,92,43,254,206,128,118,48,0,64,179,88,175,157,12,0,0,0,48,109,23,163,56,254,26,249,20,96,134,178,54,175,242,215,118,86,114,94,229,201,153,87,25,72,219,6,109,63,0,0,50,106,99,231,155,231,171,5,0,0,0,0,0,152,139,205,122,150,0,25,176,69,44,3,0,0,0,106,232,201,114,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,77,231,27,58,227,120,107,20,199,219,146,101,123,178,236,72,150,157,209,174,104,119,178,222,19,237,141,246,37,235,253,209,129,40,91,71,125,176,116,60,135,146,245,112,222,187,0,0,0,0,168,180,167,94,53,15,200,241,98,54,226,68,116,50,58,149,177,60,75,229,125,163,57,84,0,0,0,0,0,0,0,0,154,222,55,119,190,108,161,90,128,177,94,126,213,127,198,84,125,211,190,69,127,44,0,0,0,0,154,208,54,121,49,26,212,219,39,184,10,249,198,252,225,210,88,105,71,242,67,121,227,166,49,185,237,98,32,84,212,157,229,216,124,44,137,193,234,3,72,207,14,227,7,139,194,212,133,157,218,219,100,204,123,38,248,228,184,39,122,98,46,226,94,227,166,1,64,147,219,173,29,76,198,104,7,211,72,246,136,193,136,193,0,53,181,215,57,57,231,228,152,212,62,237,83,168,40,125,211,0,170,105,255,164,45,151,163,121,49,24,0,0,0,168,148,167,79,121,6,229,22,249,96,104,122,207,112,174,21,32,53,223,38,6,3,164,230,153,98,48,0,0,0,144,97,207,146,251,0,72,205,183,139,193,0,0,13,238,63,163,239,208,166,3,128,186,247,108,159,215,64,38,124,103,231,119,4,181,48,177,231,36,209,126,117,219,232,214,188,121,205,113,196,107,218,252,213,129,201,181,68,215,182,172,111,29,123,255,117,45,163,183,39,162,147,209,41,243,104,0,0,0,0,0,0,0,0,0,85,241,142,112,103,120,174,190,252,25,113,215,148,189,152,205,101,4,52,175,115,133,145,232,124,33,142,47,20,212,5,0,0,0,0,0,0,0,0,192,108,116,77,123,196,221,239,73,181,127,114,119,177,156,61,197,219,222,208,23,250,147,173,129,48,24,22,133,125,81,28,47,14,75,74,199,113,160,45,142,151,134,101,97,121,242,243,138,25,142,38,188,50,172,10,171,75,207,89,51,141,231,174,45,239,179,110,202,189,215,143,187,199,134,176,49,108,10,155,199,60,182,37,28,46,245,10,62,146,31,202,15,235,33,12,0,0,0,153,246,188,206,145,36,191,241,125,174,13,135,248,5,254,15,0,96,140,151,119,168,131,74,184,86,59,3,152,133,87,136,193,98,48,0,0,0,212,212,117,190,69,3,0,0,0,0,0,0,0,117,172,43,204,230,89,47,172,121,143,136,233,142,93,249,61,198,174,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,204,137,170,60,67,253,15,119,134,142,214,171,94,99,94,199,77,209,165,237,39,141,243,250,133,57,151,169,45,249,13,243,59,218,171,124,108,51,209,241,132,178,220,92,62,250,27,38,24,17,109,65,135,113,211,128,90,251,81,115,132,2,0,48,3,63,222,249,162,89,183,32,251,162,254,232,116,238,76,110,32,170,124,185,206,230,252,109,102,231,197,229,191,231,177,36,23,161,62,160,158,189,204,55,120,128,148,253,132,72,12,0,0,52,180,87,200,7,67,147,136,170,222,135,246,149,157,250,7,235,31,12,0,80,123,215,119,254,164,243,117,13,230,117,229,86,179,92,4,48,123,55,138,254,0,0,0,0,85,115,68,238,5,0,0,0,0,0,0,128,57,57,210,54,212,54,220,22,199,55,37,203,205,201,50,228,76,116,198,221,154,252,149,183,70,113,188,45,89,182,39,203,142,100,217,25,237,138,118,39,235,61,209,222,104,95,178,222,31,29,136,234,180,248,179,116,180,237,241,245,161,228,184,140,23,193,84,134,197,65,106,224,57,65,29,0,0,220,164,237,221,36,154,51,23,113,123,105,212,30,185,8,0,224,106,55,107,7,55,9,237,96,237,96,0,168,95,191,86,71,115,198,144,93,250,69,64,250,158,216,63,248,22,249,136,38,160,127,176,92,4,0,0,0,164,227,75,5,117,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,144,158,235,91,142,93,49,39,193,241,226,168,244,39,162,147,209,169,140,141,79,15,80,143,49,248,85,98,48,0,0,153,246,211,157,183,181,76,246,248,209,242,12,114,199,242,67,102,147,3,0,0,32,83,186,66,99,148,179,187,88,206,158,226,109,111,232,11,253,201,214,64,24,12,139,194,232,220,246,139,195,146,210,113,188,58,57,175,181,52,44,11,203,147,159,87,204,240,216,86,134,85,97,117,233,57,107,166,241,220,181,229,125,214,77,185,247,250,113,247,216,16,54,134,77,97,243,152,199,182,132,195,165,12,196,145,36,23,209,12,115,219,191,166,51,251,199,8,0,64,28,191,118,210,118,159,115,114,0,0,192,88,63,47,127,12,0,0,0,48,13,191,36,139,2,0,48,39,111,212,158,2,0,0,0,0,0,0,0,102,236,92,97,36,58,95,136,227,11,5,117,1,0,0,0,0,0,0,0,48,119,111,186,106,252,135,227,209,232,237,137,232,100,116,42,82,59,0,149,116,155,249,228,0,154,212,155,141,185,6,80,114,109,203,120,247,94,87,188,87,46,2,0,0,0,106,237,246,36,119,185,53,249,54,190,45,89,182,39,203,142,100,217,25,237,138,118,39,235,61,209,222,104,95,178,222,31,29,200,216,247,245,131,165,227,57,148,172,135,157,149,3,0,0,184,202,29,250,185,64,69,221,89,206,172,232,31,204,212,126,69,12,6,49,24,0,0,0,0,96,142,126,85,255,96,25,97,0,0,0,128,6,242,107,250,207,2,87,120,139,49,220,1,0,0,0,50,234,78,249,96,224,10,242,193,0,48,234,157,218,201,0,117,225,46,241,24,72,205,175,23,35,208,138,214,230,173,129,149,77,124,236,0,0,213,247,27,206,201,1,164,230,221,98,48,64,106,126,83,12,6,0,0,0,0,0,0,0,0,0,0,32,101,247,118,14,181,13,183,197,241,77,109,234,162,57,220,154,252,165,183,70,113,188,45,89,182,39,203,142,100,217,25,237,138,118,39,235,61,209,222,104,95,178,222,31,29,136,178,117,212,71,75,239,239,67,201,113,13,187,74,3,0,0,0,0,0,0,0,0,0,0,0,128,39,56,222,121,194,220,241,0,164,228,164,207,32,0,128,58,246,224,85,173,181,211,157,103,154,164,253,246,97,237,212,186,240,17,127,7,0,0,0,0,0,0,0,0,0,0,0,106,228,247,244,97,7,0,160,9,253,190,118,48,0,0,13,231,15,38,109,197,30,205,95,218,58,150,31,202,171,45,128,202,250,67,49,24,32,53,15,137,193,0,169,249,35,49,24,0,0,0,0,0,0,0,0,0,0,160,38,62,214,217,187,64,45,64,115,235,75,162,192,197,214,71,90,31,109,125,172,85,109,212,218,136,113,233,64,12,22,131,83,242,113,237,96,16,131,197,96,0,0,0,128,166,241,199,206,202,65,83,248,148,255,117,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,186,247,23,147,142,17,113,52,127,105,235,88,126,40,175,182,0,0,0,0,0,0,0,0,0,152,157,191,188,170,183,218,241,104,244,246,68,116,50,58,21,169,29,128,74,250,171,58,237,31,252,183,197,114,173,104,109,222,191,204,202,38,62,118,0,128,234,251,59,215,201,1,164,230,239,197,96,128,212,124,86,12,6,0,0,0,0,184,202,191,38,153,211,173,81,28,111,75,150,237,201,178,35,89,118,70,187,162,221,201,122,79,180,55,218,151,172,247,71,7,50,118,29,195,193,210,241,28,74,214,195,50,194,64,106,254,77,12,22,131,1,0,0,0,0,0,0,0,0,152,194,151,58,167,218,227,150,114,79,59,227,69,0,0,144,109,215,183,252,231,21,237,99,115,25,213,187,255,238,76,189,8,0,0,0,0,0,0,48,35,255,227,28,23,0,0,192,24,23,125,87,170,144,53,243,155,249,232,215,78,121,244,235,202,123,52,239,117,114,143,250,111,3,72,205,99,98,48,64,13,253,159,168,11,204,82,110,158,58,0,0,0,0,0,0,0,0,0,0,0,0,72,83,212,165,14,0,0,104,86,215,183,132,43,218,195,230,85,6,0,0,0,0,0,0,0,0,0,0,0,0,128,185,138,230,171,3,0,0,104,28,207,208,130,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,186,213,222,165,14,0,210,210,33,6,3,0,0,0,0,52,133,5,242,193,0,0,48,3,61,90,208,80,20,153,33,30,0,0,0,72,201,128,28,29,64,209,34,241,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,9,108,48,187,61,0,64,166,109,76,218,123,91,163,56,222,150,44,219,147,101,71,178,236,140,118,69,187,147,245,158,104,111,180,47,89,239,143,14,68,217,58,234,131,165,227,57,148,172,135,243,222,5,0,0,100,207,102,153,93,184,202,147,253,87,0,0,19,120,138,118,2,0,0,0,0,0,0,0,0,0,0,0,0,0,169,121,218,164,87,185,29,45,143,148,118,44,63,100,212,52,0,160,102,190,201,149,248,80,20,205,87,7,0,0,0,0,0,0,0,192,92,109,189,170,55,206,241,226,204,202,39,162,147,209,169,140,205,25,13,144,182,109,174,209,0,0,0,0,128,105,185,187,85,29,84,74,87,104,140,114,118,23,203,217,83,188,237,13,125,161,63,217,26,8,131,97,81,216,151,156,177,90,28,150,148,142,227,93,201,123,99,105,88,22,150,39,63,175,152,225,177,173,12,171,194,234,210,115,214,148,159,123,255,130,137,246,95,91,222,103,221,148,175,180,126,220,61,54,132,141,97,83,216,60,230,177,45,225,221,165,247,248,145,36,31,60,44,35,12,0,0,0,0,80,21,231,10,35,209,249,66,28,95,40,168,11,0,49,24,234,139,126,17,149,163,95,196,101,227,247,139,216,53,225,21,109,250,69,0,0,0,0,149,32,31,12,0,0,0,0,0,0,0,212,198,158,174,56,222,26,197,241,182,100,217,158,44,59,146,101,103,180,43,218,157,172,247,68,123,163,209,107,52,246,71,7,50,54,231,218,193,210,241,28,74,214,174,209,0,128,122,181,183,75,29,64,37,221,89,110,213,155,211,19,0,0,0,128,250,181,95,110,24,102,232,67,11,212,1,64,45,29,152,180,181,114,180,124,30,206,57,57,128,202,59,40,6,3,0,0,0,0,52,133,67,242,193,0,0,0,0,0,0,192,52,124,155,209,9,128,6,247,204,6,142,99,207,18,131,1,49,24,0,0,0,0,128,89,56,87,24,137,206,23,226,248,66,65,93,0,64,182,61,199,89,89,128,84,61,87,28,134,58,243,193,249,113,124,177,245,145,214,71,91,31,107,85,27,0,52,150,231,53,84,219,242,251,26,172,37,252,124,45,247,38,113,107,91,28,111,141,226,120,91,178,108,79,150,29,201,178,51,218,21,237,78,214,123,162,189,209,190,100,189,63,58,16,85,240,63,183,115,36,249,109,47,168,209,59,172,37,186,166,107,253,152,118,238,237,29,143,175,15,37,37,25,206,95,155,177,119,251,139,187,94,82,60,162,151,250,47,6,0,96,86,126,66,75,18,0,0,166,233,21,90,207,0,37,215,182,140,119,239,117,197,123,79,68,39,163,83,81,12,64,5,189,50,213,121,149,175,215,14,6,40,209,14,6,160,121,189,179,83,29,0,164,237,6,57,26,0,128,42,186,113,202,214,214,45,229,12,112,117,206,201,1,52,175,195,98,48,0,0,0,0,0,0,0,0,0,21,54,172,111,26,64,157,185,190,229,166,43,98,243,241,98,28,54,102,15,0,0,217,118,125,203,173,218,193,0,53,118,212,88,93,0,0,0,0,0,0,80,97,175,114,141,198,184,126,202,217,73,0,0,104,32,63,171,5,15,64,157,121,181,207,38,0,0,128,38,243,90,223,4,1,82,244,137,249,105,189,242,39,83,122,229,63,78,237,136,71,125,42,213,87,31,223,159,204,160,76,127,90,135,229,159,155,79,103,238,136,0,0,0,200,186,215,203,169,3,0,0,77,234,231,125,31,2,200,164,174,208,24,229,236,46,150,179,167,120,219,27,250,66,127,178,53,16,6,195,162,176,47,138,227,197,97,73,233,56,126,33,249,188,90,26,150,133,229,201,207,43,102,120,108,43,195,170,176,186,244,156,53,211,120,238,218,242,62,235,166,220,123,253,184,123,108,8,27,195,166,176,121,204,99,91,194,225,210,104,105,71,242,67,249,97,179,219,3,0,0,0,0,212,141,139,73,86,250,145,72,61,0,212,191,55,116,221,214,50,217,227,71,203,103,225,210,159,203,232,141,122,229,0,0,0,0,0,0,0,153,242,203,93,111,114,30,20,106,232,54,255,113,0,0,0,0,0,0,80,113,119,76,122,30,174,158,174,85,6,160,57,252,106,215,125,243,212,2,144,182,251,203,145,72,59,24,160,178,126,109,202,254,192,183,68,98,240,244,189,69,255,106,96,6,222,42,6,3,164,234,109,206,201,85,208,219,181,132,1,0,0,168,160,47,119,196,241,214,36,63,186,45,89,182,39,203,142,100,217,25,237,138,118,39,235,61,209,222,104,95,178,222,31,29,200,216,92,110,7,75,199,115,40,89,15,55,108,54,226,157,114,4,0,0,148,221,165,95,4,64,170,238,214,47,98,86,126,67,118,3,104,34,239,22,243,0,0,0,0,32,35,222,211,245,64,238,193,220,233,220,153,220,64,21,250,215,158,205,169,97,42,233,30,217,105,0,0,0,0,104,48,239,235,186,41,99,163,59,204,204,205,83,30,189,235,228,0,0,0,0,0,160,190,221,223,181,107,161,90,0,0,0,0,0,0,0,170,229,183,141,171,68,195,249,96,205,223,181,31,242,127,2,80,114,109,203,120,247,94,87,188,247,68,116,50,58,213,212,87,118,83,159,30,232,122,208,39,121,147,184,181,45,142,183,38,81,104,91,178,108,79,150,29,201,178,51,218,21,237,78,214,123,162,189,209,190,100,189,63,58,144,177,56,117,123,199,227,235,67,201,113,13,27,49,130,6,116,70,140,6,0,160,137,156,237,250,93,45,96,152,74,120,124,149,107,85,21,84,202,83,23,254,158,232,11,0,0,0,212,216,217,174,143,202,72,0,52,141,63,18,243,1,160,129,156,155,244,147,251,104,249,170,12,115,122,2,0,0,0,0,0,0,0,0,0,0,0,0,0,80,159,62,222,245,64,238,193,220,233,220,153,220,64,21,230,99,59,155,83,195,0,0,48,59,159,232,106,198,121,149,15,150,142,199,188,202,0,0,0,0,0,0,0,64,243,249,19,243,24,2,0,208,132,62,173,29,12,0,64,19,250,115,237,96,0,0,0,0,0,0,0,160,46,253,197,164,189,26,142,150,71,12,62,150,31,50,122,48,0,0,153,241,25,237,224,6,245,151,250,101,67,38,221,58,255,202,159,143,23,103,51,58,17,157,140,78,101,108,158,38,0,0,128,185,251,43,249,17,168,168,59,203,217,7,249,96,0,0,0,0,0,0,0,0,0,0,0,0,0,234,207,63,116,221,214,50,217,227,198,77,3,0,0,0,160,209,125,206,248,106,48,45,207,106,191,180,37,31,12,80,107,159,239,18,131,1,106,233,225,171,190,39,154,203,136,106,249,103,57,9,0,0,0,0,72,213,191,200,7,147,130,47,202,13,3,0,208,116,254,67,43,24,0,0,104,18,167,91,110,138,190,212,196,223,129,110,158,242,28,219,45,229,61,92,39,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,141,237,191,141,47,5,0,64,198,157,43,140,68,231,11,113,124,161,160,46,128,234,234,10,141,81,206,238,98,57,123,138,183,189,161,47,244,39,91,3,97,48,44,10,251,162,56,94,28,150,148,142,227,127,146,156,193,210,176,44,44,79,126,94,49,195,99,91,25,86,133,213,165,231,172,153,198,115,215,150,247,89,55,229,222,235,199,221,99,67,216,24,54,133,205,99,30,219,18,14,151,70,75,59,146,31,202,15,27,57,13,0,0,0,106,232,98,146,93,216,154,228,27,182,37,203,246,100,217,145,44,59,163,93,209,238,100,189,39,218,27,141,230,34,246,71,7,50,54,247,240,193,210,241,28,74,214,114,17,0,0,212,130,126,17,0,0,0,80,61,89,235,31,252,168,254,193,0,0,76,67,214,218,193,143,105,7,3,0,0,0,77,230,255,140,53,12,0,64,147,202,117,171,3,0,0,0,0,160,190,100,237,26,141,159,105,79,251,26,141,252,184,153,96,215,104,0,0,208,12,90,244,139,0,0,160,201,181,106,19,3,19,112,78,238,178,202,156,147,155,231,156,28,32,6,167,22,131,159,36,6,3,0,0,0,0,117,41,107,249,224,95,74,242,193,175,111,175,159,185,140,218,74,217,97,249,96,0,0,154,69,187,126,193,0,169,233,16,131,1,0,0,0,0,50,103,100,158,58,0,168,132,115,133,145,232,124,33,142,47,20,212,5,64,61,89,168,175,3,0,64,38,100,237,90,229,206,238,180,199,174,28,159,107,149,1,0,234,75,214,218,193,93,218,193,0,0,0,0,0,204,192,71,23,170,3,0,49,24,200,178,172,245,139,184,35,84,178,95,68,239,164,87,197,233,23,1,136,193,87,198,224,56,238,235,190,107,150,243,201,197,241,229,24,124,119,251,212,123,139,193,128,24,124,117,12,238,23,131,1,49,56,181,24,60,32,6,3,98,112,106,49,120,80,12,6,196,224,212,98,240,34,49,24,0,128,41,101,175,29,188,84,59,24,16,131,83,139,193,203,196,96,64,12,78,45,6,47,23,131,1,49,56,181,24,188,66,12,6,0,96,74,217,107,7,175,212,14,6,196,224,212,98,240,42,49,24,16,131,83,139,193,171,197,96,64,12,78,45,6,175,17,131,1,42,102,109,119,28,111,77,226,236,182,100,217,158,44,59,146,101,103,180,43,218,157,172,247,68,123,163,209,24,188,63,58,16,101,235,168,15,150,142,231,80,178,22,131,33,187,178,215,14,94,167,29,12,208,224,204,101,4,0,0,0,213,145,181,124,240,250,238,74,206,233,57,57,249,96,64,12,190,50,6,127,141,24,12,136,193,169,197,224,175,21,131,1,0,0,128,57,249,58,215,201,201,69,0,0,0,0,0,0,52,180,172,245,15,190,35,84,178,127,240,230,238,201,246,215,63,24,0,0,0,0,0,128,233,200,222,92,70,113,252,148,238,137,207,201,253,127,147,158,101,187,124,78,110,58,156,147,3,0,128,202,123,106,210,102,191,216,250,72,235,163,173,143,181,170,13,200,166,172,229,34,62,216,62,94,255,224,167,117,79,231,53,140,31,12,0,64,22,125,115,247,244,246,59,87,24,137,206,23,226,248,66,65,157,1,0,208,136,182,119,167,94,4,0,102,68,46,2,160,121,236,210,90,135,166,149,181,190,105,187,205,109,15,208,240,62,186,80,29,0,136,193,64,150,101,45,23,177,79,46,2,0,128,105,200,90,59,248,128,118,48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,52,156,111,53,71,17,0,0,0,0,0,0,113,246,230,209,248,54,243,104,0,98,112,106,49,56,142,159,217,125,87,251,236,98,112,28,95,142,193,119,183,139,193,128,24,60,243,24,252,44,49,24,160,129,157,43,140,68,231,11,113,124,161,160,46,0,0,104,30,218,193,64,173,100,45,31,252,108,253,34,0,0,96,86,228,34,128,90,249,252,188,254,232,116,238,76,110,32,170,252,239,62,155,171,220,239,154,110,46,226,185,114,17,0,0,84,204,119,25,9,23,0,0,0,168,136,172,245,15,190,35,84,242,156,220,247,78,154,131,113,78,14,16,131,175,140,193,207,211,47,2,160,97,124,95,93,158,109,124,126,185,84,199,146,24,236,175,4,0,0,0,51,213,219,249,2,61,140,103,160,191,243,210,150,92,4,48,119,171,138,49,229,26,113,120,154,214,136,193,64,5,245,118,94,43,254,206,128,118,48,80,217,24,220,215,169,22,196,96,32,93,203,69,98,0,0,0,104,114,89,187,86,121,212,15,118,207,238,90,229,56,190,124,173,242,116,184,86,25,32,139,94,232,90,101,0,0,0,0,160,226,162,142,106,191,194,15,119,183,94,245,26,243,58,110,42,207,226,252,164,113,94,191,48,231,50,181,37,191,97,126,71,123,213,143,109,250,58,158,80,150,155,203,71,127,195,4,185,222,5,29,206,201,1,0,100,203,143,25,55,2,0,128,58,80,253,124,240,143,203,7,199,242,193,64,125,120,145,92,4,64,74,94,34,2,3,164,232,165,162,48,0,0,77,238,39,180,137,1,168,59,175,52,110,26,0,0,0,0,0,0,0,0,0,113,110,158,58,0,168,132,115,133,145,232,124,33,142,47,20,212,5,0,0,211,113,216,213,199,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,114,179,17,93,104,122,191,63,239,112,152,106,159,91,162,75,91,230,182,167,186,110,17,149,1,0,0,154,214,245,45,183,94,241,173,240,120,49,31,113,34,58,25,157,138,212,14,0,0,0,0,0,76,236,167,245,187,2,166,208,146,156,113,91,223,170,30,0,0,0,0,0,0,0,160,150,94,167,95,15,64,106,94,47,6,3,164,230,231,196,96,128,212,252,188,24,12,0,0,84,204,47,76,249,13,195,92,70,0,213,242,139,98,48,64,106,126,73,12,6,42,228,13,206,220,1,164,230,141,98,48,80,103,222,102,52,88,0,0,0,0,0,0,0,128,89,121,83,169,63,216,210,150,171,31,89,118,197,61,203,203,63,173,104,25,255,55,173,108,121,32,247,96,238,116,238,76,238,195,185,203,247,126,36,87,153,114,158,173,208,239,1,0,0,0,0,154,193,155,93,9,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,79,208,21,26,163,156,221,197,114,246,20,111,123,67,95,232,79,182,6,194,96,88,20,246,69,113,188,56,44,41,29,199,91,187,227,120,105,88,22,150,39,63,175,152,225,177,173,12,171,194,234,210,115,214,76,227,185,107,203,251,172,155,114,239,245,227,238,177,33,108,12,155,194,230,49,143,109,9,135,243,143,111,29,201,15,229,135,243,205,240,78,132,198,247,118,35,28,1,0,0,0,0,64,13,188,83,70,30,0,0,0,0,0,32,227,222,229,140,16,0,0,212,161,229,157,234,0,0,0,0,178,237,55,187,95,219,161,22,26,205,235,202,127,179,99,249,33,35,87,2,53,241,91,250,117,0,77,38,107,99,184,191,199,24,238,0,77,103,100,158,58,0,0,160,58,190,84,80,7,0,0,0,0,208,76,142,180,13,181,13,183,197,241,77,201,114,115,178,188,87,159,210,140,187,53,249,43,111,141,226,120,91,178,108,79,150,29,201,178,51,218,21,237,78,214,123,162,189,209,104,223,180,253,209,129,40,91,71,125,180,237,241,245,161,228,184,244,77,3,0,0,0,32,107,78,202,235,2,0,0,0,53,244,219,114,17,0,208,244,206,21,70,162,243,133,56,190,96,124,10,0,0,160,102,126,167,251,1,185,201,84,61,168,254,153,147,182,142,56,62,221,221,94,71,51,233,117,140,91,150,27,38,184,10,249,76,119,115,206,163,241,225,238,251,140,133,15,164,238,254,114,36,106,174,57,61,63,34,6,3,98,48,85,116,214,183,124,0,160,169,253,238,164,173,161,163,229,182,111,115,181,131,127,79,46,2,168,3,114,17,89,246,144,108,4,0,208,196,254,72,46,2,0,128,38,116,78,59,24,0,0,0,0,0,0,0,0,0,0,128,113,124,220,24,20,0,0,0,0,208,64,62,113,85,70,239,120,52,122,123,34,58,25,157,138,212,14,64,37,125,210,152,61,0,0,0,0,80,23,62,165,191,51,20,69,243,213,1,0,0,0,0,0,0,0,0,0,0,76,229,207,140,23,1,0,0,0,0,208,20,62,35,31,12,64,141,252,149,113,176,128,134,241,217,182,75,91,218,193,0,181,246,55,221,98,48,0,149,244,119,221,127,47,35,1,64,170,30,242,73,4,0,0,0,0,212,161,135,229,46,1,38,244,5,49,18,32,179,190,88,193,24,255,111,201,239,250,127,53,251,204,248,119,159,78,0,0,84,192,151,180,43,1,0,0,0,0,0,0,128,105,249,79,115,25,1,0,192,85,254,203,60,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13,231,43,221,61,11,122,23,168,7,104,110,125,73,20,184,216,250,72,235,163,173,143,181,170,13,0,0,0,0,128,198,244,63,13,53,143,198,255,118,251,139,1,205,102,185,115,114,0,0,52,161,139,221,218,193,115,243,188,174,70,42,237,35,13,150,241,121,126,67,213,46,179,119,107,91,28,111,141,226,120,91,178,108,79,150,29,201,178,51,218,21,237,78,214,123,162,189,209,190,100,189,63,58,16,85,240,63,183,115,36,249,109,47,168,209,59,172,37,186,166,107,253,152,24,123,123,199,227,235,67,73,73,134,243,215,122,183,3,0,144,9,143,54,84,191,8,0,0,0,170,45,215,163,14,96,84,52,95,29,0,0,0,0,0,0,0,0,0,0,0,0,208,200,218,122,230,187,94,12,160,78,44,232,89,40,38,3,0,0,0,0,0,0,0,0,64,5,244,235,145,71,42,158,182,32,142,47,182,62,210,250,104,235,99,173,106,3,128,198,50,168,253,84,69,139,106,88,187,139,253,37,83,116,107,91,28,111,141,226,120,91,178,108,79,150,29,201,178,51,218,21,237,78,214,123,162,189,209,190,100,189,63,58,16,85,238,21,159,215,57,146,252,182,37,53,250,171,183,68,95,221,179,126,76,59,247,246,142,199,215,135,146,146,12,231,151,122,7,2,0,144,9,203,39,109,217,30,205,95,218,58,150,31,202,171,45,0,0,160,126,172,146,167,7,0,152,161,213,242,193,83,88,163,141,9,0,208,116,214,149,219,128,250,69,0,0,0,0,0,144,109,95,163,95,4,0,64,166,181,68,113,252,181,218,124,0,41,217,32,2,3,0,0,0,0,52,133,141,242,193,0,0,52,161,77,218,193,0,53,181,217,248,193,0,169,217,34,6,3,164,230,201,98,48,64,106,190,94,12,6,168,3,163,227,69,60,197,89,57,0,0,0,0,0,0,0,32,51,158,170,111,26,64,106,158,38,6,3,164,230,27,197,96,128,212,124,147,24,12,0,0,0,0,0,0,0,100,212,183,232,23,1,144,154,173,98,48,0,0,0,0,64,147,218,125,85,134,248,120,52,122,123,34,58,25,157,138,212,14,64,37,237,113,78,14,32,53,123,197,96,128,58,178,79,46,2,160,70,246,107,7,3,164,230,128,24,12,144,154,131,98,48,64,106,14,137,193,0,169,249,86,49,24,32,53,79,23,131,1,82,243,12,49,24,0,0,234,208,179,122,212,1,0,0,0,0,0,0,0,80,121,207,41,247,73,208,63,24,0,128,44,121,174,235,228,0,234,194,119,185,26,2,0,18,223,237,19,17,0,160,138,190,71,62,24,32,53,223,43,6,3,164,230,121,98,48,64,106,190,79,12,6,0,0,0,0,0,0,128,186,240,252,158,55,207,87,11,0,0,0,0,192,149,174,53,238,27,204,208,135,22,168,3,0,0,0,0,0,96,38,126,208,57,57,152,33,231,228,0,0,96,102,94,232,155,39,0,0,164,232,135,123,126,68,155,28,128,49,126,212,167,3,112,133,183,116,78,246,168,57,61,179,235,199,124,30,0,0,64,69,188,88,219,26,42,234,206,232,210,150,92,4,0,0,0,80,89,239,105,81,7,0,0,0,64,237,188,87,46,2,0,0,0,0,0,0,0,0,0,168,51,47,53,110,26,84,148,113,211,0,170,233,101,147,182,92,204,163,1,205,162,43,52,70,57,187,139,229,236,41,222,246,134,190,208,159,108,13,132,193,176,40,236,75,218,140,139,195,146,242,113,188,188,231,174,246,101,97,121,242,243,138,25,31,219,170,176,186,244,156,187,219,167,222,123,109,249,247,175,155,242,149,214,143,187,199,134,176,49,108,10,155,199,60,182,37,28,46,69,222,35,73,12,30,22,133,1,168,176,87,202,98,2,0,0,0,0,0,0,64,230,28,153,178,63,192,45,77,112,141,198,144,94,17,0,0,0,0,0,100,208,205,242,223,0,117,226,150,158,91,197,100,168,91,71,203,255,159,198,77,171,142,99,34,32,0,0,0,0,0,0,0,0,64,134,253,140,94,98,0,117,236,213,162,52,192,172,189,38,137,161,159,95,48,254,99,15,23,239,255,194,130,119,180,169,39,160,94,124,182,28,145,26,251,58,185,215,106,193,2,0,0,64,221,186,190,229,117,87,124,115,63,94,156,207,232,68,116,50,58,21,169,29,128,106,199,224,215,139,193,0,0,0,80,7,126,46,249,134,190,53,249,54,190,45,89,182,39,203,142,100,217,25,237,138,118,39,235,61,209,222,104,95,178,222,31,29,200,216,247,245,131,165,227,57,148,172,135,141,226,14,208,164,126,65,31,95,0,0,96,92,111,242,109,1,160,230,222,44,246,2,0,0,208,176,110,191,234,91,109,37,174,147,251,196,252,180,142,230,147,41,189,242,31,167,118,196,163,62,149,234,171,143,239,79,102,80,166,63,173,195,242,207,205,167,51,119,68,0,208,216,126,101,202,243,56,183,148,91,190,141,61,126,112,22,252,197,252,95,117,222,13,0,0,0,0,50,235,92,97,36,58,95,136,227,11,5,117,81,223,222,38,83,11,117,169,173,35,142,163,133,237,29,245,83,162,142,113,203,114,195,4,231,219,90,22,30,46,61,114,36,57,39,103,220,52,200,174,168,202,113,234,237,61,161,163,245,170,215,152,215,113,83,249,188,255,147,198,121,253,194,156,203,52,26,131,231,119,212,107,12,190,57,154,42,6,47,232,16,131,105,124,239,240,61,5,0,0,0,0,0,0,0,128,58,114,151,254,44,241,27,22,92,218,50,102,79,45,221,237,189,7,80,215,222,37,78,67,38,221,122,213,104,211,149,24,195,29,0,106,235,55,146,150,234,23,231,95,211,170,38,0,0,104,4,95,54,247,23,0,48,13,247,56,59,11,0,84,217,189,218,27,0,179,244,222,36,130,190,47,89,222,63,73,36,253,64,207,59,218,212,20,80,47,238,43,199,43,215,201,141,58,222,115,66,91,24,96,134,78,138,156,0,0,52,164,83,90,178,0,0,80,7,62,164,101,14,0,0,208,208,126,167,231,129,220,131,185,211,185,51,185,129,42,140,81,123,54,167,134,169,149,7,228,40,128,105,249,202,148,227,131,221,82,254,68,116,141,198,116,60,40,254,2,25,117,90,124,3,0,160,42,206,104,105,2,212,212,135,39,141,187,71,203,57,96,249,96,106,235,35,90,4,64,133,60,175,171,145,74,123,182,193,162,223,243,27,170,118,153,189,91,219,226,120,107,20,199,219,146,101,123,178,236,72,150,157,209,174,104,119,178,222,19,237,141,246,37,235,253,209,129,10,246,173,123,94,231,72,242,219,94,80,163,119,88,75,116,77,215,250,49,115,0,223,222,241,248,250,80,82,146,225,252,181,222,237,77,227,247,180,67,1,0,0,0,158,96,227,194,161,182,225,36,67,120,83,219,239,203,155,52,133,218,231,131,235,193,209,210,252,106,143,231,131,189,11,0,0,42,173,43,52,70,57,187,139,229,236,41,222,246,134,190,208,159,108,13,132,193,176,40,140,182,131,23,135,37,165,227,248,131,228,219,209,210,176,44,44,79,126,94,49,195,99,91,25,86,133,213,165,231,172,153,198,115,215,150,247,89,55,229,222,235,199,221,99,67,216,24,54,133,205,99,30,219,18,14,151,218,190,71,242,67,121,237,96,16,131,27,37,6,255,161,24,12,0,0,0,0,0,151,149,114,208,185,86,85,65,37,156,235,249,134,133,79,93,248,180,133,106,2,0,0,0,0,0,0,168,47,89,187,78,110,196,117,114,0,0,0,0,0,0,0,0,0,0,0,0,0,64,42,62,217,115,223,60,181,0,164,237,254,114,36,58,150,31,114,165,50,64,5,253,113,207,84,123,220,18,137,193,141,235,83,61,169,23,1,160,142,252,137,168,8,92,225,45,157,147,61,122,180,220,246,213,14,6,0,0,160,18,62,221,243,116,51,64,3,164,230,207,156,35,0,0,0,0,160,102,254,124,210,108,148,190,105,0,0,100,211,95,104,7,3,52,176,207,232,91,3,0,0,0,212,208,95,201,69,0,144,186,183,116,169,3,96,250,190,161,125,170,61,140,225,14,80,61,127,221,115,91,203,100,143,235,155,6,80,61,127,35,6,3,164,230,111,197,96,128,212,252,157,24,12,144,154,191,23,131,1,200,184,207,234,67,13,76,161,37,138,227,245,173,234,1,0,0,0,128,44,250,7,89,114,24,199,203,23,94,249,243,241,226,245,202,39,162,147,209,169,72,237,0,64,246,124,78,171,24,0,128,38,243,121,109,96,152,196,245,73,134,248,98,235,35,173,143,182,62,166,255,48,0,0,0,0,0,0,0,0,0,83,250,194,164,61,51,141,225,14,0,0,0,0,84,94,87,104,140,114,118,23,203,217,83,188,237,13,125,161,63,217,26,8,131,97,81,216,23,197,241,226,176,164,116,28,255,148,228,89,151,134,101,97,121,242,243,138,25,30,219,202,176,42,172,46,61,103,205,52,158,187,182,188,207,186,41,247,94,63,238,30,27,194,198,176,41,108,30,243,216,150,112,184,148,5,62,146,228,131,135,101,132,129,38,114,174,48,18,157,47,196,241,133,130,186,0,0,0,0,0,200,50,249,96,0,49,24,0,0,26,203,191,154,167,11,0,0,0,0,0,0,0,234,192,116,199,77,251,143,158,253,109,105,150,115,186,227,166,29,104,51,110,26,64,179,251,146,222,105,0,0,0,0,0,0,0,64,70,253,151,126,17,0,169,249,111,49,24,0,0,0,152,38,115,25,1,136,193,64,246,117,133,212,139,48,45,211,29,179,231,98,143,49,123,0,0,0,128,198,243,209,133,234,0,64,12,6,16,131,1,16,131,1,196,96,0,0,0,0,0,178,66,62,24,64,12,6,16,131,1,16,131,1,154,131,24,12,32,6,3,136,193,0,136,193,0,0,80,93,218,193,0,233,48,175,50,128,24,12,32,6,3,0,0,0,0,0,0,0,141,170,43,52,70,57,187,139,229,236,41,222,246,134,190,208,159,108,13,132,193,176,40,236,139,226,120,113,88,82,58,142,59,146,245,210,176,44,44,79,214,43,138,247,181,244,78,247,53,86,134,85,97,117,233,247,172,41,174,195,164,207,93,91,174,187,117,83,214,226,250,113,247,216,16,54,134,77,97,243,152,199,182,132,195,249,199,183,142,228,135,242,195,249,38,122,67,2,0,0,64,198,20,122,83,47,2,64,89,214,242,193,163,218,122,159,152,15,158,137,203,249,224,233,144,15,6,0,0,0,0,0,0,0,0,24,95,214,250,166,45,232,189,250,90,229,233,27,123,173,242,228,244,77,3,0,104,92,89,107,7,119,106,7,3,212,79,236,118,109,50,192,28,245,36,145,116,91,210,222,221,158,44,59,146,101,103,180,43,218,157,172,247,68,123,163,209,118,240,254,232,64,148,173,35,62,88,58,158,67,201,90,59,24,0,0,0,178,237,92,97,36,58,95,136,227,11,5,117,1,84,87,214,250,69,244,234,23,1,136,193,169,197,224,62,49,24,160,161,201,69,0,0,208,140,180,131,129,90,201,90,62,184,95,62,24,0,0,0,0,0,0,234,158,126,17,0,233,250,232,66,117,0,32,6,3,89,150,181,254,193,75,244,15,6,26,72,214,98,240,87,139,193,0,13,205,57,57,0,128,236,203,90,46,98,153,92,4,64,67,147,139,0,0,200,190,172,229,34,86,202,69,0,0,0,0,13,198,57,57,128,90,89,219,171,14,0,0,0,0,0,0,104,124,235,156,247,154,145,254,206,75,91,199,242,67,174,208,0,170,104,125,239,215,84,60,66,183,117,196,241,215,246,182,119,212,207,81,118,140,91,150,27,38,136,175,55,230,93,39,7,0,64,229,108,144,19,1,0,128,212,108,234,189,173,101,178,199,143,150,51,192,206,201,1,149,179,188,83,29,0,92,22,85,189,239,192,230,222,214,171,94,99,94,199,77,209,165,237,39,141,243,250,133,57,151,105,180,95,196,252,142,122,237,23,113,115,249,232,39,234,23,177,160,67,191,8,0,0,0,168,132,209,124,240,215,235,31,6,0,64,234,170,127,78,238,41,206,201,197,206,201,1,0,0,192,37,213,207,69,124,131,92,68,44,23,1,80,127,158,58,65,31,17,99,87,2,0,52,155,167,245,46,88,168,22,222,176,224,210,150,49,123,0,0,154,195,55,53,69,59,120,170,177,43,191,185,156,39,214,14,6,0,168,189,111,49,178,3,64,85,117,133,198,40,103,119,177,156,61,197,219,222,208,23,250,147,173,129,48,24,22,133,125,81,28,47,14,75,74,199,177,53,249,220,88,26,150,133,229,201,207,43,102,120,108,43,195,170,176,186,244,156,53,211,120,238,218,242,62,235,166,220,123,253,184,123,108,8,27,195,166,176,121,204,99,91,130,190,105,64,118,109,215,194,7,160,104,167,79,4,0,0,0,0,0,38,180,71,22,25,0,26,218,94,159,229,0,21,182,95,100,133,105,59,224,255,133,10,59,232,61,5,98,48,169,57,228,61,5,98,48,169,249,86,239,41,16,131,1,160,9,61,195,231,58,76,155,118,48,149,246,109,222,83,32,6,147,154,103,122,79,129,24,76,106,158,229,61,5,98,48,169,249,118,239,41,16,131,1,234,208,119,76,25,115,111,137,46,109,153,87,25,160,178,158,45,6,3,164,230,59,197,96,128,212,60,71,12,6,0,0,0,0,26,222,115,245,116,5,72,205,119,137,193,0,52,148,239,246,201,5,0,84,221,247,106,113,48,165,143,69,35,81,186,37,248,184,254,193,0,0,0,0,0,0,0,0,0,0,80,33,231,10,35,209,249,66,28,95,40,168,11,160,186,186,66,99,148,179,187,88,206,158,226,109,111,232,11,253,201,214,64,24,12,139,194,190,40,142,23,135,37,165,227,248,234,100,189,52,44,11,203,147,245,138,25,30,219,202,176,42,172,46,61,103,205,52,158,187,182,188,207,186,41,247,94,95,220,227,249,189,95,119,197,158,27,194,198,176,41,108,30,243,236,45,225,112,233,202,140,35,249,161,252,176,171,52,0,0,38,240,2,215,96,103,202,139,59,47,109,185,86,25,178,236,218,222,7,114,15,230,78,231,206,228,6,170,48,66,194,217,156,26,6,160,250,70,230,169,3,96,166,174,211,14,6,168,136,31,148,19,6,0,128,105,202,90,255,224,23,246,214,115,255,224,171,233,31,12,217,247,67,114,20,13,231,117,29,151,182,244,77,3,0,0,160,158,253,136,172,3,0,13,206,184,105,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,162,222,167,116,116,68,245,80,18,104,12,11,202,255,47,198,15,6,128,74,121,137,209,13,1,160,78,100,109,62,185,151,154,79,14,0,0,0,0,26,200,43,75,231,13,175,119,254,16,160,230,126,82,12,166,225,92,76,206,12,62,162,23,60,0,0,192,184,30,234,86,7,0,0,0,0,0,0,0,0,0,0,92,237,22,215,145,2,0,0,64,85,220,154,124,231,222,26,197,241,182,100,217,158,44,59,146,101,103,180,43,218,157,172,247,68,123,163,209,121,52,246,71,7,50,54,94,206,193,210,241,28,74,214,230,209,0,168,172,163,147,102,115,143,150,163,174,121,149,1,42,239,152,24,12,144,154,87,137,193,0,0,0,0,0,77,225,167,228,131,1,82,243,211,98,48,64,106,126,70,12,6,72,205,207,138,193,0,0,0,64,170,174,111,121,245,21,249,137,227,197,81,123,78,68,39,163,83,25,27,143,8,32,109,175,145,15,6,160,70,94,107,214,15,160,97,124,182,237,210,150,118,48,0,0,0,0,64,150,189,190,124,6,75,62,24,128,230,240,115,122,111,0,0,212,76,75,20,199,63,223,148,237,175,95,208,234,4,0,0,0,0,0,128,6,247,70,103,253,128,41,140,246,139,88,223,170,30,0,168,165,95,214,74,5,0,0,128,20,140,230,131,111,243,173,28,0,0,0,0,0,102,229,223,187,213,1,0,0,0,179,243,230,222,56,222,26,197,241,182,100,217,158,44,59,146,101,103,180,43,218,157,172,247,68,123,163,125,201,122,127,116,32,202,214,81,31,44,29,207,161,100,61,60,238,140,114,183,235,207,6,144,154,59,196,96,0,0,0,0,0,0,0,0,0,0,0,0,0,0,104,66,111,153,244,74,227,163,229,17,34,142,229,135,242,106,11,160,178,222,42,6,3,164,230,109,98,48,64,106,222,46,6,3,164,230,29,98,48,64,29,185,243,170,168,124,188,56,138,251,137,232,100,116,42,99,227,211,3,164,237,157,218,193,0,169,185,75,12,6,168,3,119,155,147,8,32,53,239,18,131,129,58,246,235,230,85,150,141,0,0,0,0,42,230,221,242,193,0,169,249,77,49,24,0,0,0,72,193,123,140,23,1,80,35,247,184,86,25,32,53,247,138,193,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,109,93,161,49,202,217,93,44,103,79,241,182,55,244,133,254,100,107,32,12,134,69,97,116,110,251,197,97,73,233,56,222,215,27,199,75,195,178,176,60,249,121,197,12,143,109,101,88,21,86,151,158,179,102,26,207,93,91,222,103,221,148,123,175,31,119,143,13,97,99,216,20,54,143,121,108,75,56,92,26,45,237,72,126,40,111,110,123,0,0,0,0,0,0,0,0,160,209,100,173,111,218,7,244,77,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,38,174,111,185,175,247,137,63,31,143,70,111,79,68,39,163,83,145,218,1,168,164,251,123,39,123,244,104,121,148,158,99,249,33,35,246,0,0,0,0,0,0,0,0,0,0,64,93,251,96,239,109,45,147,61,174,127,48,64,245,124,72,12,166,130,126,167,87,29,64,37,221,25,137,193,0,213,242,128,118,48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,205,157,49,118,37,84,148,177,43,1,0,0,128,234,249,176,108,30,64,106,62,34,6,3,117,235,108,18,161,182,38,231,168,182,37,203,246,100,217,145,44,59,163,93,209,238,100,189,39,218,27,237,75,214,251,163,3,81,182,142,250,96,233,120,14,37,235,225,113,207,202,253,174,200,13,144,154,223,19,131,1,0,0,0,0,0,0,0,0,0,0,0,160,42,254,208,181,59,48,67,31,90,160,14,0,160,241,61,164,29,12,51,164,29,76,229,252,145,24,12,98,48,169,57,39,6,131,24,12,64,77,92,232,253,152,150,23,0,0,53,54,162,13,10,0,0,0,192,36,30,234,86,7,0,0,0,0,0,208,108,186,66,99,148,179,187,88,206,158,226,109,111,232,11,253,201,214,64,24,12,139,194,190,40,142,23,135,37,165,227,248,84,111,28,47,13,203,194,242,228,231,21,51,60,182,149,97,85,88,93,122,206,154,105,60,119,109,121,159,117,83,238,189,126,220,61,54,132,141,97,83,216,60,230,177,45,225,112,254,241,173,35,249,161,252,112,190,25,222,137,0,212,202,159,186,182,4,0,160,46,125,116,161,58,0,0,0,0,0,0,0,0,0,0,168,47,127,238,74,28,104,32,127,225,63,22,0,42,228,51,62,85,1,0,0,0,160,236,47,39,200,151,221,152,55,126,48,0,0,0,64,150,252,205,2,117,0,80,95,254,182,148,161,255,187,222,94,49,26,154,92,95,18,5,46,182,62,210,250,104,235,99,173,141,88,254,191,79,226,217,63,38,199,240,185,100,249,252,4,17,237,225,226,253,95,88,240,142,54,127,111,160,94,124,182,28,145,142,229,135,244,138,0,0,0,0,0,0,128,38,241,176,145,8,1,0,0,0,0,168,136,127,234,189,111,158,90,0,210,118,127,57,18,185,78,14,0,0,0,0,0,0,0,0,0,0,26,209,245,45,255,114,197,152,56,199,163,209,219,19,209,201,232,84,164,118,234,209,191,26,195,8,152,196,23,197,8,0,0,0,0,0,0,154,216,127,76,122,190,236,104,121,172,52,227,166,77,236,75,189,249,133,106,1,234,81,91,71,28,71,11,219,59,234,167,68,29,227,150,229,134,9,226,107,203,194,195,165,71,142,36,49,120,88,20,6,0,0,0,0,0,0,0,26,212,151,141,235,0,0,0,0,80,242,95,50,37,0,0,0,84,208,87,122,31,200,61,152,59,157,59,147,27,168,194,124,57,103,115,106,184,153,253,79,146,197,248,199,5,113,252,185,100,249,252,130,241,247,121,184,120,255,23,22,188,163,109,116,125,98,222,125,243,212,27,144,182,193,242,120,96,198,77,99,106,255,43,103,15,21,117,103,36,6,3,208,24,30,209,14,4,168,154,71,123,79,244,168,5,0,0,0,0,0,0,152,174,92,159,58,0,0,128,233,203,107,65,3,0,80,115,145,86,40,0,0,0,0,0,53,212,42,47,13,0,13,224,73,62,177,1,0,0,152,179,54,223,46,1,0,0,0,0,0,0,0,0,0,168,35,11,166,236,223,122,75,116,105,235,88,126,40,175,198,0,0,168,133,115,133,145,232,124,33,142,47,20,212,5,128,24,12,64,181,44,52,254,1,13,166,115,154,239,217,174,190,110,239,110,26,82,79,233,157,123,40,57,59,55,236,172,28,13,228,108,87,175,184,11,0,21,209,151,124,166,110,77,90,131,219,146,101,123,178,236,72,150,157,209,174,104,119,178,222,19,237,141,246,37,235,253,209,129,40,91,71,125,176,116,60,218,193,0,192,76,12,200,70,0,64,67,210,55,13,32,187,6,93,171,12,87,88,34,119,1,0,144,1,75,181,234,0,0,168,11,203,181,76,129,138,90,33,170,0,0,0,0,53,180,74,46,2,32,53,171,197,96,0,136,1,0,152,174,53,147,102,18,142,150,199,136,48,94,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,158,115,133,145,232,124,33,142,47,20,212,5,0,0,84,210,122,227,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,180,117,133,198,40,103,119,177,156,61,197,219,222,208,23,250,147,173,129,48,24,22,133,125,81,28,47,14,75,74,199,177,161,47,142,151,134,101,97,121,242,243,138,25,30,219,202,176,42,172,46,61,103,205,52,158,187,182,188,207,186,41,247,94,63,238,30,27,194,198,176,41,108,30,243,216,150,112,184,52,90,218,145,252,80,126,216,200,105,64,19,49,134,59,0,64,246,101,45,23,17,199,155,250,238,106,159,93,46,34,142,47,231,34,238,110,159,122,111,185,8,0,0,0,152,185,172,229,34,182,232,23,1,136,193,169,197,224,39,139,193,128,24,156,90,12,254,122,49,24,0,0,0,0,0,0,0,0,0,0,0,160,234,158,214,167,14,0,0,0,0,0,120,156,249,228,0,0,104,70,218,193,0,0,0,192,220,109,119,117,6,64,3,144,15,6,16,131,1,196,96,0,0,0,160,146,186,66,99,148,179,187,88,206,158,226,109,111,232,11,253,201,214,64,24,12,139,194,190,40,142,23,135,37,165,227,216,209,23,199,75,195,178,176,60,249,121,197,12,143,109,101,88,21,86,151,158,179,102,26,207,93,91,222,103,221,148,123,175,31,119,143,13,97,99,216,20,54,143,121,108,75,56,156,127,124,235,72,126,40,63,156,111,134,119,34,136,193,89,136,193,59,197,96,128,134,230,156,28,128,24,12,100,95,214,114,17,187,228,34,0,26,154,118,48,0,0,0,80,75,114,17,0,0,0,0,64,179,218,219,247,230,249,106,1,0,0,0,0,128,185,59,104,206,99,160,41,213,247,152,61,223,218,247,244,82,116,158,238,152,61,113,252,140,190,187,218,103,55,102,79,28,95,30,179,231,238,246,169,247,54,102,15,0,0,204,196,51,251,110,107,153,236,241,163,229,150,239,177,164,29,172,190,0,0,26,221,242,78,117,0,112,89,214,230,209,248,118,243,104,0,0,0,0,101,242,193,0,79,20,117,84,251,21,158,221,215,122,213,107,204,235,184,41,186,180,253,164,113,94,191,48,231,50,181,37,191,97,126,71,123,213,143,109,250,58,158,80,150,155,203,71,127,195,4,153,222,5,29,242,193,64,229,141,182,131,191,211,117,201,0,0,0,64,221,248,174,190,5,11,179,127,148,83,93,171,252,205,189,151,182,92,171,12,0,208,172,54,118,197,241,214,40,142,183,37,203,246,100,217,145,44,59,163,93,209,238,100,189,39,218,27,141,94,39,183,63,58,16,101,235,168,15,150,142,231,80,178,214,47,2,178,107,238,215,42,63,191,239,5,125,215,244,93,219,119,93,223,247,87,177,199,195,116,175,85,254,1,215,42,3,52,180,115,133,145,232,124,33,142,47,20,212,5,64,53,252,96,223,11,235,184,159,242,15,149,203,230,156,28,240,195,125,111,158,175,22,0,0,0,0,128,153,249,145,190,151,53,193,85,80,48,115,47,191,234,63,227,120,177,135,240,137,232,100,116,42,99,125,159,1,26,223,143,26,127,14,0,0,0,0,0,0,0,0,0,168,153,31,211,115,17,166,237,64,175,58,0,0,0,0,0,0,0,0,0,0,0,0,0,96,38,126,220,149,156,0,169,121,145,24,12,0,192,21,94,162,133,8,0,0,0,84,193,203,228,28,82,117,107,126,178,71,143,150,31,61,150,31,202,171,45,0,0,0,234,203,203,101,21,0,0,0,96,14,126,34,249,102,253,10,223,174,153,147,182,142,56,62,221,221,222,81,63,37,234,24,183,44,55,76,208,231,225,76,247,225,210,35,71,242,67,249,97,61,35,0,0,0,104,64,55,244,221,40,195,51,77,231,10,35,209,249,66,28,95,40,168,11,0,128,172,234,10,141,81,206,238,98,57,123,138,183,189,161,47,244,39,91,3,97,48,44,10,251,162,56,94,28,150,148,142,227,112,210,218,95,26,150,133,229,201,207,43,102,120,108,43,195,170,176,186,244,156,53,211,120,238,218,242,62,235,166,220,123,253,184,123,108,8,27,195,166,176,121,204,99,91,130,115,114,0,0,0,0,52,190,35,125,47,91,168,22,96,172,151,95,245,159,113,60,26,189,61,17,157,140,78,69,106,7,0,26,223,176,118,48,140,75,59,184,89,60,212,173,14,0,128,250,228,58,185,244,221,236,170,206,84,61,168,173,206,156,24,55,173,113,221,42,250,2,64,85,28,243,25,203,148,62,22,141,164,124,22,236,227,229,215,55,175,50,83,123,149,184,6,21,117,167,24,12,80,183,126,74,187,135,39,248,105,239,7,168,40,237,96,0,0,104,46,63,235,123,53,64,106,94,45,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,21,175,55,18,54,0,0,0,0,196,63,39,79,6,0,0,0,0,0,0,0,0,0,0,0,0,64,213,253,146,171,217,0,0,0,0,102,228,121,93,141,84,218,55,52,88,246,231,249,13,85,187,204,222,173,109,113,188,53,138,227,109,201,178,61,89,118,36,203,206,104,87,180,59,89,239,137,246,70,251,146,245,254,232,64,84,193,255,220,206,145,228,183,189,160,70,239,176,150,232,154,174,245,173,87,223,123,123,199,227,235,67,73,73,134,243,215,122,183,3,84,213,245,45,111,188,162,29,116,188,248,169,114,34,58,25,157,138,98,0,42,232,151,39,253,222,121,52,127,105,235,88,126,40,175,182,0,0,0,0,0,0,0,0,0,0,0,168,172,55,27,75,143,140,121,207,4,87,192,221,19,29,46,93,153,113,36,63,148,191,215,117,114,100,198,237,73,28,191,67,44,103,82,31,139,70,82,142,122,31,47,191,190,235,228,0,32,29,191,162,197,8,0,0,0,164,232,45,114,19,0,0,0,0,0,0,211,246,86,115,25,1,140,235,92,97,36,58,95,136,227,11,5,117,1,0,64,243,208,14,6,0,104,92,239,116,61,13,0,140,235,46,253,34,0,82,115,183,24,12,0,0,0,0,77,234,183,244,98,0,72,205,61,98,48,64,106,238,21,131,1,0,0,0,168,154,247,185,70,3,0,0,0,224,9,222,175,175,14,0,196,0,0,0,48,119,31,208,55,13,0,50,230,62,231,82,97,134,62,180,64,29,0,0,0,0,0,208,72,238,239,59,238,140,16,144,17,39,146,120,118,177,245,145,214,71,91,31,107,85,27,0,140,239,195,90,191,0,169,248,72,223,199,122,213,2,0,0,51,119,214,55,121,26,194,239,122,167,146,49,239,137,198,191,255,158,232,112,105,148,136,35,249,161,252,189,145,154,34,155,62,42,170,3,164,230,247,197,96,0,168,43,231,10,35,209,249,66,28,95,40,168,11,0,0,0,0,0,72,207,57,103,211,1,170,228,130,8,11,80,199,62,38,74,3,0,64,67,250,184,182,60,212,173,163,61,151,182,142,229,135,242,234,35,11,62,33,230,2,0,0,0,0,0,0,208,20,254,116,202,51,228,183,148,103,206,104,134,126,17,127,167,199,0,64,106,254,94,12,6,0,104,2,159,237,59,28,166,218,167,185,114,17,0,181,246,15,147,126,255,62,154,23,131,1,0,200,162,207,105,7,3,0,164,232,225,190,7,114,15,230,78,231,206,228,6,162,202,255,246,179,57,53,12,0,84,195,23,244,108,6,38,241,137,249,105,189,242,39,83,122,229,63,78,237,136,71,125,42,213,87,31,223,159,204,160,76,127,90,135,229,159,155,79,103,238,136,0,128,70,48,176,48,142,255,113,65,28,127,46,89,62,191,96,252,125,30,46,222,255,133,5,239,104,83,95,64,189,248,108,57,34,233,155,6,64,115,248,23,231,216,0,0,0,0,128,138,251,162,241,34,0,0,104,66,255,79,59,184,130,254,93,127,6,0,0,234,200,151,180,79,1,0,40,251,242,148,173,67,115,122,2,80,111,254,83,110,3,96,198,254,43,137,157,239,239,153,248,241,15,244,24,55,13,168,31,247,149,227,149,92,4,0,0,100,197,139,187,94,210,53,186,126,105,151,186,0,0,224,178,175,148,207,255,203,7,95,233,127,244,140,0,168,177,255,237,59,209,163,22,0,0,0,96,46,30,51,118,37,0,0,0,0,80,83,95,213,255,64,238,193,220,233,220,153,220,64,84,249,223,126,54,167,134,1,128,44,203,247,171,3,168,164,59,141,225,14,84,77,212,127,83,84,7,197,72,205,205,83,30,189,121,52,72,79,75,210,170,126,133,107,194,153,147,182,142,56,62,221,221,222,81,63,37,234,24,183,44,55,76,16,95,207,116,31,46,61,114,36,137,193,195,162,112,102,180,202,26,0,0,64,67,155,167,77,223,36,110,109,139,227,173,73,126,116,91,178,108,79,150,29,201,178,51,218,21,237,78,214,123,162,189,209,190,100,189,63,58,144,177,12,243,237,165,220,197,161,228,184,228,34,0,0,0,0,0,0,0,128,230,208,94,238,17,180,61,183,227,9,163,34,237,204,237,74,126,218,157,219,147,219,155,219,151,108,237,47,62,118,96,130,113,147,14,150,239,63,148,251,214,226,246,211,115,207,200,125,219,52,70,89,122,102,113,159,103,229,190,125,210,125,191,163,234,227,53,61,187,248,10,223,153,123,78,113,253,220,226,237,119,229,190,59,247,61,87,189,242,247,94,241,243,243,146,159,190,47,247,252,226,125,47,40,222,94,147,187,182,180,199,117,99,202,252,253,165,123,126,32,247,131,185,23,22,183,127,40,185,253,225,220,143,228,126,52,247,99,87,237,253,227,201,207,47,154,230,81,191,184,180,223,75,146,245,75,115,47,27,231,89,47,79,238,251,137,43,238,127,69,238,149,197,159,175,207,253,100,238,134,220,141,185,195,99,158,117,36,185,103,40,89,134,139,143,220,84,122,252,230,220,45,227,252,254,91,115,71,203,247,30,43,111,189,106,220,242,255,212,12,255,150,29,197,119,232,130,242,251,244,167,139,207,255,153,220,207,230,94,93,254,77,175,41,110,189,54,185,125,93,178,188,62,89,126,46,247,243,165,71,127,33,247,139,197,173,95,74,110,223,144,123,99,233,222,95,206,189,41,119,91,113,251,205,185,219,115,119,228,126,37,247,171,87,148,235,215,146,159,222,146,123,107,238,109,87,220,251,142,228,167,59,115,239,124,194,125,119,229,238,206,189,171,248,243,175,231,126,35,247,238,220,111,38,219,191,149,123,79,114,123,79,238,222,228,246,189,185,247,37,183,239,159,224,152,63,144,220,127,95,241,177,251,147,219,227,185,19,99,246,59,153,220,115,170,124,239,111,151,183,62,120,213,158,31,42,253,252,59,185,75,227,166,125,248,9,123,124,164,66,255,63,198,77,3,104,20,11,245,248,6,0,0,0,128,89,232,235,239,239,31,144,93,3,72,217,34,145,24,104,114,139,197,65,224,10,111,233,156,236,209,163,229,145,210,204,163,81,41,75,251,151,137,196,0,0,0,0,0,0,0,0,0,0,84,201,242,73,251,170,234,31,12,0,0,0,0,0,64,182,157,43,140,68,231,11,113,124,161,160,46,0,0,104,46,31,93,168,14,128,234,235,10,141,81,206,238,98,57,123,138,183,189,161,47,244,39,91,3,97,48,44,10,251,162,56,94,28,150,148,143,99,101,255,93,237,203,194,242,228,231,21,51,62,182,85,97,117,233,57,119,183,79,189,247,218,242,239,95,55,229,43,173,31,119,143,13,97,99,216,20,54,143,121,108,75,56,92,234,21,124,36,63,148,31,214,67,24,104,34,242,193,0,98,48,128,24,12,80,61,89,203,7,127,48,201,227,46,13,87,230,131,87,245,255,78,251,116,94,99,101,184,156,15,94,51,141,122,145,15,6,196,224,43,99,240,29,97,108,12,158,174,177,49,120,117,191,24,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,76,151,49,123,0,196,96,0,49,24,0,128,44,50,118,229,101,99,199,174,252,26,99,87,2,84,217,198,126,117,0,52,171,77,85,136,128,109,29,113,252,181,189,237,29,245,115,148,29,227,150,229,134,9,90,184,55,230,181,131,129,90,218,172,45,10,0,0,0,77,33,107,253,34,226,248,201,253,119,181,207,174,95,68,28,95,238,23,113,247,52,102,98,214,47,2,0,0,0,168,148,143,46,84,7,64,179,250,134,254,167,54,117,95,181,167,149,143,254,88,146,15,110,230,154,0,0,0,128,102,96,236,74,128,44,251,166,254,219,90,38,123,252,104,57,7,44,31,12,84,206,242,78,117,0,0,64,61,48,134,251,101,99,199,112,255,102,99,184,3,0,0,0,0,0,0,64,3,251,252,188,254,232,116,238,76,110,32,170,252,239,62,155,171,220,239,154,110,191,136,135,231,85,178,95,196,23,230,77,182,191,126,17,0,0,0,0,0,0,0,0,0,0,80,255,204,163,1,0,0,0,0,52,187,107,218,246,244,191,47,188,191,65,102,222,0,166,182,183,95,29,0,0,0,0,0,0,0,0,80,27,7,245,85,1,0,0,0,0,0,0,0,96,214,158,49,105,239,147,163,249,75,91,199,242,67,121,181,5,0,0,64,99,250,14,215,94,0,0,0,19,50,175,50,217,246,108,223,137,1,234,204,119,138,204,48,3,207,241,31,3,0,153,243,220,210,231,251,245,189,234,2,0,0,0,104,28,223,237,156,5,0,0,0,0,64,131,248,94,25,93,72,213,243,252,15,2,0,80,33,223,55,101,219,242,150,232,210,150,121,52,104,92,207,247,45,10,32,53,47,16,131,1,0,0,234,200,53,230,85,6,0,128,38,243,226,174,151,116,141,174,95,218,165,46,0,0,0,0,0,210,247,3,122,216,3,0,0,0,64,67,120,161,92,30,0,140,235,135,92,171,12,52,132,255,44,196,241,214,40,142,183,37,203,246,100,217,145,44,59,163,93,209,238,100,189,39,218,27,237,75,214,251,163,3,81,53,203,240,195,53,255,86,113,176,116,60,135,146,245,176,40,12,0,41,249,209,204,100,22,55,183,250,107,2,141,230,199,156,221,1,0,0,168,169,122,56,39,247,227,206,201,1,98,112,106,49,248,69,98,48,0,0,0,0,208,240,186,66,99,148,179,187,88,206,158,226,109,111,232,11,253,201,214,64,24,12,139,194,104,62,120,113,88,82,58,142,23,39,153,219,165,97,89,88,158,252,188,98,134,199,182,50,172,10,171,75,207,89,51,141,231,174,45,239,179,110,202,189,215,143,187,199,134,176,49,108,10,155,199,60,182,37,28,46,229,128,143,228,135,242,242,193,0,0,0,0,0,0,0,48,59,89,235,23,113,71,168,100,191,136,151,78,122,125,156,126,17,128,24,92,205,24,252,50,49,248,10,47,239,255,9,163,40,2,77,225,21,197,104,119,34,58,25,157,138,234,161,60,0,0,0,245,227,149,253,111,108,81,11,80,73,119,150,179,15,230,85,102,106,215,203,210,131,24,76,74,126,82,59,24,196,96,82,116,131,118,48,136,193,0,13,226,198,254,219,38,253,246,120,52,47,6,3,212,179,195,190,127,2,0,0,0,0,0,64,29,186,185,120,38,111,222,188,234,189,194,45,117,116,174,240,86,231,45,129,41,180,68,215,182,172,111,29,123,255,117,197,222,107,198,77,3,0,0,160,210,142,202,88,1,64,106,142,249,28,134,212,188,202,255,31,0,0,0,0,64,83,248,89,249,96,128,212,188,90,12,6,0,128,38,246,26,223,8,0,0,106,228,181,90,94,0,0,0,0,208,132,126,94,102,16,32,19,126,81,60,7,0,166,212,21,26,163,156,221,197,114,246,20,111,123,67,95,232,79,182,6,194,96,88,20,246,69,113,188,56,44,41,29,199,47,37,45,160,165,97,89,88,158,252,188,98,134,199,182,50,172,10,171,75,207,89,51,141,231,174,45,239,179,110,202,189,215,143,187,199,134,176,49,108,10,155,199,60,182,37,28,206,63,190,117,36,63,148,31,206,55,195,59,17,0,0,0,32,93,111,238,191,189,255,14,103,215,0,0,0,0,0,0,152,147,95,157,224,140,211,141,121,253,131,179,239,45,206,55,2,140,235,173,253,189,11,212,2,52,183,190,36,10,92,108,125,164,245,209,214,199,90,213,6,0,105,120,155,239,236,0,179,240,118,209,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,162,238,52,206,27,0,64,149,189,115,210,22,215,209,242,12,114,199,242,67,102,147,107,114,119,107,157,67,19,123,151,8,0,0,204,194,175,107,67,0,0,0,36,126,99,202,111,71,183,68,151,182,156,147,3,0,0,32,107,162,142,234,254,254,223,236,15,29,173,87,189,198,188,142,155,202,223,181,159,52,206,235,23,230,92,166,182,228,55,204,239,104,175,242,177,205,68,199,19,202,114,115,249,232,111,152,32,207,176,160,227,112,233,145,35,73,46,98,88,54,162,70,126,203,57,116,0,104,26,239,233,127,32,247,96,238,116,238,76,110,32,170,252,111,63,155,83,195,64,54,221,227,91,19,0,80,101,247,106,111,0,164,232,189,253,39,122,212,2,192,204,188,79,11,22,32,67,222,47,170,3,0,208,160,62,160,45,11,0,0,51,116,191,86,52,64,42,142,139,191,0,0,0,0,0,0,0,0,0,0,144,121,31,210,111,24,0,0,152,131,223,241,157,2,0,0,32,131,30,156,242,219,222,45,209,165,173,99,249,161,188,26,203,146,211,190,235,3,0,64,131,234,236,155,222,126,103,180,250,105,80,61,165,247,248,161,36,43,49,92,141,108,68,120,124,149,107,85,215,84,194,135,251,191,97,225,83,23,62,109,161,154,0,128,202,249,72,242,109,102,107,210,26,220,150,44,219,147,101,71,178,236,140,118,69,187,147,245,158,104,111,180,47,89,239,143,14,68,217,58,234,131,165,227,169,90,59,24,0,0,0,0,0,0,0,0,0,0,0,0,0,96,66,191,223,63,96,188,26,0,0,154,210,67,90,194,0,41,59,39,18,3,164,234,130,56,12,0,0,0,77,100,68,38,0,184,194,91,58,39,123,244,104,121,230,12,115,219,3,0,0,213,245,113,57,11,0,104,34,93,161,49,202,217,93,44,103,79,241,182,55,244,133,254,100,107,32,12,134,69,97,116,94,229,197,97,73,233,56,62,145,180,100,150,134,101,97,121,242,243,138,25,30,219,202,176,42,172,46,61,103,205,52,158,187,182,188,207,186,41,247,94,63,238,30,27,194,198,176,41,108,30,243,216,150,112,184,148,5,62,146,228,131,205,171,12,52,155,143,46,84,7,0,0,0,0,0,0,0,0,0,0,52,158,172,93,163,241,103,179,186,70,227,207,251,255,162,223,53,26,128,24,156,78,12,254,140,24,12,136,193,169,197,224,191,20,131,1,0,0,0,0,106,236,175,251,23,24,177,44,126,195,130,75,91,230,50,2,154,145,177,43,129,90,168,247,126,17,127,83,154,93,102,186,253,34,226,248,25,125,119,181,207,110,12,247,56,190,220,47,226,238,246,169,247,214,47,2,0,0,42,239,239,146,239,0,23,91,31,105,125,180,245,177,86,181,1,0,0,0,181,242,143,201,55,242,173,201,121,183,109,201,178,61,89,118,36,203,206,104,87,180,59,89,239,137,246,70,163,231,228,246,71,7,162,108,29,245,193,210,241,28,74,214,206,201,1,0,0,0,0,0,52,182,172,141,31,124,71,152,205,248,193,143,27,59,126,240,195,253,147,237,239,58,57,0,0,0,152,57,185,136,203,198,230,34,254,73,46,2,168,251,24,252,207,253,215,244,93,219,119,93,223,247,247,85,175,156,211,141,193,63,208,87,201,24,60,57,49,24,96,182,254,165,191,126,203,246,67,229,79,51,99,184,3,217,245,175,117,28,135,1,102,238,121,109,95,236,191,47,220,31,142,55,72,158,185,113,253,155,207,15,0,0,0,128,57,249,143,254,251,230,169,5,32,109,247,151,35,145,126,17,0,0,213,240,165,254,7,114,15,230,78,231,206,228,6,170,48,15,197,217,156,26,134,70,244,101,189,110,152,147,182,142,56,62,221,221,222,81,63,37,234,24,183,44,55,76,144,103,56,211,237,58,57,160,182,254,211,39,47,0,0,0,0,64,133,124,69,198,21,0,0,0,0,0,0,0,0,82,112,209,216,149,64,29,48,118,229,228,30,209,203,18,0,102,236,81,159,159,76,233,99,209,72,148,110,9,62,94,126,125,237,96,210,245,152,152,9,144,146,255,19,129,161,121,248,127,7,104,0,185,1,117,0,144,150,175,18,131,1,0,0,96,134,242,147,126,155,62,90,238,143,166,111,218,108,68,114,21,0,192,148,186,66,99,148,179,187,88,206,158,226,109,111,232,11,253,201,214,64,24,12,139,194,190,40,142,23,135,37,165,227,104,73,90,64,75,195,178,176,60,249,121,197,12,143,109,101,88,21,86,151,158,179,102,26,207,93,91,222,103,221,148,123,175,31,119,143,13,97,99,216,20,54,143,121,108,75,48,183,61,0,0,0,0,0,0,0,0,205,160,77,143,103,128,212,204,23,131,1,0,0,0,160,42,206,21,70,162,243,133,56,190,80,80,23,0,89,180,208,184,105,0,0,0,0,0,0,80,35,189,174,128,2,0,154,88,159,182,16,0,0,0,0,0,208,48,250,157,217,0,50,226,68,95,28,95,108,125,164,245,209,214,199,90,213,6,64,227,27,40,182,83,231,205,171,230,107,12,14,44,210,26,6,26,198,181,45,227,221,123,93,241,222,19,209,201,232,84,164,142,0,0,0,0,0,0,96,46,22,235,69,0,0,64,19,90,162,29,12,64,234,150,14,220,55,175,14,138,1,52,185,251,203,145,168,185,230,182,95,46,6,3,98,48,64,19,89,33,31,12,144,154,149,98,48,0,0,0,0,0,0,0,0,211,180,122,224,26,115,240,1,0,0,208,48,206,21,70,162,243,133,56,190,80,80,23,0,0,0,0,0,0,0,0,84,199,215,26,215,19,32,37,27,68,96,0,0,0,0,0,0,0,0,128,140,123,178,158,98,0,0,0,0,21,244,245,178,45,0,204,208,83,124,118,64,69,221,25,93,218,58,150,31,202,171,15,0,0,0,0,0,0,152,185,167,77,122,38,251,104,249,60,156,115,114,0,0,0,204,204,55,234,59,13,85,247,77,254,207,0,170,230,155,7,78,244,168,5,128,116,125,139,246,46,208,180,182,138,128,0,77,110,155,79,2,128,57,121,113,215,75,186,70,215,47,237,82,23,0,141,96,199,192,78,45,96,104,16,109,29,113,188,107,160,189,163,126,74,212,49,110,89,110,152,224,26,184,221,3,135,75,143,28,201,15,229,135,93,41,119,133,61,98,49,64,42,246,138,191,0,0,0,0,0,0,0,0,0,0,0,51,116,72,79,108,0,0,42,234,161,110,117,0,0,0,89,115,182,235,233,114,201,0,0,0,64,166,61,83,246,3,0,0,0,0,0,0,0,96,140,239,208,167,2,0,160,74,158,163,165,5,0,0,0,0,0,0,0,0,196,231,10,35,209,249,66,28,95,40,168,11,0,0,0,0,32,59,186,66,99,148,179,187,88,206,158,226,109,111,232,11,253,201,214,64,24,12,139,194,190,40,142,23,135,37,165,227,248,179,254,56,94,26,150,133,229,201,207,43,102,112,108,223,61,16,199,43,195,170,176,186,244,156,53,211,120,238,218,242,62,235,166,220,123,253,184,123,108,8,27,195,166,176,121,204,99,91,194,225,252,227,91,71,242,67,249,225,124,179,188,27,1,0,0,160,57,233,155,6,80,107,215,24,95,16,0,128,38,116,173,118,48,64,106,174,19,131,1,0,0,0,128,76,203,218,181,202,163,126,96,96,230,215,42,63,238,242,181,202,211,225,90,101,0,0,42,237,7,155,186,151,194,211,250,47,109,29,75,218,193,205,92,19,0,0,0,80,59,63,54,240,227,174,154,0,168,144,23,139,168,0,117,229,165,226,50,0,0,169,152,251,53,26,47,31,120,65,223,53,125,215,246,93,215,247,253,125,213,43,231,116,175,209,248,129,190,217,205,39,55,202,124,114,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,205,236,39,7,94,211,241,218,14,245,208,104,94,87,254,155,153,79,14,178,45,107,115,219,223,48,96,220,52,0,0,174,116,216,172,21,208,228,142,12,188,108,161,90,128,177,94,126,213,127,198,241,104,244,246,68,116,50,58,21,169,29,0,106,105,216,183,54,0,0,0,128,166,115,179,156,16,52,153,91,252,215,3,80,21,183,250,132,1,72,205,81,49,24,0,170,236,152,79,91,0,0,96,6,206,21,70,162,243,133,56,190,80,80,23,0,89,244,170,73,115,69,71,203,163,85,26,63,152,250,241,83,50,156,100,204,123,38,24,141,231,158,232,137,227,7,223,107,204,30,0,0,0,0,0,0,0,0,0,0,0,72,205,207,184,162,5,0,0,160,2,94,237,219,21,208,36,94,209,63,122,123,34,58,25,157,50,94,4,0,0,192,85,94,35,71,4,21,117,103,57,251,96,252,96,0,0,0,0,0,0,0,128,44,120,253,192,125,243,212,2,144,182,251,203,145,72,223,52,0,0,0,0,0,0,0,0,174,244,140,249,234,0,0,0,0,46,251,133,73,71,221,62,90,190,46,195,53,26,191,108,124,114,128,212,188,73,12,6,0,0,0,0,0,0,0,0,0,0,0,38,116,187,235,228,0,0,0,0,168,43,191,50,48,191,71,45,0,64,117,252,234,192,3,185,7,115,167,115,103,114,3,81,229,127,251,217,156,26,110,102,255,211,27,199,255,184,32,142,63,151,44,159,95,48,254,62,15,23,239,255,194,130,119,180,169,47,160,94,124,182,28,145,244,139,168,165,95,51,78,38,0,0,0,240,4,111,145,43,0,72,209,91,69,97,128,26,123,219,192,9,253,100,1,234,194,219,181,133,1,128,10,232,10,141,81,206,238,98,57,123,138,183,189,161,47,244,39,91,3,97,48,44,10,251,162,56,94,28,150,148,142,227,29,73,27,105,105,88,22,150,39,63,175,152,225,177,173,12,171,194,234,210,115,214,76,227,185,107,203,251,172,155,114,239,245,227,238,177,33,108,12,155,194,230,49,143,109,9,135,75,189,130,143,228,135,242,195,122,8,3,0,0,212,200,93,50,239,0,169,185,91,12,166,97,92,76,178,210,143,68,117,80,16,0,168,154,119,105,155,1,0,0,0,100,200,175,39,217,158,87,244,169,7,230,162,173,35,142,79,119,183,119,212,79,137,58,198,45,203,13,19,92,125,113,166,219,53,26,0,84,207,187,157,91,3,0,0,0,0,0,0,168,107,247,36,231,117,239,45,157,219,125,111,42,231,120,223,55,230,85,223,127,197,61,31,152,178,84,247,13,60,144,123,48,119,58,119,38,247,225,220,229,123,239,175,208,209,156,205,121,151,64,118,28,215,151,133,140,121,207,4,163,252,220,19,61,177,127,240,189,198,2,162,46,156,16,131,17,131,105,40,39,69,45,104,64,167,202,255,185,199,146,24,172,62,0,0,0,0,128,74,200,218,220,246,191,109,110,123,234,210,7,157,157,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,204,25,227,166,0,0,0,64,202,178,54,126,112,28,127,120,224,174,246,217,141,31,28,199,151,199,15,190,187,125,234,189,141,31,12,136,193,87,199,224,143,136,193,0,0,0,192,172,252,174,158,100,0,0,208,68,126,175,252,13,224,88,114,78,78,125,0,0,0,0,0,0,0,0,52,186,63,24,184,111,158,90,0,210,118,127,57,18,53,87,223,180,63,20,131,1,49,24,160,169,61,228,26,13,160,198,254,200,232,16,0,196,231,10,35,209,249,66,28,95,40,168,11,160,146,62,54,48,162,181,9,0,115,244,9,159,166,0,0,64,131,248,164,239,47,0,0,0,80,167,254,120,224,246,254,59,250,213,3,0,149,243,80,183,58,0,16,131,1,0,0,42,235,83,122,33,2,0,84,217,159,104,113,65,69,221,25,93,218,50,126,48,0,0,0,0,0,179,49,80,60,123,51,175,202,179,23,127,218,57,34,160,97,92,219,50,222,189,215,21,239,61,17,157,140,78,69,234,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,168,39,159,49,222,27,0,64,149,253,229,164,45,174,163,229,57,228,204,39,7,0,52,166,191,146,95,2,0,50,225,175,181,106,0,82,244,55,162,48,64,42,254,86,252,5,0,0,32,147,206,21,70,162,243,133,56,190,80,80,23,245,228,239,101,34,160,65,180,117,196,241,174,129,246,142,250,41,81,199,184,101,185,97,130,235,47,118,15,28,46,61,114,36,63,148,31,118,149,6,64,29,249,172,22,33,79,176,183,69,29,64,37,221,25,93,218,26,255,90,229,127,16,131,17,131,33,181,24,220,220,254,209,39,16,0,0,80,5,159,79,190,107,60,236,251,6,179,54,218,47,226,116,119,227,246,139,56,211,93,63,253,34,190,224,63,17,0,0,160,142,252,243,192,191,12,252,107,241,155,218,123,83,249,190,246,190,49,175,250,254,43,238,249,192,148,165,186,111,224,139,3,255,54,112,58,119,38,247,225,220,229,123,239,175,208,209,156,205,121,143,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,195,185,194,72,116,190,16,199,23,10,234,2,32,187,190,52,193,40,161,55,230,235,103,30,13,160,154,186,66,99,148,179,187,88,206,158,226,109,111,232,11,253,201,214,64,24,12,139,194,190,40,142,23,135,37,165,227,248,179,254,56,94,26,150,133,229,201,207,43,102,112,108,95,78,162,225,202,176,42,172,46,61,103,205,52,158,187,182,188,207,186,41,247,94,63,238,30,27,194,198,176,41,108,30,243,216,150,32,6,3,0,0,0,0,0,0,0,213,242,209,133,234,0,32,45,98,48,0,0,0,0,144,53,89,187,86,249,43,3,179,187,86,121,148,107,149,1,0,0,0,0,0,0,0,0,0,0,0,0,0,96,50,185,65,117,0,0,52,163,135,186,213,1,64,58,190,202,247,80,0,0,0,0,82,147,181,49,220,239,8,149,28,195,61,63,105,238,206,24,238,0,0,192,92,69,122,12,0,164,166,69,12,6,0,128,20,4,45,113,0,0,234,84,171,182,42,64,138,230,137,194,0,169,120,146,248,11,64,83,40,248,196,3,0,0,0,0,0,128,170,105,115,62,14,0,0,0,74,58,124,75,6,96,6,22,248,220,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,200,160,222,193,167,246,55,243,241,63,173,124,244,199,242,67,249,102,174,9,160,249,156,43,140,68,231,11,113,124,161,160,46,0,154,79,127,121,180,89,237,96,128,90,27,16,131,129,186,210,29,70,111,123,138,183,189,161,47,244,39,91,3,97,48,44,10,251,162,56,94,28,150,132,70,60,170,193,193,69,131,155,194,230,49,101,191,49,127,184,20,121,143,36,49,120,88,20,6,168,161,197,218,193,0,0,115,178,100,240,53,29,175,237,80,15,141,230,117,229,191,153,118,48,0,64,229,172,52,207,54,0,208,132,30,234,86,7,0,0,0,0,0,0,212,183,213,250,245,0,0,208,116,214,104,5,3,41,91,43,14,241,4,123,91,212,1,84,210,157,209,165,173,236,142,23,177,206,231,8,0,140,99,189,79,72,230,164,173,35,142,79,119,183,215,209,136,113,29,227,150,229,134,9,218,184,103,186,141,225,14,0,208,44,190,198,183,31,0,0,0,152,210,191,12,124,93,241,27,244,123,7,210,120,245,247,141,121,213,247,95,113,207,7,166,44,213,125,3,15,228,30,204,157,206,157,201,125,56,119,249,222,251,43,116,52,103,115,222,33,0,0,0,205,108,243,224,22,231,157,161,238,60,121,240,235,39,248,207,124,74,114,255,197,214,71,90,31,109,125,172,85,61,1,0,0,0,0,0,192,236,125,166,160,14,0,0,0,0,0,0,0,96,34,223,56,248,162,78,181,144,37,47,46,255,61,179,59,167,39,100,197,55,25,7,4,0,0,0,0,0,200,156,111,113,6,4,0,128,170,219,170,213,9,0,0,0,208,112,182,201,233,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,77,239,238,86,117,80,41,93,161,49,202,217,93,44,103,79,241,182,55,244,133,254,100,107,32,12,134,69,97,95,20,199,139,195,146,210,113,188,43,121,111,44,13,203,194,242,228,231,21,51,60,182,149,97,85,88,93,122,206,154,210,122,247,224,111,76,248,110,91,91,254,253,235,166,124,165,245,227,238,177,33,108,12,155,194,230,49,143,109,9,239,46,189,234,145,252,80,126,216,204,202,64,131,196,224,198,50,56,184,103,112,188,24,124,99,254,112,94,12,6,0,0,0,0,42,43,107,231,228,238,8,149,60,39,183,127,210,113,183,171,121,78,78,62,24,128,122,116,192,140,20,0,0,13,238,224,4,45,58,125,211,0,0,128,172,120,186,76,54,212,157,39,15,126,253,4,255,153,79,73,238,191,216,250,72,235,163,173,143,185,58,31,0,32,5,207,24,124,243,124,181,0,0,64,163,123,150,51,3,0,169,249,118,49,24,0,0,234,196,179,181,206,1,0,198,245,28,237,36,50,230,61,209,248,247,223,19,61,113,188,136,123,35,53,69,61,120,174,24,140,24,12,0,0,0,80,113,223,93,206,187,29,75,114,17,234,3,234,217,247,200,147,3,0,0,0,0,0,212,137,239,29,220,226,220,13,212,29,115,25,1,0,0,0,181,181,179,87,29,0,0,0,0,0,213,241,124,189,20,1,0,128,6,241,255,3]; +pub(crate) static GOTO_CHECK_TABLE: [i16; 24002] = [ + 0, 1, 2, 3, -1, -1, -1, -1, 8, 9, -1, -1, -1, -1, -1, 15, 16, -1, 18, 19, 20, 21, -1, 23, -1, + -1, 26, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 38, -1, -1, -1, -1, 43, 44, -1, -1, 47, 48, + 49, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 69, -1, -1, 72, + 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, 88, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 89, -1, -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, 30, -1, -1, -1, + -1, -1, -1, -1, -1, 39, 40, 30, 89, 17, -1, 27, 28, 29, 30, 17, 22, -1, 139, 36, 10, 142, 143, + 10, 54, 146, 24, 17, 149, 150, 151, -1, 10, 10, -1, 10, 6, 10, 159, 17, 148, 4, 116, 10, 10, + 166, 165, 168, 169, 116, 7, 172, -1, 7, 175, 176, 116, 116, 165, 180, 7, 7, 7, 7, 7, -1, 160, + 148, 189, 70, 71, 7, 193, 194, 195, 7, 165, 198, -1, 200, 201, 202, 203, 7, -1, 143, 6, 6, 146, + 12, 211, 149, 213, 89, 50, 51, 6, 53, 46, 50, 6, 12, 53, -1, -1, -1, 10, 10, -1, -1, -1, 116, + 233, -1, -1, -1, 237, 105, 239, 240, -1, -1, -1, -1, 11, 38, -1, 58, 41, 250, 38, 252, 58, 38, + 42, -1, 41, 38, 259, 260, 41, 33, 263, 264, 265, 266, 267, 255, 50, 7, 50, 53, 52, 53, 11, 276, + 38, 278, -1, 280, 42, 268, 283, 270, 271, 7, 287, 288, 11, 7, -1, 38, -1, 113, 114, 42, 167, + 298, 299, 268, 269, 270, 271, 304, 183, 165, 13, 58, 309, -1, 58, -1, 191, 57, 289, 290, 291, + 38, 38, 320, 41, 41, 310, -1, 5, 190, 13, 14, 284, 285, 285, 286, 74, 321, 24, 285, 286, 285, + 286, 285, 286, 285, 286, 7, 285, 286, 50, 183, 102, 53, 75, 352, 183, 7, 355, 356, 357, 10, + 241, 59, 71, 362, 285, 286, 365, 274, 367, 241, 369, 7, 371, 372, 274, 363, 364, 376, 377, 284, + 285, 380, 281, 382, 383, 156, 173, 155, 387, 388, 389, 75, 241, 392, 393, 394, 395, 396, 375, + 289, 290, 291, 368, 183, 403, 183, 405, 406, 407, 408, 368, 409, 10, 305, 409, 414, 322, 416, + 417, 273, 409, 273, 409, 273, 423, 424, 425, 409, 37, 428, 429, 430, 431, 238, 433, 434, 170, + 436, 437, 183, 439, 440, 171, 442, 413, 410, 411, 412, 53, 413, 335, 413, 154, 155, 447, 454, + 133, 456, 285, 286, 459, 277, 461, 462, 373, 374, 285, 286, 116, 448, 358, 364, 471, 447, 473, + 337, 349, 285, 286, 478, 241, 183, 241, 255, 483, 191, 192, 447, 273, 404, 285, 286, 285, 286, + 493, 325, 413, 214, 497, 498, 499, 500, 501, 502, 494, 460, 442, 174, 241, 508, 207, 285, 286, + 494, 410, 411, 116, 212, 273, 455, 196, 197, 116, 459, 457, 325, 462, 511, 498, 499, 500, 501, + 502, 513, 514, 471, 511, 513, 514, 515, 494, 498, 478, 500, 501, 544, 495, 483, 516, 517, 325, + 410, 411, 412, 241, 341, 359, 493, 361, 450, 449, 497, 498, 499, 500, 501, 502, 353, 410, 273, + 251, 438, 508, 273, 544, 432, 306, 307, 183, 208, 152, 341, 154, 155, 273, 241, 116, 544, 303, + 494, 450, 303, 241, 353, 273, 381, 341, 458, 311, 512, 326, 462, 378, 381, 27, 28, 29, 30, 544, + 354, 471, 447, 516, 517, 512, 512, 326, 478, 612, 450, 378, 381, 483, 422, 378, 503, 504, 273, + 272, 273, 45, 474, 503, 504, 241, 378, 497, 498, 499, 500, 501, 502, 27, 28, 29, 30, 349, 508, + 37, 592, 349, 586, 498, 410, 30, 602, 590, 585, 498, 587, 241, 589, 157, 591, 40, 593, 590, + 595, 596, 597, 602, 599, 600, 601, 590, 603, 604, 602, 605, 602, 608, 556, 557, 544, 378, 605, + 523, 606, 607, 105, 590, 669, 509, 671, 509, 359, 420, 421, 545, 418, 419, 420, 421, 381, 28, + 378, 30, 241, 145, 522, 241, 705, 702, 704, 157, 543, 672, 708, 7, 702, 708, 702, 138, 717, + 718, 324, 325, 717, 722, 723, 724, 702, 722, 723, 717, 529, 717, 713, 475, 722, 723, 722, 723, + 496, 717, 477, 717, 586, 702, 722, 723, 722, 723, 707, 717, 709, 717, 708, 472, 722, 723, 722, + 723, 717, 714, 715, 707, 717, 722, 723, 337, 338, 722, 723, 714, 715, 707, 717, 709, 708, 702, + 707, 722, 723, 714, 715, 707, 717, 709, 707, 718, 709, 722, 723, 722, 717, 724, 702, 708, 669, + 722, 723, 707, 717, 709, 717, 708, 653, 722, 723, 722, 723, 717, 708, 717, 708, 717, 722, 723, + 722, 723, 722, 723, 717, 702, 700, 708, 717, 722, 723, 717, 702, 722, 723, 626, 722, 723, 627, + 702, 717, 643, 644, 717, 705, 722, 723, 717, 722, 723, 556, 557, 722, 723, 717, 275, 717, 718, + 669, 722, 723, 722, 723, 724, 717, 702, 717, 672, 717, 722, 723, 722, 723, 722, 723, 602, 705, + 717, 710, 711, 717, 700, 722, 723, 476, 722, 723, 719, 717, 718, 722, 723, 724, 722, 723, 724, + 702, 669, 717, 671, 710, 711, 275, 722, 723, 716, 705, 702, 669, 719, 671, 717, 722, 723, 724, + 717, 722, 723, 717, 718, 722, 723, 717, 722, 723, 724, 702, 722, 723, 324, 325, 705, 669, 717, + 671, 602, 702, 700, 722, 723, 708, 717, 707, 717, 718, 707, 722, 723, 722, 723, 724, 717, 702, + 708, 717, 702, 722, 723, 707, 722, 723, 707, 702, 717, 702, 324, 325, 717, 722, 723, 717, 273, + 722, 723, 700, 722, 723, 717, 708, 717, 643, 644, 722, 723, 722, 723, 710, 711, 285, 286, 700, + 717, 702, 273, 700, 719, 722, 723, 722, 723, 724, 441, 442, 443, 444, 700, 590, 717, 273, 494, + 702, 717, 722, 723, 717, 273, 722, 723, 717, 722, 723, 702, 717, 722, 723, 717, 708, 722, 723, + 717, 722, 723, 702, 707, 722, 723, 717, 710, 711, 717, 708, 722, 723, 702, 722, 723, 719, 717, + 621, 722, 723, 724, 722, 723, 717, 708, 710, 711, 717, 722, 723, 702, 708, 722, 723, 719, 541, + 542, 722, 723, 724, 702, 717, 702, 717, 708, 717, 722, 723, 722, 723, 722, 723, 38, 702, 708, + 717, 42, 717, 710, 711, 722, 723, 722, 723, 337, 707, 702, 719, 717, 708, 722, 723, 724, 722, + 723, 707, 705, 359, 360, 361, 719, 717, 707, 722, 723, 724, 722, 723, 717, 718, 711, 712, 669, + 722, 723, 724, 516, 517, 719, 711, 712, 722, 723, 724, 245, 711, 712, 719, 705, 702, 722, 723, + 724, 719, 664, 665, 722, 723, 724, 707, 717, 718, 503, 504, 717, 722, 723, 724, 498, 722, 723, + 451, 452, 453, 585, 144, 587, 273, 589, 702, 591, 621, 593, 702, 595, 596, 597, 621, 599, 600, + 601, 325, 603, 604, 717, 701, 702, 608, 717, 722, 723, 673, 291, 722, 723, 441, 442, 443, 444, + 143, 707, 717, 146, 606, 607, 149, 722, 723, 556, 557, 558, 585, 707, 587, 709, 589, 702, 591, + 359, 593, 361, 595, 596, 597, 335, 599, 600, 601, 700, 603, 604, 717, 642, 669, 608, 671, 722, + 723, 441, 442, 443, 444, 717, 498, 657, 717, 627, 722, 723, 631, 722, 723, 498, 499, 500, 501, + 502, 556, 557, 587, 559, 589, 273, 591, 707, 593, 709, 595, 596, 597, 639, 599, 600, 601, 687, + 603, 604, 707, 719, 707, 608, 722, 723, 724, 699, 700, 556, 557, 558, 441, 442, 443, 444, 520, + 717, 522, 523, 718, 544, 722, 723, 722, 717, 724, 273, 606, 607, 722, 723, 705, 567, 538, 717, + 540, 541, 542, 325, 722, 723, 708, 607, 717, 718, 556, 557, 325, 722, 723, 724, 607, 719, 607, + 717, 722, 723, 724, 707, 722, 723, 702, 545, 717, 708, 545, 718, 705, 722, 723, 722, 442, 724, + 702, 700, 446, 717, 117, 118, 717, 718, 722, 723, 528, 722, 723, 724, 700, 717, 505, 438, 717, + 708, 722, 723, 274, 722, 723, 441, 442, 443, 444, 7, 34, 717, 703, 37, 341, 273, 722, 723, 708, + 718, 643, 644, 717, 722, 498, 724, 353, 722, 723, 720, 700, 722, 723, 724, 725, 708, 662, 279, + 707, 700, 709, 700, 35, 717, 655, 656, 708, 717, 722, 723, 272, 273, 722, 723, 381, 7, 717, + 702, 717, 700, 7, 722, 723, 722, 723, 717, 7, 157, 702, 717, 722, 723, 717, 7, 722, 723, 717, + 722, 723, 7, 717, 722, 723, 717, 279, 722, 723, 717, 722, 723, 7, 705, 722, 723, 717, 50, 700, + 708, 53, 722, 723, 688, 719, 717, 718, 722, 723, 724, 722, 723, 724, 273, 157, 717, 588, 157, + 695, 591, 722, 723, 594, 595, 596, 692, 598, 599, 600, 601, 691, 603, 604, 643, 644, 157, 608, + 609, 700, 611, 612, 613, 455, 615, 64, 686, 459, 719, 691, 462, 722, 723, 724, 117, 118, 717, + 702, 672, 471, 645, 722, 723, 688, 498, 279, 478, 157, 639, 640, 641, 483, 717, 498, 645, 500, + 501, 722, 723, 624, 702, 493, 513, 514, 515, 497, 498, 499, 500, 501, 502, 37, 663, 705, 498, + 717, 508, 668, 700, 719, 722, 723, 722, 723, 724, 717, 718, 673, 717, 702, 722, 723, 724, 722, + 723, 717, 631, 37, 702, 544, 722, 723, 566, 694, 717, 696, 697, 698, 657, 722, 723, 183, 544, + 717, 705, 706, 707, 708, 722, 723, 643, 644, 645, 717, 647, 553, 717, 718, 722, 723, 717, 722, + 723, 724, 588, 722, 723, 591, 687, 38, 594, 595, 596, 42, 598, 599, 600, 601, 530, 603, 604, + 28, 29, 30, 608, 609, 707, 611, 612, 613, 705, 615, 717, 279, 157, 294, 719, 722, 723, 722, + 723, 724, 717, 718, 494, 516, 517, 722, 723, 724, 605, 498, 177, 178, 179, 639, 640, 641, 585, + 498, 587, 645, 589, 157, 591, 702, 593, 605, 595, 596, 597, 590, 599, 600, 601, 7, 603, 604, + 705, 663, 717, 608, 516, 517, 668, 722, 723, 705, 717, 294, 717, 718, 511, 722, 723, 722, 723, + 724, 157, 717, 718, 279, 717, 700, 722, 723, 724, 722, 723, 498, 694, 500, 501, 697, 698, 538, + 539, 540, 541, 542, 717, 705, 706, 707, 708, 722, 723, 279, 516, 517, 717, 279, 713, 717, 718, + 722, 723, 494, 722, 723, 724, 588, 567, 498, 591, 500, 501, 594, 595, 596, 511, 598, 599, 600, + 601, 544, 603, 604, 359, 494, 511, 608, 609, 494, 611, 612, 613, 585, 615, 587, 567, 589, 279, + 591, 445, 593, 707, 595, 596, 597, 319, 599, 600, 601, 528, 603, 604, 705, 498, 544, 608, 718, + 639, 640, 641, 722, 705, 724, 645, 717, 718, 494, 279, 494, 722, 723, 724, 465, 717, 718, 215, + 216, 717, 722, 723, 724, 663, 722, 723, 708, 568, 668, 585, 662, 587, 527, 589, 494, 591, 468, + 593, 494, 595, 596, 597, 672, 599, 600, 601, 545, 603, 604, 702, 50, 51, 608, 53, 694, 717, + 696, 697, 698, 702, 722, 723, 273, 114, 717, 705, 706, 707, 708, 722, 723, 231, 279, 708, 717, + 426, 427, 717, 718, 722, 723, 717, 722, 723, 724, 588, 722, 723, 591, 7, 116, 594, 595, 596, + 177, 598, 599, 600, 601, 527, 603, 604, 504, 665, 666, 608, 609, 718, 611, 612, 613, 722, 615, + 724, 183, 717, 711, 712, 112, 341, 722, 723, 711, 712, 719, 683, 684, 722, 723, 724, 719, 138, + 354, 722, 723, 724, 639, 640, 641, 273, 2, 3, 645, 231, 717, 648, 8, 9, 204, 722, 723, 708, + 702, 15, 16, 231, 18, 19, 20, 21, 663, 23, 718, 7, 26, 668, 722, 717, 724, 463, 7, 604, 722, + 723, 702, 116, 38, 707, 702, 709, 273, 43, 44, 183, 188, 47, 48, 49, 38, 717, 708, 694, 42, + 717, 722, 723, 516, 517, 722, 723, 410, 411, 705, 706, 707, 708, 123, 69, 702, 123, 72, 73, + 707, 378, 717, 718, 702, 349, 702, 722, 723, 724, 707, 717, 709, 707, 88, 709, 722, 723, 199, + 717, 349, 717, 273, 116, 722, 723, 722, 723, 606, 607, 702, 707, 708, 709, 702, 699, 700, 643, + 644, 273, 643, 644, 645, 719, 647, 717, 722, 723, 724, 717, 722, 723, 349, 717, 722, 723, 66, + 708, 722, 723, 4, 703, 707, 708, 709, 139, 6, 707, 142, 143, 50, 7, 146, 53, 700, 149, 150, + 151, 720, 708, 722, 723, 724, 725, 273, 159, 379, 273, 702, 699, 700, 717, 166, 7, 168, 169, + 722, 723, 172, 717, 274, 175, 176, 717, 722, 723, 180, 717, 722, 723, 241, 717, 722, 723, 378, + 189, 722, 723, 721, 193, 194, 195, 76, 726, 198, 708, 200, 201, 202, 203, 585, 279, 587, 707, + 589, 709, 591, 211, 593, 213, 595, 596, 597, 181, 599, 600, 601, 50, 603, 604, 53, 708, 669, + 608, 671, 708, 711, 712, 707, 233, 116, 701, 702, 237, 719, 239, 240, 722, 723, 724, 165, 330, + 520, 521, 522, 523, 250, 717, 252, 707, 209, 709, 722, 723, 349, 259, 260, 711, 712, 263, 264, + 265, 266, 267, 700, 719, 708, 652, 722, 723, 724, 190, 276, 183, 278, 24, 280, 708, 707, 283, + 709, 717, 50, 287, 288, 53, 722, 723, 719, 450, 157, 722, 723, 724, 298, 299, 708, 59, 556, + 557, 304, 559, 145, 708, 520, 309, 522, 523, 134, 556, 557, 89, 559, 707, 719, 709, 320, 722, + 723, 724, 702, 273, 538, 76, 540, 541, 542, 418, 419, 420, 421, 96, 91, 718, 273, 717, 58, 722, + 133, 724, 722, 723, 348, 268, 269, 270, 111, 112, 352, 341, 183, 355, 356, 357, 27, 28, 29, 30, + 362, 708, 401, 365, 354, 367, 717, 369, 343, 371, 372, 722, 723, 199, 376, 377, 7, 717, 380, 7, + 382, 383, 722, 723, 7, 387, 388, 389, 117, 118, 392, 393, 394, 395, 396, 157, 700, 273, 241, + 390, 391, 403, 297, 405, 406, 407, 408, 556, 557, 100, 101, 498, 414, 717, 416, 417, 303, 183, + 722, 723, 147, 423, 424, 425, 344, 345, 428, 429, 430, 431, 692, 433, 434, 302, 436, 437, 653, + 439, 440, 686, 442, 700, 686, 717, 700, 215, 216, 143, 722, 723, 146, 273, 454, 149, 456, 700, + 688, 459, 717, 461, 462, 717, 688, 722, 723, 702, 722, 723, 273, 471, 700, 473, 717, 381, 292, + 293, 478, 722, 723, 657, 717, 483, 498, 616, 717, 722, 723, 717, 590, 722, 723, 493, 722, 723, + 688, 497, 498, 499, 500, 501, 502, 588, 273, 669, 591, 671, 508, 594, 595, 596, 700, 598, 599, + 600, 601, 708, 603, 604, 700, 242, 243, 608, 609, 144, 611, 612, 613, 717, 615, 390, 391, 517, + 722, 723, 310, 717, 554, 273, 717, 554, 722, 723, 544, 722, 723, 321, 553, 390, 391, 554, 702, + 700, 639, 640, 641, 717, 344, 345, 645, 560, 722, 723, 649, 650, 708, 717, 557, 537, 717, 498, + 722, 723, 588, 722, 723, 591, 663, 303, 594, 595, 596, 668, 598, 599, 600, 601, 511, 603, 604, + 177, 178, 179, 608, 609, 700, 611, 612, 613, 511, 615, 717, 511, 711, 717, 157, 722, 723, 694, + 722, 723, 719, 717, 511, 722, 723, 724, 722, 723, 705, 706, 707, 708, 700, 639, 640, 641, 442, + 443, 444, 645, 717, 718, 708, 683, 684, 722, 723, 724, 711, 717, 418, 419, 420, 421, 722, 723, + 719, 663, 669, 722, 723, 724, 668, 530, 670, 31, 32, 530, 34, 588, 319, 37, 591, 337, 338, 594, + 595, 596, 470, 598, 599, 600, 601, 337, 603, 604, 700, 568, 694, 608, 609, 470, 611, 612, 613, + 232, 615, 165, 308, 705, 706, 707, 708, 717, 643, 644, 557, 646, 722, 723, 672, 717, 718, 702, + 308, 700, 722, 723, 724, 700, 639, 640, 641, 700, 557, 274, 645, 498, 717, 648, 378, 231, 717, + 722, 723, 58, 717, 722, 723, 10, 717, 722, 723, 708, 663, 722, 723, 63, 585, 668, 587, 378, + 589, 205, 591, 123, 593, 708, 595, 596, 597, 273, 599, 600, 601, 50, 603, 604, 53, 455, 123, + 608, 707, 459, 709, 694, 462, 717, 31, 32, 183, 34, 722, 723, 37, 471, 705, 706, 707, 708, 717, + 157, 478, 98, 99, 722, 723, 483, 717, 718, 268, 269, 270, 722, 723, 724, 708, 493, 55, 272, + 273, 497, 498, 499, 500, 501, 502, 588, 253, 254, 591, 708, 508, 594, 595, 596, 708, 598, 599, + 600, 601, 64, 603, 604, 231, 711, 708, 608, 609, 10, 611, 612, 613, 719, 615, 105, 722, 723, + 724, 700, 106, 717, 707, 227, 709, 717, 722, 723, 544, 170, 722, 723, 248, 249, 109, 273, 717, + 700, 639, 640, 641, 722, 723, 702, 645, 498, 499, 500, 501, 502, 128, 718, 103, 104, 717, 722, + 107, 724, 717, 722, 723, 91, 663, 722, 723, 711, 667, 668, 183, 390, 391, 273, 700, 719, 157, + 717, 722, 723, 724, 717, 722, 723, 59, 719, 722, 723, 722, 723, 724, 717, 279, 544, 717, 694, + 722, 723, 210, 722, 723, 702, 711, 712, 206, 498, 705, 706, 707, 708, 719, 702, 279, 722, 723, + 724, 717, 349, 717, 718, 128, 722, 723, 722, 723, 724, 717, 707, 717, 709, 181, 722, 723, 722, + 723, 460, 717, 588, 91, 708, 591, 722, 723, 594, 595, 596, 58, 598, 599, 600, 601, 135, 603, + 604, 59, 700, 145, 608, 609, 708, 611, 612, 613, 717, 615, 702, 311, 4, 722, 723, 717, 216, + 717, 199, 427, 722, 723, 722, 723, 720, 717, 722, 723, 724, 725, 722, 723, 247, 639, 640, 641, + 54, 498, 7, 645, 588, 7, 648, 591, 62, 63, 594, 595, 596, 625, 598, 599, 600, 601, 303, 603, + 604, 663, 705, 325, 608, 609, 668, 611, 612, 613, 686, 615, 705, 702, 717, 718, 686, 717, 686, + 722, 723, 724, 722, 723, 717, 718, 617, 557, 717, 722, 723, 724, 694, 722, 723, 639, 640, 641, + 634, 498, 711, 645, 512, 705, 706, 707, 708, 624, 719, 628, 700, 722, 723, 724, 25, 717, 718, + 711, 712, 663, 722, 723, 724, 708, 668, 719, 7, 717, 722, 723, 724, 588, 722, 723, 591, 290, + 291, 594, 595, 596, 303, 598, 599, 600, 601, 537, 603, 604, 261, 262, 694, 608, 609, 537, 611, + 612, 613, 708, 615, 711, 712, 705, 706, 707, 708, 81, 82, 719, 469, 183, 722, 723, 724, 717, + 718, 516, 517, 88, 722, 723, 724, 282, 639, 640, 641, 707, 498, 709, 645, 588, 272, 273, 591, + 470, 494, 594, 595, 596, 231, 598, 599, 600, 601, 7, 603, 604, 663, 191, 192, 608, 609, 668, + 611, 612, 613, 359, 615, 361, 231, 324, 325, 181, 324, 325, 282, 152, 717, 154, 155, 96, 700, + 722, 723, 520, 521, 522, 523, 694, 106, 150, 639, 640, 641, 553, 498, 555, 645, 717, 705, 706, + 707, 708, 722, 723, 426, 427, 701, 702, 129, 130, 717, 718, 106, 155, 663, 722, 723, 724, 717, + 668, 7, 7, 717, 722, 723, 717, 588, 722, 723, 591, 722, 723, 594, 595, 596, 282, 598, 599, 600, + 601, 702, 603, 604, 324, 325, 694, 608, 609, 707, 611, 612, 613, 213, 615, 711, 717, 705, 706, + 707, 708, 722, 723, 719, 272, 273, 722, 723, 724, 717, 718, 359, 360, 361, 722, 723, 724, 707, + 639, 640, 641, 717, 498, 707, 645, 588, 722, 723, 591, 707, 7, 594, 595, 596, 708, 598, 599, + 600, 601, 708, 603, 604, 663, 708, 282, 608, 609, 668, 611, 612, 613, 702, 615, 707, 708, 709, + 379, 717, 701, 702, 313, 708, 722, 723, 317, 719, 717, 287, 722, 723, 724, 722, 723, 694, 717, + 7, 639, 640, 641, 722, 723, 708, 645, 4, 705, 706, 707, 708, 157, 309, 77, 78, 494, 702, 282, + 157, 717, 718, 10, 104, 663, 722, 723, 724, 349, 668, 116, 349, 717, 498, 282, 66, 588, 722, + 723, 591, 324, 325, 594, 595, 596, 204, 598, 599, 600, 601, 282, 603, 604, 518, 519, 694, 608, + 609, 705, 611, 612, 613, 282, 615, 324, 325, 705, 706, 707, 708, 717, 718, 24, 282, 708, 722, + 723, 724, 717, 718, 324, 325, 59, 722, 723, 724, 700, 639, 640, 641, 707, 708, 709, 645, 145, + 720, 648, 722, 723, 724, 725, 494, 719, 717, 102, 722, 723, 724, 722, 723, 707, 663, 709, 133, + 643, 644, 668, 66, 414, 494, 64, 50, 415, 588, 53, 708, 591, 136, 494, 594, 595, 596, 136, 598, + 599, 600, 601, 370, 603, 604, 129, 130, 694, 608, 609, 346, 611, 612, 613, 711, 615, 217, 279, + 705, 706, 707, 708, 719, 318, 162, 722, 723, 724, 701, 702, 717, 718, 7, 699, 700, 722, 723, + 724, 498, 639, 640, 641, 717, 494, 717, 645, 7, 722, 723, 722, 723, 717, 7, 717, 686, 717, 722, + 723, 722, 723, 722, 723, 625, 663, 524, 587, 686, 589, 668, 591, 273, 593, 279, 595, 596, 597, + 622, 599, 600, 601, 705, 603, 604, 705, 643, 644, 608, 708, 565, 702, 154, 155, 717, 718, 694, + 717, 718, 722, 723, 724, 722, 723, 724, 7, 717, 705, 706, 707, 708, 722, 723, 701, 702, 344, + 345, 717, 628, 717, 718, 183, 722, 723, 722, 723, 724, 628, 506, 717, 588, 476, 708, 591, 722, + 723, 594, 595, 596, 279, 598, 599, 600, 601, 465, 603, 604, 556, 557, 510, 608, 609, 451, 611, + 612, 613, 705, 615, 64, 711, 717, 119, 451, 452, 453, 722, 723, 719, 717, 718, 722, 723, 724, + 722, 723, 724, 702, 699, 700, 498, 119, 639, 640, 641, 328, 329, 330, 645, 332, 55, 334, 717, + 336, 708, 702, 717, 722, 723, 718, 359, 722, 723, 722, 702, 724, 663, 525, 526, 700, 717, 668, + 717, 701, 702, 722, 723, 722, 723, 717, 516, 517, 717, 279, 722, 723, 717, 722, 723, 717, 119, + 722, 723, 323, 722, 723, 703, 694, 328, 329, 330, 717, 332, 289, 290, 291, 722, 723, 705, 706, + 707, 708, 102, 720, 702, 722, 723, 724, 725, 254, 717, 718, 708, 330, 476, 722, 723, 724, 498, + 717, 588, 157, 158, 591, 722, 723, 594, 595, 596, 282, 598, 599, 600, 601, 262, 603, 604, 435, + 700, 705, 608, 609, 700, 611, 612, 613, 55, 615, 717, 516, 517, 717, 718, 722, 723, 717, 722, + 723, 724, 717, 722, 723, 708, 705, 722, 723, 538, 539, 540, 541, 542, 639, 640, 641, 435, 717, + 718, 645, 708, 705, 722, 723, 724, 717, 330, 435, 699, 700, 722, 723, 700, 717, 718, 79, 708, + 663, 722, 723, 724, 708, 668, 643, 644, 645, 717, 647, 708, 717, 588, 722, 723, 591, 722, 723, + 594, 595, 596, 708, 598, 599, 600, 601, 366, 603, 604, 366, 694, 702, 608, 609, 38, 611, 612, + 613, 42, 615, 137, 705, 706, 707, 708, 700, 717, 451, 452, 453, 279, 722, 723, 717, 718, 58, + 700, 120, 722, 723, 724, 702, 717, 639, 640, 641, 700, 722, 723, 645, 137, 227, 648, 717, 110, + 330, 717, 110, 722, 723, 205, 722, 723, 717, 707, 498, 709, 663, 722, 723, 464, 707, 668, 709, + 181, 98, 585, 100, 587, 145, 589, 702, 591, 708, 593, 91, 595, 596, 597, 133, 599, 600, 601, + 134, 603, 604, 717, 230, 694, 608, 223, 722, 723, 497, 498, 499, 500, 501, 502, 705, 706, 707, + 708, 118, 567, 479, 480, 481, 643, 644, 677, 717, 718, 553, 635, 555, 722, 723, 724, 585, 566, + 587, 155, 589, 303, 591, 498, 593, 708, 595, 596, 597, 507, 599, 600, 601, 488, 603, 604, 297, + 544, 717, 608, 488, 717, 588, 722, 723, 591, 722, 723, 594, 595, 596, 700, 598, 599, 600, 601, + 702, 603, 604, 77, 78, 308, 608, 609, 7, 611, 612, 613, 717, 615, 711, 717, 349, 722, 723, 700, + 722, 723, 719, 717, 58, 722, 723, 724, 722, 723, 702, 643, 644, 645, 708, 647, 717, 639, 640, + 641, 718, 722, 723, 645, 722, 717, 724, 649, 650, 318, 722, 723, 349, 717, 498, 56, 571, 588, + 722, 723, 591, 663, 674, 594, 595, 596, 668, 598, 599, 600, 601, 275, 603, 604, 702, 711, 349, + 608, 609, 476, 611, 612, 613, 719, 615, 717, 722, 723, 724, 717, 722, 723, 694, 718, 722, 723, + 707, 722, 709, 724, 289, 290, 291, 705, 706, 707, 708, 700, 639, 640, 641, 129, 130, 702, 645, + 717, 718, 708, 649, 650, 722, 723, 724, 257, 717, 702, 7, 293, 717, 722, 723, 313, 663, 722, + 723, 317, 717, 668, 163, 164, 717, 722, 723, 275, 588, 722, 723, 591, 341, 342, 594, 595, 596, + 432, 598, 599, 600, 601, 702, 603, 604, 708, 325, 694, 608, 609, 432, 611, 612, 613, 708, 615, + 432, 717, 705, 706, 707, 708, 722, 723, 567, 257, 143, 325, 717, 146, 717, 718, 149, 722, 723, + 722, 723, 724, 702, 639, 640, 641, 289, 290, 291, 645, 717, 432, 366, 711, 650, 722, 723, 717, + 218, 219, 220, 719, 722, 723, 722, 723, 724, 663, 115, 585, 153, 587, 668, 589, 702, 591, 702, + 593, 236, 595, 596, 597, 91, 599, 600, 601, 702, 603, 604, 717, 337, 717, 608, 702, 722, 723, + 722, 723, 694, 128, 256, 717, 34, 702, 181, 37, 722, 723, 717, 705, 706, 707, 708, 722, 723, + 707, 59, 709, 717, 91, 325, 717, 718, 722, 723, 415, 722, 723, 724, 585, 358, 587, 181, 589, + 707, 591, 709, 593, 708, 595, 596, 597, 128, 599, 600, 601, 102, 603, 604, 585, 460, 587, 608, + 589, 134, 591, 135, 593, 145, 595, 596, 597, 231, 599, 600, 601, 133, 603, 604, 585, 311, 587, + 608, 589, 702, 591, 702, 593, 221, 595, 596, 597, 224, 599, 600, 601, 226, 603, 604, 717, 181, + 717, 608, 685, 722, 723, 722, 723, 674, 585, 632, 587, 718, 589, 7, 591, 722, 593, 724, 595, + 596, 597, 567, 599, 600, 601, 137, 603, 604, 60, 61, 359, 608, 361, 319, 157, 318, 678, 679, + 585, 681, 587, 116, 589, 153, 591, 258, 593, 137, 595, 596, 597, 273, 599, 600, 601, 711, 603, + 604, 556, 557, 137, 608, 258, 719, 129, 130, 722, 723, 724, 707, 585, 718, 587, 96, 589, 722, + 591, 724, 593, 435, 595, 596, 597, 708, 599, 600, 601, 708, 603, 604, 585, 718, 587, 608, 589, + 722, 591, 724, 593, 126, 595, 596, 597, 708, 599, 600, 601, 708, 603, 604, 585, 718, 587, 608, + 589, 722, 591, 724, 593, 702, 595, 596, 597, 702, 599, 600, 601, 125, 603, 604, 678, 679, 680, + 608, 717, 289, 290, 291, 717, 722, 723, 718, 702, 722, 723, 722, 181, 724, 708, 219, 220, 455, + 710, 711, 66, 459, 415, 717, 462, 700, 498, 719, 722, 723, 722, 723, 724, 471, 707, 145, 65, + 718, 154, 155, 478, 722, 717, 724, 717, 483, 133, 722, 723, 722, 723, 717, 124, 125, 126, 493, + 722, 723, 66, 497, 498, 499, 500, 501, 502, 705, 717, 136, 700, 718, 508, 722, 723, 722, 717, + 724, 135, 717, 718, 722, 723, 702, 722, 723, 724, 717, 705, 129, 130, 718, 722, 723, 315, 722, + 134, 724, 717, 702, 717, 718, 633, 722, 723, 722, 723, 724, 544, 344, 345, 718, 432, 402, 717, + 722, 498, 724, 588, 722, 723, 591, 225, 638, 594, 595, 596, 700, 598, 599, 600, 601, 638, 603, + 604, 705, 638, 551, 608, 609, 561, 611, 612, 613, 717, 615, 702, 717, 718, 722, 723, 717, 722, + 723, 724, 491, 722, 723, 575, 576, 458, 717, 489, 490, 462, 123, 722, 723, 476, 639, 640, 641, + 319, 471, 120, 645, 549, 705, 648, 552, 478, 231, 643, 644, 476, 483, 717, 498, 231, 717, 718, + 722, 723, 663, 722, 723, 724, 181, 668, 497, 498, 499, 500, 501, 502, 127, 588, 127, 133, 591, + 508, 134, 594, 595, 596, 136, 598, 599, 600, 601, 632, 603, 604, 317, 694, 135, 608, 609, 700, + 611, 612, 613, 105, 615, 227, 705, 706, 707, 708, 184, 185, 186, 187, 253, 254, 717, 544, 717, + 718, 702, 722, 723, 722, 723, 724, 576, 717, 639, 640, 641, 567, 722, 723, 645, 717, 624, 648, + 129, 130, 722, 723, 653, 654, 492, 498, 384, 385, 588, 273, 7, 591, 663, 231, 594, 595, 596, + 668, 598, 599, 600, 601, 476, 603, 604, 702, 711, 712, 608, 609, 181, 611, 612, 613, 719, 615, + 717, 722, 723, 724, 717, 722, 723, 694, 415, 722, 723, 720, 702, 722, 723, 724, 725, 134, 705, + 706, 707, 708, 135, 639, 640, 641, 133, 717, 702, 645, 717, 718, 722, 723, 700, 722, 723, 724, + 273, 717, 498, 136, 711, 717, 722, 723, 59, 663, 722, 723, 719, 717, 668, 722, 723, 724, 722, + 723, 717, 588, 231, 465, 591, 722, 723, 594, 595, 596, 116, 598, 599, 600, 601, 702, 603, 604, + 481, 482, 694, 608, 609, 116, 611, 612, 613, 181, 615, 136, 717, 705, 706, 707, 708, 722, 723, + 520, 521, 522, 523, 717, 702, 717, 718, 702, 722, 723, 722, 723, 724, 135, 639, 640, 641, 678, + 679, 717, 645, 134, 717, 648, 722, 723, 317, 722, 723, 315, 717, 498, 136, 226, 588, 722, 723, + 591, 663, 583, 594, 595, 596, 668, 598, 599, 600, 601, 136, 603, 604, 707, 708, 709, 608, 609, + 702, 611, 612, 613, 135, 615, 105, 719, 136, 567, 722, 723, 724, 694, 708, 717, 492, 717, 59, + 702, 722, 723, 722, 723, 705, 706, 707, 708, 492, 639, 640, 641, 227, 498, 717, 645, 717, 718, + 648, 722, 723, 722, 723, 724, 711, 584, 702, 556, 557, 677, 708, 711, 719, 663, 584, 722, 723, + 724, 668, 719, 465, 717, 722, 723, 724, 588, 722, 723, 591, 584, 136, 594, 595, 596, 685, 598, + 599, 600, 601, 677, 603, 604, 480, 481, 694, 608, 609, 567, 611, 612, 613, 685, 615, 516, 517, + 705, 706, 707, 708, 720, 702, 722, 723, 724, 725, 717, 492, 717, 718, -1, 722, 723, 722, 723, + 724, 717, 639, 640, 641, -1, 722, 723, 645, 588, -1, 648, 591, -1, -1, 594, 595, 596, -1, 598, + 599, 600, 601, -1, 603, 604, 663, -1, -1, 608, 609, 668, 611, 612, 613, 702, 615, -1, 702, 683, + 720, 708, 722, 723, 724, 725, 717, -1, 470, -1, 717, 722, 723, 717, -1, 722, 723, 694, 722, + 723, 639, 640, 641, 485, 486, 487, 645, -1, 705, 706, 707, 708, 498, 499, 500, 501, 502, 700, + -1, -1, 717, 718, -1, -1, 663, 722, 723, 724, -1, 668, 717, 317, 702, 711, 717, 722, 723, -1, + -1, 722, 723, 719, -1, 682, 722, 723, 724, 717, 710, 711, -1, -1, 722, 723, -1, 694, -1, 719, + 544, 717, 722, 723, 724, 711, 722, 723, 705, 706, 707, 708, 498, 719, 702, -1, 722, 723, 724, + -1, 717, 718, 702, 273, -1, 722, 723, 724, 708, 717, 678, 679, 680, 717, 722, 723, -1, 717, + 722, 723, 717, -1, 722, 723, 588, 722, 723, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, + -1, 603, 604, 702, 711, 702, 608, 609, -1, 611, 612, 613, 719, 615, 330, 722, 723, 724, 717, + -1, 717, 702, -1, 722, 723, 722, 723, -1, 720, 717, 722, 723, 724, 725, 722, 723, 717, 639, + 640, 641, 717, 722, 723, 645, 588, 722, 723, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, + 601, 273, 603, 604, 663, 711, -1, 608, 609, 668, 611, 612, 613, 719, 615, -1, 722, 723, 724, + 717, 711, -1, 702, 682, 722, 723, 549, 686, 719, 552, 702, 722, 723, 724, 693, 694, 498, 717, + 639, 640, 641, -1, 722, 723, 645, 717, 705, 706, 707, 708, 722, 723, 497, 498, 499, 500, 501, + 502, 717, 718, -1, -1, 663, 722, 723, 724, 720, 668, 722, 723, 724, 725, 585, -1, 587, 273, + 589, 702, 591, 273, 593, 682, 595, 596, 597, -1, 599, 600, 601, 273, 603, 604, 717, 694, 702, + 608, -1, 722, 723, 544, 711, 384, 385, -1, 705, 706, 707, 708, 719, 717, -1, 722, 723, 724, + 722, 723, 717, 718, 124, 125, 126, 722, 723, 724, -1, 498, 588, 678, 679, 591, 681, -1, 594, + 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, 272, 273, -1, 608, 609, -1, 611, 612, 613, 587, + 615, 589, -1, 591, -1, 593, -1, 595, 596, 597, -1, 599, 600, 601, 273, 603, 604, 701, 702, 359, + 608, 701, 702, 711, 639, 640, 641, -1, 701, 702, 645, 719, -1, 717, 722, 723, 724, 717, 722, + 723, 702, 717, 722, 723, 717, -1, 722, 723, 663, 722, 723, -1, 718, 668, -1, 717, 722, 669, + 724, 671, 722, 723, 588, -1, -1, 591, -1, 682, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, + 604, 694, 702, -1, 608, 609, 702, 611, 612, 613, -1, 615, 705, 706, 707, 708, -1, 717, 702, -1, + -1, 717, 722, 723, 717, 718, 722, 723, 702, 722, 723, 724, 498, 717, -1, 639, 640, 641, 722, + 723, -1, 645, 711, 717, -1, 649, 650, 38, 722, 723, 719, 42, 718, 722, 723, 724, 722, 273, 724, + 663, -1, 585, -1, 587, 668, 589, -1, 591, 702, 593, -1, 595, 596, 597, -1, 599, 600, 601, 702, + 603, 604, -1, 686, 717, 608, 689, 690, -1, 722, 723, 694, 702, 313, 717, -1, 702, 317, -1, 722, + 723, -1, 705, 706, 707, 708, -1, 717, 569, 570, 571, 717, 722, 723, 717, 718, 722, 723, -1, + 722, 723, 724, 717, 588, -1, -1, 591, 722, 723, 594, 595, 596, 337, 598, 599, 600, 601, -1, + 603, 604, -1, 38, -1, 608, 609, 42, 611, 612, 613, 585, 615, 587, -1, 589, 467, 591, -1, 593, + -1, 595, 596, 597, -1, 599, 600, 601, -1, 603, 604, -1, 498, -1, 608, 702, 639, 640, 641, 710, + 711, 720, 645, 722, 723, 724, 725, 702, 719, -1, 717, 722, 723, 724, -1, 722, 723, 718, -1, -1, + 663, 722, 717, 724, 702, 668, -1, 722, 723, 720, -1, 722, 723, 724, 725, 295, 296, 717, 702, + 717, 702, -1, 722, 723, 722, 723, -1, 690, 643, 644, 498, 694, 702, 717, -1, 717, 702, -1, 722, + 723, 722, 723, 705, 706, 707, 708, 38, 717, 325, -1, 42, 717, 722, 723, 717, 718, 722, 723, + 717, 722, 723, 724, 588, 722, 723, 591, 273, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, + 603, 604, -1, 273, -1, 608, 609, 718, 611, 612, 613, 722, 615, 724, 717, -1, 549, 550, 717, + 722, 723, -1, 273, 722, 723, 717, 300, 301, 717, -1, 722, 723, -1, 722, 723, -1, 639, 640, 641, + 717, 498, -1, 645, 588, 722, 723, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, + 604, 663, 161, -1, 608, 609, 668, 611, 612, 613, -1, 615, -1, 702, 711, 339, 340, 341, 342, -1, + 682, -1, 719, -1, 717, 722, 723, 724, 717, 722, 723, -1, 694, 722, 723, 639, 640, 641, -1, 498, + 37, 645, -1, 705, 706, 707, 708, 717, 702, 295, 296, -1, 722, 723, -1, 717, 718, 549, 550, 663, + 722, 723, 724, 717, 668, -1, -1, 717, 722, 723, 717, 588, 722, 723, 591, 722, 723, 594, 595, + 596, -1, 598, 599, 600, 601, -1, 603, 604, 549, 550, 694, 608, 609, -1, 611, 612, 613, -1, 615, + -1, -1, 705, 706, 707, 708, 701, 702, -1, 339, 340, 341, 342, -1, 717, 718, 669, -1, 671, 722, + 723, 724, 717, 639, 640, 641, 717, 722, 723, 645, 588, 722, 723, 591, -1, -1, 594, 595, 596, + -1, 598, 599, 600, 601, -1, 603, 604, 663, 700, -1, 608, 609, 668, 611, 612, 613, -1, 615, 643, + 644, 645, -1, 647, 234, 235, 717, 682, 705, -1, 717, 722, 723, -1, 702, 722, 723, -1, 498, 694, + 717, 718, 639, 640, 641, 722, 723, 724, 645, 717, 705, 706, 707, 708, 722, 723, 678, 679, 680, + 683, 684, -1, 717, 718, -1, -1, 663, 722, 723, 724, 325, 668, -1, 339, 340, 341, 342, 90, 711, + 92, -1, 94, -1, 96, 700, 682, 719, 717, -1, 722, 723, 724, 722, 723, 325, 108, 498, 694, 111, + 112, -1, 717, 330, 161, 549, 550, 722, 723, 705, 706, 707, 708, 678, 679, 273, 681, -1, -1, + 717, -1, 717, 718, 243, 722, 723, 722, 723, 724, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, + 598, 599, 600, 601, -1, 603, 604, -1, 37, -1, 608, 609, -1, 611, 612, 613, 705, 615, -1, 711, + 678, 679, 680, 451, 452, 453, -1, 719, 717, 718, 722, 723, 724, 722, 723, 724, 643, 644, 645, + -1, 647, 639, 640, 641, 187, 498, -1, 645, 588, -1, 648, 591, -1, 37, 594, 595, 596, -1, 598, + 599, 600, 601, -1, 603, 604, 663, -1, 674, 608, 609, 668, 611, 612, 613, 585, 615, 587, -1, + 589, -1, 591, -1, 593, -1, 595, 596, 597, 273, 599, 600, 601, -1, 603, 604, -1, -1, 694, 608, + 717, 639, 640, 641, -1, 722, 723, 645, -1, 705, 706, 707, 708, 720, 717, 722, 723, 724, 725, + 722, 723, 717, 718, -1, -1, 663, 722, 723, 724, -1, 668, -1, -1, 717, 498, -1, 717, 588, 722, + 723, 591, 722, 723, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, -1, -1, 694, 608, 609, + -1, 611, 612, 613, -1, 615, 711, 712, 705, 706, 707, 708, 701, 702, 719, -1, -1, 722, 723, 724, + 717, 718, -1, -1, -1, 722, 723, 724, 717, 639, 640, 641, 711, 722, 723, 645, -1, -1, 700, -1, + 719, -1, 702, 722, 723, 724, 498, -1, -1, 702, 718, -1, 330, 663, 722, 717, 724, 717, 668, -1, + 722, 723, 722, 723, 717, 588, -1, -1, 591, 722, 723, 594, 595, 596, -1, 598, 599, 600, 601, + 702, 603, 604, -1, -1, 694, 608, 609, -1, 611, 612, 613, -1, 615, -1, 717, 705, 706, 707, 708, + 722, 723, 140, 141, -1, -1, -1, -1, 717, 718, -1, 702, -1, 722, 723, 724, 700, 639, 640, 641, + 643, 644, 645, 645, 647, 481, 717, 649, 650, 651, -1, 722, 723, 717, 498, -1, 658, 588, 722, + 723, 591, 663, -1, 594, 595, 596, 668, 598, 599, 600, 601, 674, 603, 604, 700, -1, 705, 608, + -1, 610, 611, 612, 613, -1, 615, -1, -1, 702, 717, 718, -1, 717, 694, 722, 723, 724, 722, 723, + -1, -1, 705, 390, 717, 705, 706, 707, 708, 722, 723, 640, 641, -1, 717, 718, 645, 717, 718, + 722, 723, 724, 722, 723, 724, 711, 712, 702, -1, -1, 659, -1, -1, 719, 663, 717, 722, 723, 724, + 668, 722, 723, 717, 498, -1, -1, 588, 722, 723, 591, 186, 187, 594, 595, 596, -1, 598, 599, + 600, 601, 702, 603, 604, 186, 187, 694, 608, 609, -1, 611, 612, 613, -1, 615, -1, 717, 705, + 706, 707, 708, 722, 723, -1, -1, -1, -1, 717, 702, 717, 718, 702, 722, 723, 722, 723, 724, -1, + 639, 640, 641, -1, 708, 717, 645, 702, 717, 648, 722, 723, -1, 722, 723, 719, -1, 498, 722, + 723, 724, -1, 717, -1, 663, -1, -1, 722, 723, 668, 720, -1, 722, 723, 724, 725, 588, -1, -1, + 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, 702, 603, 604, -1, -1, 694, 608, 609, -1, + 611, 612, 613, -1, 615, -1, 717, 705, 706, 707, 708, 722, 723, -1, 557, -1, 702, 144, -1, 717, + 718, -1, -1, -1, 722, 723, 724, 717, 639, 640, 641, 717, 722, 723, 645, 37, 722, 723, 649, 650, + 651, 717, -1, -1, -1, 498, 722, 723, 588, 660, -1, 591, 663, -1, 594, 595, 596, 668, 598, 599, + 600, 601, -1, 603, 604, 702, 711, -1, 608, 609, -1, 611, 612, 613, 719, 615, 717, 722, 723, + 724, 717, 722, 723, 694, -1, 722, 723, 720, 702, 722, 723, 724, 725, -1, 705, 706, 707, 708, + -1, 639, 640, 641, -1, 717, 702, 645, 717, 718, 722, 723, 199, 722, 723, 724, 700, -1, 498, -1, + -1, 717, -1, 711, 712, 663, 722, 723, -1, -1, 668, 719, -1, 717, 722, 723, 724, 588, 722, 723, + 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, 702, 603, 604, -1, -1, 694, 608, 609, 700, + 611, 612, 613, -1, 615, -1, 717, 705, 706, 707, 708, 722, 723, -1, -1, -1, 717, -1, -1, 717, + 718, 722, 723, -1, 722, 723, 724, 711, 639, 640, 641, 708, 549, 550, 645, 719, -1, 648, 722, + 723, 724, -1, 719, 498, -1, 722, 723, 724, 588, -1, 661, 591, 663, -1, 594, 595, 596, 668, 598, + 599, 600, 601, -1, 603, 604, -1, 711, 712, 608, 609, -1, 611, 612, 613, 719, 615, 708, 722, + 723, 724, 117, 118, 612, 694, 614, 615, -1, 719, -1, 702, 722, 723, 724, -1, 705, 706, 707, + 708, 700, 639, 640, 641, -1, -1, 717, 645, 717, 718, 648, 722, 723, 722, 723, 724, 498, 717, + -1, 702, 711, 712, 722, 723, -1, 663, -1, -1, 719, -1, 668, 722, 723, 724, 717, 588, -1, -1, + 591, 722, 723, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, -1, -1, -1, 608, 694, -1, + 611, 612, 613, 702, 615, -1, -1, 549, 694, 705, 706, 707, 708, -1, -1, -1, 629, 630, 717, 705, + 702, 717, 718, 722, 723, -1, 722, 723, 724, 640, 641, 717, 718, 235, -1, 717, 722, 723, 724, + -1, 722, 723, -1, -1, 717, 498, -1, -1, 588, 722, 723, 591, 663, -1, 594, 595, 596, 668, 598, + 599, 600, 601, -1, 603, 604, -1, 702, -1, 608, 609, -1, 611, 612, 613, -1, 615, -1, 711, 712, + 619, 620, 717, -1, 694, -1, 719, 722, 723, 722, 723, 724, -1, -1, -1, 705, 706, 707, 708, 700, + 639, 640, 641, -1, 498, 717, 645, 717, 718, -1, 722, 723, 722, 723, 724, 720, 717, 722, 723, + 724, 725, 722, 723, -1, 663, -1, -1, -1, 720, 668, 722, 723, 724, 725, -1, -1, 588, -1, -1, + 591, -1, 61, 594, 595, 596, -1, 598, 599, 600, 601, 702, 603, 604, -1, -1, 694, 608, 609, -1, + 611, 612, 613, -1, 615, -1, 717, 705, 706, 707, 708, 722, 723, -1, -1, 701, 702, 717, -1, 717, + 718, -1, 722, 723, 722, 723, 724, -1, 639, 640, 641, 717, 498, -1, 645, 588, 722, 723, 591, -1, + -1, 594, 595, 596, -1, 598, 599, 600, 601, 702, 603, 604, 663, 702, -1, 608, 609, 668, 611, + 612, 613, 702, 615, -1, 717, -1, 273, -1, 717, 722, 723, -1, -1, 722, 723, -1, 717, 556, 557, + 117, 118, 722, 723, 694, 702, -1, 639, 640, 641, -1, 498, 67, 645, -1, 705, 706, 707, 708, -1, + 717, -1, 700, -1, -1, 722, 723, 717, 718, 711, -1, 663, 722, 723, 724, -1, 668, 719, -1, 717, + 722, 723, 724, 588, 722, 723, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, 702, 603, + 604, 549, 550, 694, 608, 609, -1, 611, 612, 613, -1, 615, 711, 717, 705, 706, 707, 708, 722, + 723, 719, 700, -1, 722, 723, 724, 717, 718, -1, -1, -1, 722, 723, 724, -1, 639, 640, 641, 717, + 498, -1, 645, 588, 722, 723, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, + 663, 711, -1, 608, 609, 668, 611, 612, 613, 719, 615, -1, 722, 723, 724, 497, 498, 499, 500, + 501, 502, 96, -1, -1, 700, 497, 498, 499, 500, 501, 502, 694, -1, -1, 639, 640, 641, 708, 498, + 301, 645, 717, 705, 706, 707, 708, 722, 723, 719, 117, 118, 722, 723, 724, 717, 718, -1, 273, + 663, 722, 723, 724, 544, 668, 720, -1, 722, 723, 724, 725, 588, -1, 544, 591, -1, -1, 594, 595, + 596, -1, 598, 599, 600, 601, 702, 603, 604, 549, 550, 694, 608, 609, -1, 611, 612, 613, -1, + 615, -1, 717, 705, 706, 707, 708, 722, 723, -1, -1, 701, 702, 717, -1, 717, 718, -1, 722, 723, + 722, 723, 724, -1, 639, 640, 641, 717, 498, -1, 645, 588, 722, 723, 591, -1, -1, 594, 595, 596, + 623, 598, 599, 600, 601, -1, 603, 604, 663, 385, 702, 608, 609, 668, 611, 612, 613, -1, 615, + -1, 643, 644, 645, 717, 647, 717, 273, -1, 722, 723, 722, 723, 717, 556, 557, 558, -1, 722, + 723, 694, -1, -1, 639, 640, 641, -1, 498, 711, 645, -1, 705, 706, 707, 708, -1, 719, -1, 700, + 722, 723, 724, 294, 717, 718, 711, 712, 663, 722, 723, 724, -1, 668, 719, -1, 717, 722, 723, + 724, 588, 722, 723, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, 702, 603, 604, -1, -1, + 694, 608, 609, -1, 611, 612, 613, -1, 615, -1, 717, 705, 706, 707, 708, 722, 723, -1, 700, -1, + 571, 717, -1, 717, 718, -1, 722, 723, 722, 723, 724, -1, 639, 640, 641, 717, 498, -1, 645, 588, + 722, 723, 591, -1, -1, 594, 595, 596, 700, 598, 599, 600, 601, 702, 603, 604, 663, 702, -1, + 608, 609, 668, 611, 612, 613, 717, 615, 273, 717, -1, 722, 723, 717, 722, 723, -1, -1, 722, + 723, 717, 700, -1, 117, 118, 722, 723, -1, 694, -1, -1, 639, 640, 641, -1, 498, -1, 645, 717, + 705, 706, 707, 708, 722, 723, -1, 117, 118, 702, -1, -1, 717, 718, -1, -1, 663, 722, 723, 724, + -1, 668, -1, -1, 717, 185, 186, 187, 588, 722, 723, 591, -1, -1, 594, 595, 596, -1, 598, 599, + 600, 601, 702, 603, 604, -1, -1, 694, 608, 609, -1, 611, 612, 613, -1, 615, -1, 717, 705, 706, + 707, 708, 722, 723, -1, -1, -1, 702, 717, -1, 717, 718, -1, 722, 723, 722, 723, 724, -1, 639, + 640, 641, 717, 498, -1, 645, 588, 722, 723, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, + -1, 603, 604, 663, 702, -1, 608, 609, 668, 611, 612, 613, 720, 615, 722, 723, 724, 725, 720, + 717, 722, 723, 724, 725, 722, 723, 720, 717, 722, 723, 724, 725, 722, 723, 694, -1, -1, 639, + 640, 641, -1, 498, -1, 645, -1, 705, 706, 707, 708, 720, 717, 722, 723, 724, 725, 722, 723, + 717, 718, 711, -1, 663, 722, 723, 724, -1, 668, 719, -1, 717, 722, 723, 724, 588, 722, 723, + 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, 702, 603, 604, -1, -1, 694, 608, 609, -1, + 611, 612, 613, -1, 615, -1, 717, 705, 706, 707, 708, 722, 723, -1, -1, -1, 702, -1, 719, 717, + 718, 722, 723, 724, 722, 723, 724, -1, 639, 640, 641, 717, 498, -1, 645, 588, 722, 723, 591, + -1, -1, 594, 595, 596, 700, 598, 599, 600, 601, 702, 603, 604, 663, 702, -1, 608, 609, 668, + 611, 612, 613, 717, 615, -1, 717, -1, 722, 723, 717, 722, 723, -1, 144, 722, 723, 699, 700, + 570, 571, 717, -1, -1, -1, 694, 722, 723, 639, 640, 641, -1, 498, -1, 645, 717, 705, 706, 707, + 708, 722, 723, -1, -1, -1, 702, -1, -1, 717, 718, 67, 68, 663, 722, 723, 724, 717, 668, -1, -1, + 717, 722, 723, 717, 588, 722, 723, 591, 722, 723, 594, 595, 596, -1, 598, 599, 600, 601, 702, + 603, 604, -1, -1, 694, 608, 609, -1, 611, 612, 613, -1, 615, -1, 717, 705, 706, 707, 708, 722, + 723, -1, -1, -1, 702, 717, -1, 717, 718, -1, 722, 723, 722, 723, 724, -1, 639, 640, 641, 717, + 498, -1, 645, 588, 722, 723, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, 702, 603, 604, + 663, 702, -1, 608, 609, 668, 611, 612, 613, 702, 615, -1, 717, -1, 466, 467, 717, 722, 723, -1, + 717, 722, 723, 630, 717, 722, 723, 717, -1, 722, 723, 694, 722, 723, 639, 640, 641, -1, 498, + -1, 645, -1, 705, 706, 707, 708, 498, 499, 500, 501, 502, 702, -1, -1, 717, 718, 711, -1, 663, + 722, 723, 724, -1, 668, 719, -1, 717, 722, 723, 724, 588, 722, 723, 591, -1, -1, 594, 595, 596, + -1, 598, 599, 600, 601, 702, 603, 604, 161, -1, 694, 608, 609, 544, 611, 612, 613, -1, 615, -1, + 717, 705, 706, 707, 708, 722, 723, 147, -1, -1, 702, 717, -1, 717, 718, -1, 722, 723, 722, 723, + 724, -1, 639, 640, 641, 717, 498, -1, 645, 588, 722, 723, 591, -1, -1, 594, 595, 596, -1, 598, + 599, 600, 601, 702, 603, 604, 663, -1, -1, 608, 609, 668, 611, 612, 613, -1, 615, 93, 717, 95, + -1, 97, -1, 722, 723, 161, -1, -1, 720, -1, 722, 723, 724, 725, -1, 111, 112, 694, -1, -1, 639, + 640, 641, -1, 498, 94, 645, 96, 705, 706, 707, 708, 717, 702, -1, 700, -1, 722, 723, 108, 717, + 718, 111, 112, 663, 722, 723, 724, 717, 668, 199, -1, 717, 722, 723, 717, 588, 722, 723, 591, + 722, 723, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, -1, 330, 694, 608, 609, 296, + 611, 612, 613, -1, 615, -1, -1, 705, 706, 707, 708, -1, 330, -1, 332, 350, 702, 498, -1, 717, + 718, 359, 117, 118, 722, 723, 724, 717, 639, 640, 641, 717, 722, 723, 645, 588, 722, 723, 591, + -1, 273, 594, 595, 596, -1, 598, 599, 600, 601, 702, 603, 604, 663, 330, -1, 608, 609, 668, + 611, 612, 613, 705, 615, -1, 717, 546, 547, 548, -1, 722, 723, -1, -1, 717, 718, 556, 557, -1, + 722, 723, 724, 562, -1, 694, 498, -1, 639, 640, 641, -1, -1, 572, 645, -1, 705, 706, 707, 708, + 579, 702, -1, -1, 273, 702, -1, -1, 717, 718, -1, -1, 663, 722, 723, 724, 717, 668, -1, 458, + 717, 722, 723, 462, -1, 722, 723, 702, -1, -1, 702, -1, 471, 612, 38, 614, 615, -1, 42, 478, + -1, -1, 717, 694, 483, 717, -1, 722, 723, -1, 722, 723, -1, -1, 705, 706, 707, 708, 497, 498, + 499, 500, 501, 502, -1, -1, 717, 718, -1, 508, -1, 722, 723, 724, -1, 717, 588, -1, -1, 591, + 722, 723, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, 702, -1, 700, 608, 609, 711, + 611, 612, 613, -1, 615, 702, 544, 719, -1, 717, 722, 723, 724, 717, 722, 723, 694, 702, 722, + 723, 717, 702, 700, -1, 498, 722, 723, 705, 639, 640, 641, -1, 717, 702, 645, 702, 717, 722, + 723, 717, 718, 722, 723, -1, 722, 723, 724, -1, 717, -1, 717, -1, 663, 722, 723, 722, 723, 668, + 497, 498, 499, 500, 501, 502, -1, -1, 32, -1, 34, -1, 585, 37, 587, -1, 589, -1, 591, -1, 593, + -1, 595, 596, 597, 694, 599, 600, 601, 698, 603, 604, 711, 712, -1, 608, 705, 706, 707, 708, + 719, -1, -1, 722, 723, 724, -1, 544, 717, 718, 643, 644, 717, 722, 723, 724, 588, 722, 723, + 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, 719, 603, 604, 722, 723, 724, 608, 609, -1, + 611, 612, 613, 585, 615, 587, -1, 589, -1, 591, -1, 593, 702, 595, 596, 597, 702, 599, 600, + 601, -1, 603, 604, -1, 498, -1, 608, 717, 639, 640, 641, 717, 722, 723, 645, -1, 722, 723, 649, + 650, 90, -1, 92, -1, 94, 717, 96, -1, -1, 718, 722, 723, 663, 722, 157, 724, 702, 668, 108, + 717, -1, 111, 112, -1, 722, 723, 718, 117, 118, -1, 722, 717, 724, 711, 712, -1, 722, 723, -1, + -1, 711, 719, 498, 694, 722, 723, 724, 700, 719, -1, -1, 722, 723, 724, 705, 706, 707, 708, + 141, 339, 340, 341, 342, -1, 717, -1, 717, 718, -1, 722, 723, 722, 723, 724, 588, -1, 273, 591, + -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, 702, -1, 702, 608, 609, 718, 611, + 612, 613, 722, 615, 724, 702, -1, -1, 717, -1, 717, 711, 717, 722, 723, 722, 723, 722, 723, + 719, 717, -1, 722, 723, 724, 722, 723, 639, 640, 641, -1, -1, 498, 645, 588, -1, 648, 591, -1, + -1, 594, 595, 596, 273, 598, 599, 600, 601, -1, 603, 604, 663, 702, -1, 608, 609, 668, 611, + 612, 613, 526, 615, 528, -1, -1, 329, 700, 717, 332, -1, 717, -1, 722, 723, 717, 722, 723, 573, + 574, 722, 723, -1, 694, 717, -1, 639, 640, 641, 722, 723, 498, 645, -1, 705, 706, 707, 708, + 717, -1, 701, 702, 700, 722, 723, -1, 717, 718, -1, -1, 663, 722, 723, 724, -1, 668, 717, 570, + 571, 717, 527, 722, 723, 588, 722, 723, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, + 603, 604, -1, 694, -1, 608, -1, -1, 611, 612, 613, -1, 615, 717, 705, 706, 707, 708, 722, 723, + 701, 702, -1, 701, 702, -1, 717, 718, 289, 290, 291, 722, 723, 724, 581, 582, 717, 640, 641, + 717, 498, 722, 723, 588, 722, 723, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, 700, + 603, 604, 663, 701, 702, 608, 609, 668, 611, 612, 613, 527, 615, 701, 702, -1, 717, -1, -1, + 717, -1, 722, 723, -1, 722, 723, 717, 701, 702, 717, -1, 722, 723, 694, 722, 723, 639, 640, + 641, -1, -1, -1, 645, 717, 705, 706, 707, 708, 722, 723, -1, -1, 701, 702, 700, -1, 717, 718, + -1, -1, 663, 722, 723, 724, -1, 668, -1, -1, 717, -1, 498, 717, 588, 722, 723, 591, 722, 723, + 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, -1, -1, 694, 608, 609, -1, 611, 612, 613, + -1, 615, 121, 122, 705, 706, 707, 708, 497, 498, 499, 500, 501, 502, 717, -1, 717, 718, -1, + 722, 723, 722, 723, 724, -1, 639, 640, 641, 585, -1, 587, 645, 589, -1, 591, -1, 593, 702, 595, + 596, 597, -1, 599, 600, 601, -1, 603, 604, 711, 663, -1, 608, 717, -1, 668, 544, 719, 722, 723, + 722, 723, 724, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, + -1, 694, -1, 608, 609, -1, 611, 612, 613, 330, 615, -1, 705, 706, 707, 708, -1, 497, 498, 499, + 500, 501, 502, 702, 717, 718, 702, 5, -1, 722, 723, 724, 498, 702, 639, 640, 641, -1, 717, -1, + 645, 717, -1, 722, 723, 702, 722, 723, 717, -1, 717, -1, 702, 722, 723, 722, 723, -1, 663, 612, + 717, 614, 615, 668, 544, 722, 723, 717, 711, 712, -1, -1, 722, 723, -1, -1, 719, 702, -1, 722, + 723, 724, 718, -1, 702, -1, 722, -1, 724, 694, 498, -1, 717, -1, 707, 708, 709, 722, 723, 717, + 705, 706, 707, 708, 722, 723, 719, -1, -1, 722, 723, 724, 717, 718, -1, 717, 314, 722, 723, + 724, 722, 723, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, + 702, -1, 694, 608, 609, -1, 611, 612, 613, -1, 615, 717, -1, 705, -1, 717, 722, 723, 717, -1, + 722, 723, 702, 722, 723, 717, 718, -1, -1, -1, 722, 723, 724, -1, 639, 640, 641, 717, 498, -1, + 645, 588, 722, 723, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, 663, -1, + -1, 608, 609, 668, 611, 612, 613, -1, 615, 327, 328, 329, 330, -1, 332, 333, 497, 498, 499, + 500, 501, 502, 717, -1, 702, 717, 330, 722, 723, 694, 722, 723, 639, 640, 641, -1, 498, -1, + 645, 717, 705, 706, 707, 708, 722, 723, 350, 351, -1, 702, -1, -1, 717, 718, 711, -1, 663, 722, + 723, 724, -1, 668, 719, 544, 717, 722, 723, 724, 588, 722, 723, 591, 246, 247, 594, 595, 596, + -1, 598, 599, 600, 601, 702, 603, 604, -1, -1, 694, 608, 609, -1, 611, 612, 613, -1, 615, 273, + 717, 705, 706, 707, 708, 722, 723, -1, -1, -1, 702, 295, 296, 717, 718, -1, -1, -1, 722, 723, + 724, -1, 639, 640, 641, 717, 498, -1, 645, 588, 722, 723, 591, 650, -1, 594, 595, 596, -1, 598, + 599, 600, 601, -1, 603, 604, 663, 702, -1, 608, 609, 668, 611, 612, 613, 702, 615, 328, 329, + 330, -1, 332, 717, 334, -1, 336, -1, 722, 723, 720, 717, 722, 723, 724, 725, 722, 723, 694, + 702, -1, 639, 640, 641, -1, 711, 712, 645, -1, 705, 706, 707, 708, 719, 717, -1, 722, 723, 724, + 722, 723, 717, 718, 711, 712, 663, 722, 723, 724, -1, 668, 719, 670, -1, 722, 723, 724, 588, + -1, 612, 591, 614, 615, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, -1, -1, 694, 608, + 609, 705, 611, 612, 613, -1, 615, -1, -1, 705, 706, 707, 708, 717, 718, -1, 186, 187, 722, 723, + 724, 717, 718, -1, -1, -1, 722, 723, 724, -1, 639, 640, 641, 585, -1, 587, 645, 589, 580, 591, + -1, 593, 498, 595, 596, 597, -1, 599, 600, 601, 702, 603, 604, -1, 663, -1, 608, 701, 702, 668, + 701, 702, -1, 694, -1, 717, 359, 701, 702, -1, 722, 723, -1, 717, 705, 325, 717, -1, 722, 723, + -1, 722, 723, 717, -1, 694, 717, 718, 722, 723, 182, 722, 723, 724, 186, 187, 705, 706, 707, + 708, -1, 643, 644, 645, -1, 647, 562, -1, 717, 718, -1, 498, -1, 722, 723, 724, 572, -1, 585, + 273, 587, 700, 589, 579, 591, 700, 593, -1, 595, 596, 597, 702, 599, 600, 601, 494, 603, 604, + 717, -1, 702, 608, 717, 722, 723, 700, 717, 722, 723, 83, 84, 722, 723, 701, 702, 717, 612, -1, + 614, 615, 722, 723, 717, -1, -1, -1, 718, 722, 723, 717, 722, -1, 724, -1, 722, 723, -1, 585, + -1, 587, 718, 589, 498, 591, 722, 593, 724, 595, 596, 597, -1, 599, 600, 601, -1, 603, 604, -1, + -1, -1, 608, 588, 570, 571, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, + -1, 702, -1, 608, 609, -1, 611, 612, 613, -1, 615, -1, 140, 141, 295, 296, 717, -1, -1, -1, + 694, 722, 723, 312, 90, 314, 92, -1, 94, 273, 96, 705, 702, 718, 639, 640, 641, 722, -1, 724, + 645, -1, 108, 717, 718, 111, 112, 717, 722, 723, 724, 498, 722, 723, 588, -1, -1, 591, 663, -1, + 594, 595, 596, 668, 598, 599, 600, 601, -1, 603, 604, -1, 711, -1, 608, 609, -1, 611, 612, 613, + 719, 615, -1, 722, 723, 724, 699, 700, 717, 694, 295, 296, 718, 722, 723, -1, 722, -1, 724, -1, + 705, 706, 707, 708, 717, 639, 640, 641, -1, 722, 723, 645, 717, 718, -1, 701, 702, 722, 723, + 724, -1, -1, 95, -1, 97, 702, 563, 564, -1, 663, -1, 717, 643, 644, 668, -1, 722, 723, 111, + 112, 717, 588, -1, -1, 591, 722, 723, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, -1, + -1, 694, 608, 609, 700, 611, 612, 613, -1, 615, -1, -1, 705, 706, 707, 708, 612, 702, 614, 615, + -1, 717, -1, -1, 717, 718, 722, 723, -1, 722, 723, 724, 717, 639, 640, 641, -1, 722, 723, 645, + 498, 499, 500, 501, 502, -1, -1, 717, 484, 485, 486, 487, 722, 723, 574, -1, -1, 663, -1, -1, + -1, 585, 668, 587, -1, 589, -1, 591, -1, 593, -1, 595, 596, 597, -1, 599, 600, 601, 705, 603, + 604, 711, 712, -1, 608, -1, 544, -1, 694, 719, 717, 718, 722, 723, 724, 722, 723, 724, 694, + 705, 706, 707, 708, 720, -1, 722, 723, 724, 725, 705, -1, 717, 718, -1, 702, -1, 722, 723, 724, + -1, -1, 717, 718, -1, -1, 498, 722, 723, 724, 717, 588, -1, -1, 591, 722, 723, 594, 595, 596, + -1, 598, 599, 600, 601, 222, 603, 604, -1, 702, -1, 608, 609, 273, 611, 612, 613, 359, 615, + 361, 702, 161, -1, -1, 717, 612, -1, 614, 615, 722, 723, -1, 325, -1, 720, 717, 722, 723, 724, + 725, 722, 723, 639, 640, 641, -1, -1, 717, 645, -1, -1, 648, 722, 723, -1, 718, -1, 498, 717, + 722, 702, 724, -1, 722, 723, -1, 663, -1, 643, 644, 645, 668, 647, -1, -1, 717, 588, -1, -1, + 591, 722, 723, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, 272, 273, -1, 608, 694, + 610, 611, 612, 613, -1, 615, 84, 117, 118, 694, 705, 706, 707, 708, 720, -1, 722, 723, 724, + 725, 705, -1, 717, 718, -1, -1, -1, 722, 723, 724, 640, 641, 717, 718, 711, 645, -1, 722, 723, + 724, -1, -1, 719, -1, 498, 722, 723, 724, -1, 588, -1, -1, 591, 663, -1, 594, 595, 596, 668, + 598, 599, 600, 601, -1, 603, 604, 702, -1, -1, 608, -1, 610, 611, 612, 613, -1, 615, 717, -1, + 702, -1, 717, 722, 723, 694, -1, 722, 723, 612, -1, 614, 615, -1, -1, 717, 705, 706, 707, 708, + 722, 723, 640, 641, -1, -1, 702, 645, 717, 718, -1, 711, -1, 722, 723, 724, 498, 700, -1, 719, + -1, 717, 722, 723, 724, 663, 722, 723, 556, 557, 668, -1, 272, 273, 717, 588, 117, 118, 591, + 722, 723, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, -1, 117, 118, 608, 694, 610, + 611, 612, 613, -1, 615, -1, -1, -1, -1, 705, 706, 707, 708, 694, -1, 720, 700, 722, 723, 724, + 725, 717, 718, -1, 705, -1, 722, 723, 724, 640, 641, -1, 161, 717, 645, -1, 717, 718, 722, 723, + -1, 722, 723, 724, -1, 498, 643, 644, 588, 117, 118, 591, 663, -1, 594, 595, 596, 668, 598, + 599, 600, 601, -1, 603, 604, -1, -1, -1, 608, 609, 702, 611, 612, 613, 273, 615, -1, 497, 498, + 499, 500, 501, 502, 694, -1, 717, -1, -1, -1, -1, 722, 723, 466, 467, 705, 706, 707, 708, 717, + 639, 640, 641, -1, 722, 723, 645, 717, 718, 648, -1, 700, 722, 723, 724, 700, -1, 498, -1, -1, + 702, 717, 661, -1, 663, 544, 722, 723, 717, 668, 117, 118, 717, 722, 723, 717, 588, 722, 723, + 591, 722, 723, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, -1, -1, 694, 608, 609, 705, + 611, 612, 613, -1, 615, -1, -1, 705, 706, 707, 708, 717, 718, -1, -1, -1, 722, 723, 724, 717, + 718, 702, -1, -1, 722, 723, 724, -1, 639, 640, 641, -1, -1, 717, 645, -1, 717, 648, 722, 723, + -1, 722, 723, -1, 717, 498, -1, -1, 588, 722, 723, 591, 663, -1, 594, 595, 596, 668, 598, 599, + 600, 601, -1, 603, 604, -1, -1, -1, 608, 609, 702, 611, 612, 613, -1, 615, -1, 497, 498, 499, + 500, 501, 502, 694, -1, 717, -1, 717, 701, 702, 722, 723, 722, 723, 705, 706, 707, 708, -1, + 639, 640, 641, -1, -1, 717, 645, 717, 718, 648, 722, 723, 722, 723, 724, -1, -1, 498, -1, -1, + 702, -1, 661, -1, 663, 544, 717, -1, -1, 668, -1, 722, 723, -1, -1, 717, 588, -1, -1, 591, 722, + 723, 594, 595, 596, -1, 598, 599, 600, 601, 702, 603, 604, -1, -1, 694, 608, 609, -1, 611, 612, + 613, -1, 615, -1, 717, 705, 706, 707, 708, 722, 723, 538, 539, 540, 541, 542, -1, 717, 718, + 702, 701, 702, 722, 723, 724, 717, 639, 640, 641, -1, 722, 723, 645, 359, 717, 648, 717, 563, + -1, 722, 723, 722, 723, 498, -1, -1, 588, -1, 661, 591, 663, -1, 594, 595, 596, 668, 598, 599, + 600, 601, -1, 603, 604, -1, -1, 705, 608, 609, -1, 611, 612, 613, -1, 615, -1, -1, 325, 717, + 718, -1, -1, 694, 722, 723, 724, -1, 612, -1, 614, 615, 570, 571, 705, 706, 707, 708, -1, 639, + 640, 641, -1, 717, -1, 645, 717, 718, 722, 723, 702, 722, 723, 724, -1, -1, 498, 497, 498, 499, + 500, 501, 502, 663, -1, 717, -1, -1, 668, -1, 722, 723, -1, -1, 717, 588, -1, -1, 591, 722, + 723, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, -1, -1, 694, 608, 609, -1, 611, 612, + 613, -1, 615, -1, 544, 705, 706, 707, 708, 720, 694, 722, 723, 724, 725, 702, -1, 717, 718, + 117, 118, 705, 722, 723, 724, -1, 639, 640, 641, -1, 717, -1, 645, 717, 718, 722, 723, -1, 722, + 723, 724, 498, 717, -1, -1, -1, 588, 722, 723, 591, 663, -1, 594, 595, 596, 668, 598, 599, 600, + 601, -1, 603, 604, -1, -1, 5, 608, -1, 610, 611, 612, 613, -1, 615, 117, 118, 479, 480, 481, + 717, -1, 694, -1, -1, 722, 723, 497, 498, 499, 500, 501, 502, 705, 706, 707, 708, -1, 702, 640, + 641, 5, -1, 717, 645, 717, 718, -1, 722, 723, 722, 723, 724, 717, -1, -1, 702, -1, 722, 723, + 717, -1, 663, 295, 296, 722, 723, 668, 573, 574, 582, 717, 588, -1, 544, 591, 722, 723, 594, + 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, 5, -1, -1, 608, 694, 610, 611, 612, 613, -1, + 615, 643, 644, -1, -1, 705, 706, 707, 708, 479, 480, 481, -1, 581, 582, 717, -1, 717, 718, -1, + 722, 723, 722, 723, 724, 640, 641, -1, -1, 702, 645, 498, 499, 500, 501, 502, 90, -1, 92, -1, + 94, 702, 96, -1, 717, 122, -1, -1, 663, 722, 723, 702, -1, 668, 108, -1, 717, 111, 112, -1, -1, + 722, 723, 117, 118, 34, 717, 702, 37, -1, -1, 722, 723, 581, 582, 717, -1, 544, -1, 694, 722, + 723, 717, -1, 702, -1, -1, 722, 723, 498, 705, 706, 707, 708, -1, 717, -1, -1, -1, 717, 722, + 723, 717, 718, 722, 723, 717, 722, 723, 724, 325, 722, 723, 717, -1, -1, 85, -1, 722, 723, -1, + 588, -1, -1, 591, -1, 325, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, -1, -1, 705, + 608, 609, -1, 611, 612, 613, -1, 615, 717, -1, -1, 717, 718, 722, 723, 717, 722, 723, 724, 34, + 722, 723, 37, 497, 498, 499, 500, 501, 502, -1, -1, 639, 640, 641, 273, 498, -1, 645, 588, -1, + 648, 591, -1, -1, 594, 595, 596, 157, 598, 599, 600, 601, -1, 603, 604, 663, -1, -1, 608, 609, + 668, 611, 612, 613, 705, 615, -1, -1, 717, 273, 544, 86, 87, 722, 723, -1, 717, 718, -1, -1, + -1, 722, 723, 724, -1, -1, 694, -1, -1, 639, 640, 641, -1, 498, -1, 645, 314, 705, 706, 707, + 708, 90, -1, 92, -1, 94, 717, 96, -1, 717, 718, 722, 723, 663, 722, 723, 724, 273, 668, 108, + -1, -1, 111, 112, -1, 588, 34, -1, 591, 37, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, + 604, -1, 325, 694, 608, 609, 705, 611, 612, 613, -1, 615, -1, -1, 705, 706, 707, 708, 717, 718, + -1, -1, -1, 722, 723, 724, 717, 718, -1, -1, -1, 722, 723, 724, -1, 639, 640, 641, 87, 498, -1, + 645, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, 663, -1, + -1, 608, 609, 668, 611, 612, 613, 585, 615, 587, -1, 589, -1, 591, -1, 593, -1, 595, 596, 597, + -1, 599, 600, 601, -1, 603, 604, -1, -1, 694, 608, -1, 639, 640, 641, -1, -1, 711, 645, -1, + 705, 706, 707, 708, -1, 719, -1, -1, 722, 723, 724, 229, 717, 718, -1, -1, 663, 722, 723, 724, + -1, 668, -1, -1, -1, -1, -1, -1, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, + 601, -1, 603, 604, -1, -1, 694, 608, 609, -1, 611, 612, 613, -1, 615, -1, -1, 705, 706, 707, + 708, -1, 498, 499, 500, 501, 502, -1, -1, 717, 718, 702, -1, -1, 722, 723, 724, 717, 639, 640, + 641, -1, 722, 723, 645, -1, 717, 648, -1, -1, -1, 722, 723, -1, -1, 498, -1, -1, -1, 718, -1, + -1, 663, 722, -1, 724, 705, 668, 544, -1, -1, 547, 548, -1, -1, -1, -1, -1, 717, 718, 556, 557, + 705, 722, 723, 724, 562, -1, -1, -1, -1, -1, 717, 694, 717, 718, 572, 722, 723, 722, 723, 724, + -1, 579, 705, 706, 707, 708, -1, -1, -1, 612, -1, 614, 615, -1, 717, 718, -1, -1, -1, 722, 723, + 724, -1, -1, -1, -1, 325, -1, -1, -1, -1, -1, -1, -1, 612, -1, 614, 615, -1, 228, 229, -1, -1, + 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, -1, -1, -1, 608, + 609, -1, 611, 612, 613, 585, 615, 587, -1, 589, -1, 591, -1, 593, -1, 595, 596, 597, -1, 599, + 600, 601, -1, 603, 604, -1, 498, 694, 608, 717, 639, 640, 641, -1, 722, 723, 645, -1, 705, 228, + 229, -1, -1, -1, -1, -1, -1, 519, -1, -1, 717, 718, 694, -1, 663, 722, 723, 724, 700, 668, -1, + -1, -1, 705, 717, -1, -1, -1, -1, 722, 723, -1, 332, 717, 705, 717, 718, -1, 722, 723, 722, + 723, 724, -1, 498, 694, 717, 718, -1, -1, -1, 722, 723, 724, -1, -1, 705, 706, 707, 708, -1, + -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, 525, 717, 722, 723, 724, 588, 722, 723, 591, -1, -1, + 594, 595, 596, -1, 598, 599, 600, 601, 332, 603, 604, -1, -1, -1, 608, 609, 718, 611, 612, 613, + 722, 615, 724, -1, -1, -1, 707, 708, 709, -1, -1, -1, -1, -1, 498, -1, -1, -1, 719, -1, -1, + 722, 723, 724, -1, 639, 640, 641, -1, -1, -1, 645, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, + 598, 599, 600, 601, -1, 603, 604, 663, -1, -1, 608, 609, 668, 611, 612, 613, -1, 615, -1, -1, + 546, 547, 548, 498, -1, -1, -1, -1, -1, -1, 556, 557, -1, 328, 329, 330, 562, 332, 694, 334, + -1, 639, 640, 641, -1, -1, 572, 645, -1, 705, 706, 707, 708, 579, -1, -1, -1, -1, -1, -1, 708, + 717, 718, -1, -1, 663, 722, 723, 724, -1, 668, 719, 547, 548, 722, 723, 724, -1, -1, -1, -1, + 556, 557, -1, -1, -1, 612, 562, 614, 615, -1, -1, -1, -1, -1, 717, 694, 572, 707, 708, 722, + 723, -1, -1, 579, -1, -1, 705, 706, 707, 708, 720, -1, 722, 723, 724, 725, -1, -1, 717, 718, + -1, -1, -1, 722, 723, 724, 328, 329, 330, -1, 332, -1, 334, -1, 336, -1, 612, -1, 614, 615, + 585, -1, 587, -1, 589, -1, 591, -1, 593, -1, 595, 596, 597, -1, 599, 600, 601, 705, 603, 604, + -1, -1, -1, 608, -1, -1, 708, 694, -1, 717, 718, -1, -1, 700, 722, 723, 724, 719, 705, -1, 722, + 723, 724, -1, 328, 329, 330, -1, 332, -1, 717, 718, -1, -1, -1, 722, 723, 724, 585, -1, 587, + -1, 589, -1, 591, -1, 593, -1, 595, 596, 597, -1, 599, 600, 601, -1, 603, 604, 694, -1, -1, + 608, -1, -1, 700, -1, -1, -1, -1, 705, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, + -1, -1, -1, 722, 723, 724, 585, -1, 587, -1, 589, -1, 591, -1, 593, -1, 595, 596, 597, 498, + 599, 600, 601, -1, 603, 604, 707, 708, -1, 608, 718, -1, -1, -1, 722, -1, 724, -1, -1, 720, -1, + 722, 723, 724, 725, -1, 585, -1, 587, -1, 589, -1, 591, -1, 593, -1, 595, 596, 597, -1, 599, + 600, 601, -1, 603, 604, 585, -1, 587, 608, 589, -1, 591, -1, 593, -1, 595, 596, 597, -1, 599, + 600, 601, -1, 603, 604, -1, -1, 718, 608, 707, 708, 722, -1, 724, -1, -1, -1, -1, -1, -1, -1, + -1, 720, -1, 722, 723, 724, 725, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, + 601, -1, 603, 604, -1, -1, -1, 608, 609, -1, 611, 612, 613, -1, 615, 157, -1, 718, 585, -1, + 587, 722, 589, 724, 591, -1, 593, -1, 595, 596, 597, -1, 599, 600, 601, 498, 603, 604, 639, + 640, 641, 608, -1, -1, 645, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 718, -1, 331, 332, + 722, 663, 724, -1, -1, -1, 668, -1, -1, -1, -1, -1, -1, -1, -1, 585, 718, 587, -1, 589, 722, + 591, 724, 593, -1, 595, 596, 597, 314, 599, 600, 601, 694, 603, 604, 330, -1, -1, 608, -1, -1, + 244, -1, 705, 706, 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, -1, 722, 723, + 724, -1, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, -1, -1, + -1, 608, 609, -1, 611, 612, 613, 718, 615, -1, -1, 722, 585, 724, 587, -1, 589, -1, 591, -1, + 593, -1, 595, 596, 597, -1, 599, 600, 601, -1, 603, 604, 639, 640, 641, 608, -1, -1, 645, 585, + -1, 587, -1, 589, -1, 591, 332, 593, -1, 595, 596, 597, -1, 599, 600, 601, 663, 603, 604, -1, + -1, 668, 608, -1, -1, 718, 585, -1, 587, 722, 589, 724, 591, -1, 593, -1, 595, 596, 597, -1, + 599, 600, 601, -1, 603, 604, -1, 694, -1, 608, -1, -1, -1, -1, -1, -1, -1, -1, 705, 706, 707, + 708, -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, -1, 722, 723, 724, -1, 585, 498, 587, + -1, 589, -1, 591, -1, 593, -1, 595, 596, 597, -1, 599, 600, 601, -1, 603, 604, -1, -1, -1, 608, + -1, 587, 718, 589, -1, 591, 722, 593, 724, 595, 596, 597, -1, 599, 600, 601, -1, 603, 604, -1, + -1, -1, 608, -1, -1, -1, 585, -1, 587, 718, 589, -1, 591, 722, 593, 724, 595, 596, 597, -1, + 599, 600, 601, -1, 603, 604, -1, -1, -1, 608, -1, -1, -1, -1, -1, -1, 718, -1, -1, -1, 722, -1, + 724, -1, -1, -1, -1, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, + 604, -1, -1, -1, 608, 609, -1, 611, 612, 613, -1, 615, -1, -1, -1, -1, -1, 612, -1, 614, 615, + -1, -1, -1, -1, -1, 718, -1, -1, 312, 722, 314, 724, -1, -1, 639, 640, 641, -1, -1, -1, 645, + -1, -1, -1, -1, 650, -1, -1, 718, -1, 498, -1, 722, -1, 724, -1, -1, -1, 663, -1, -1, -1, -1, + 668, -1, -1, -1, -1, -1, -1, -1, -1, 585, -1, 587, 718, 589, -1, 591, 722, 593, 724, 595, 596, + 597, -1, 599, 600, 601, 694, 603, 604, -1, -1, -1, 608, -1, -1, 694, -1, 705, 706, 707, 708, + -1, -1, -1, -1, -1, 705, -1, -1, 717, 718, -1, -1, -1, 722, 723, 724, -1, 717, 718, -1, -1, -1, + 722, 723, 724, -1, 643, 644, -1, 646, -1, -1, -1, 498, -1, -1, 588, -1, -1, 591, -1, -1, 594, + 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, -1, -1, -1, 608, 609, -1, 611, 612, 613, 585, + 615, 587, -1, 589, -1, 591, -1, 593, -1, 595, 596, 597, -1, 599, 600, 601, -1, 603, 604, -1, + -1, 312, 608, 314, 639, 640, 641, 707, 708, 709, 645, -1, -1, -1, -1, 131, 132, -1, 718, -1, + -1, -1, 722, -1, 724, 725, 132, -1, 663, 314, -1, 316, -1, 668, -1, -1, -1, -1, -1, -1, 588, + -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, -1, -1, 694, 608, + 609, -1, 611, 612, 613, -1, 615, -1, -1, 705, 706, 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, + 717, 718, -1, -1, -1, 722, 723, 724, 498, 639, 640, 641, -1, -1, -1, 645, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 718, -1, -1, 663, 722, 585, 724, 587, 668, 589, -1, 591, + -1, 593, -1, 595, 596, 597, -1, 599, 600, 601, -1, 603, 604, -1, -1, -1, 608, 612, -1, 614, + 615, -1, 694, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 705, 706, 707, 708, -1, -1, -1, -1, -1, + -1, -1, -1, 717, 718, -1, -1, -1, 722, 723, 724, 498, -1, -1, 588, -1, -1, 591, -1, -1, 594, + 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, -1, -1, -1, 608, 609, -1, 611, 612, 613, -1, + 615, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 90, -1, 92, 694, 94, -1, 96, -1, -1, -1, + -1, 639, 640, 641, 705, 498, -1, 645, 108, -1, -1, 111, 112, -1, -1, -1, 717, 718, -1, -1, 718, + 722, 723, 724, 722, 663, 724, -1, -1, -1, 668, -1, -1, -1, -1, -1, -1, 588, -1, -1, 591, -1, + -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, -1, -1, 694, 608, 609, -1, 611, 612, + 613, -1, 615, -1, -1, 705, 706, 707, 708, 612, -1, 614, 615, -1, -1, -1, -1, 717, 718, -1, -1, + -1, 722, 723, 724, -1, 639, 640, 641, -1, -1, -1, 645, 588, -1, 612, 591, 614, 615, 594, 595, + 596, -1, 598, 599, 600, 601, -1, 603, 604, 663, -1, -1, 608, 609, 668, 611, 612, 613, 585, 615, + 587, -1, 589, -1, 591, -1, 593, -1, 595, 596, 597, -1, 599, 600, 601, -1, 603, 604, -1, 498, + 694, 608, -1, 639, 640, 641, -1, -1, -1, 645, 694, 705, 706, 707, 708, -1, -1, -1, -1, -1, -1, + 705, -1, 717, 718, -1, -1, 663, 722, 723, 724, -1, 668, 717, 718, -1, 694, -1, 722, 723, 724, + -1, -1, -1, -1, -1, 682, 705, -1, -1, -1, -1, -1, -1, -1, -1, -1, 498, 694, 717, 718, -1, -1, + -1, 722, 723, 724, -1, -1, 705, 706, 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, + -1, -1, 722, 723, 724, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, + 603, 604, -1, -1, -1, 608, 609, 718, 611, 612, 613, 722, 615, 724, -1, -1, -1, -1, -1, 612, -1, + 614, 615, -1, -1, -1, -1, -1, -1, 612, -1, 614, 615, -1, -1, -1, 639, 640, 641, -1, -1, -1, + 645, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, 663, -1, + -1, 608, 609, 668, 611, 612, 613, 585, 615, 587, -1, 589, -1, 591, -1, 593, -1, 595, 596, 597, + -1, 599, 600, 601, -1, 603, 604, -1, 498, 694, 608, -1, 639, 640, 641, -1, -1, -1, 645, 694, + 705, 706, 707, 708, -1, -1, -1, -1, -1, 694, 705, -1, 717, 718, -1, -1, 663, 722, 723, 724, + 705, 668, 717, 718, -1, -1, -1, 722, 723, 724, -1, -1, 717, 718, -1, 682, -1, 722, 723, 724, + -1, -1, -1, -1, -1, -1, 498, 694, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 705, 706, 707, 708, + -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, 314, -1, 722, 723, 724, 588, -1, -1, 591, -1, -1, + 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, -1, -1, -1, 608, 609, 718, 611, 612, 613, + 722, 615, 724, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 639, 640, 641, -1, -1, 498, 645, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, + 600, 601, -1, 603, 604, 663, -1, -1, 608, 609, 668, 611, 612, 613, -1, 615, -1, -1, -1, -1, -1, + -1, -1, -1, 682, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 694, -1, -1, 639, 640, 641, -1, + -1, 498, 645, -1, 705, 706, 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, 663, + 722, 723, 724, -1, 668, -1, -1, -1, -1, -1, -1, -1, 588, -1, -1, 591, -1, -1, 594, 595, 596, + -1, 598, 599, 600, 601, 690, 603, 604, -1, 694, -1, 608, 609, -1, 611, 612, 613, -1, 615, -1, + 705, 706, 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, 717, -1, 722, 723, 724, 722, + 723, 639, 640, 641, -1, 498, -1, 645, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, + 600, 601, -1, 603, 604, 663, -1, -1, 608, 609, 668, 611, 612, 613, -1, 615, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 694, -1, -1, 639, 640, 641, -1, + 498, -1, 645, -1, 705, 706, 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, 663, + 722, 723, 724, -1, 668, -1, -1, -1, -1, -1, -1, 588, -1, 612, 591, 614, 615, 594, 595, 596, -1, + 598, 599, 600, 601, -1, 603, 604, -1, -1, 694, 608, 609, -1, 611, 612, 613, -1, 615, -1, -1, + 705, 706, 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, -1, 722, 723, 724, -1, + 639, 640, 641, -1, 498, -1, 645, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, + 601, -1, 603, 604, 663, -1, -1, 608, 609, 668, 611, 612, 613, 694, 615, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 705, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 694, 717, 718, 639, 640, 641, 722, + 723, 724, 645, -1, 705, 706, 707, 708, -1, -1, -1, -1, -1, 498, -1, -1, 717, 718, -1, -1, 663, + 722, 723, 724, -1, 668, -1, -1, -1, -1, -1, -1, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, + 598, 599, 600, 601, -1, 603, 604, -1, -1, 694, 608, 609, -1, 611, 612, 613, -1, 615, -1, -1, + 705, 706, 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, -1, 722, 723, 724, -1, + 639, 640, 641, -1, -1, -1, 645, -1, -1, 648, -1, -1, -1, -1, -1, 498, -1, -1, -1, -1, 588, -1, + -1, 591, 663, -1, 594, 595, 596, 668, 598, 599, 600, 601, -1, 603, 604, -1, -1, -1, 608, -1, + 610, 611, 612, 613, -1, 615, -1, -1, -1, -1, -1, -1, -1, 694, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 705, 706, 707, 708, -1, -1, 640, 641, -1, -1, -1, 645, 717, 718, -1, -1, -1, 722, 723, + 724, 498, -1, -1, -1, -1, -1, -1, -1, -1, 663, -1, -1, -1, -1, 668, -1, -1, -1, -1, 588, -1, + -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, -1, -1, -1, 608, 694, + 610, 611, 612, 613, -1, 615, -1, -1, -1, -1, 705, 706, 707, 708, -1, -1, -1, -1, -1, -1, -1, + -1, 717, 718, -1, -1, -1, 722, 723, 724, 640, 641, -1, -1, -1, 645, -1, -1, -1, -1, -1, -1, -1, + -1, 498, -1, -1, -1, -1, 588, -1, -1, 591, 663, -1, 594, 595, 596, 668, 598, 599, 600, 601, -1, + 603, 604, -1, -1, -1, 608, -1, 610, 611, 612, 613, -1, 615, -1, -1, -1, -1, -1, -1, -1, 694, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 705, 706, 707, 708, -1, -1, 640, 641, -1, -1, -1, 645, + 717, 718, -1, -1, -1, 722, 723, 724, 498, -1, -1, -1, -1, -1, -1, -1, -1, 663, -1, -1, -1, -1, + 668, -1, -1, -1, -1, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, + 604, -1, -1, -1, 608, 694, 610, 611, 612, 613, -1, 615, -1, -1, -1, -1, 705, 706, 707, 708, -1, + -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, -1, 722, 723, 724, 640, 641, -1, -1, -1, 645, -1, + -1, -1, -1, -1, -1, -1, -1, 498, -1, -1, -1, -1, 588, -1, -1, 591, 663, -1, 594, 595, 596, 668, + 598, 599, 600, 601, -1, 603, 604, -1, -1, -1, 608, -1, 610, 611, 612, 613, -1, 615, -1, -1, -1, + -1, -1, -1, -1, 694, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 705, 706, 707, 708, -1, -1, 640, + 641, -1, -1, -1, 645, 717, 718, -1, -1, -1, 722, 723, 724, 498, -1, -1, -1, -1, -1, -1, -1, -1, + 663, -1, -1, -1, -1, 668, -1, -1, -1, -1, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, + 599, 600, 601, -1, 603, 604, -1, -1, -1, 608, 694, 610, 611, 612, 613, -1, 615, -1, -1, -1, -1, + 705, 706, 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, -1, 722, 723, 724, 640, + 641, -1, -1, -1, 645, -1, -1, -1, -1, -1, -1, -1, -1, 498, -1, -1, -1, -1, 588, -1, -1, 591, + 663, -1, 594, 595, 596, 668, 598, 599, 600, 601, -1, 603, 604, -1, -1, -1, 608, -1, 610, 611, + 612, 613, -1, 615, -1, -1, -1, -1, -1, -1, -1, 694, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 705, 706, 707, 708, -1, -1, 640, 641, -1, -1, -1, 645, 717, 718, -1, -1, -1, 722, 723, 724, + 498, -1, -1, -1, -1, -1, -1, -1, -1, 663, -1, -1, -1, -1, 668, -1, -1, -1, -1, 588, -1, -1, + 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, -1, -1, -1, 608, 694, 610, + 611, 612, 613, -1, 615, -1, -1, -1, -1, 705, 706, 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, + 717, 718, -1, -1, -1, 722, 723, 724, 640, 641, -1, -1, -1, 645, -1, -1, -1, -1, -1, -1, -1, -1, + 498, -1, -1, -1, -1, 588, -1, -1, 591, 663, -1, 594, 595, 596, 668, 598, 599, 600, 601, -1, + 603, 604, -1, -1, -1, 608, -1, 610, 611, 612, 613, -1, 615, -1, -1, -1, -1, -1, -1, -1, 694, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 705, 706, 707, 708, -1, -1, 640, 641, -1, -1, -1, 645, + 717, 718, -1, -1, -1, 722, 723, 724, 498, -1, -1, -1, -1, -1, -1, -1, -1, 663, -1, -1, -1, -1, + 668, -1, -1, -1, -1, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, + 604, -1, -1, -1, 608, 694, 610, 611, 612, 613, -1, 615, -1, -1, -1, -1, 705, 706, 707, 708, -1, + -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, -1, 722, 723, 724, 640, 641, -1, -1, -1, 645, -1, + -1, -1, -1, -1, -1, -1, -1, 498, -1, -1, -1, -1, 588, -1, -1, 591, 663, -1, 594, 595, 596, 668, + 598, 599, 600, 601, -1, 603, 604, -1, -1, -1, 608, -1, 610, 611, 612, 613, -1, 615, -1, -1, -1, + -1, -1, -1, -1, 694, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 705, 706, 707, 708, -1, -1, 640, + 641, -1, -1, -1, 645, 717, 718, -1, -1, -1, 722, 723, 724, 498, -1, -1, -1, -1, -1, -1, -1, -1, + 663, -1, -1, -1, -1, 668, -1, -1, -1, -1, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, + 599, 600, 601, -1, 603, 604, -1, -1, -1, 608, 694, 610, 611, 612, 613, -1, 615, -1, -1, -1, -1, + 705, 706, 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, -1, 722, 723, 724, 640, + 641, -1, -1, -1, 645, -1, -1, -1, -1, -1, -1, -1, -1, 498, -1, -1, -1, -1, 588, -1, -1, 591, + 663, -1, 594, 595, 596, 668, 598, 599, 600, 601, -1, 603, 604, -1, -1, -1, 608, -1, 610, 611, + 612, 613, -1, 615, -1, -1, -1, -1, -1, -1, -1, 694, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 705, 706, 707, 708, -1, -1, 640, 641, -1, -1, -1, 645, 717, 718, -1, -1, -1, 722, 723, 724, + 498, -1, -1, -1, -1, -1, -1, -1, -1, 663, -1, -1, -1, -1, 668, -1, -1, -1, -1, 588, -1, -1, + 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, -1, -1, -1, 608, 694, 610, + 611, 612, 613, -1, 615, -1, -1, -1, -1, 705, 706, 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, + 717, 718, -1, -1, -1, 722, 723, 724, 640, 641, -1, -1, -1, 645, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 498, -1, -1, 588, -1, -1, 591, 663, -1, 594, 595, 596, 668, 598, 599, 600, 601, -1, + 603, 604, -1, -1, -1, 608, 609, -1, 611, 612, 613, -1, 615, -1, -1, -1, -1, -1, -1, -1, 694, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 705, 706, 707, 708, -1, 639, 640, 641, -1, 498, -1, + 645, 717, 718, -1, -1, -1, 722, 723, 724, -1, -1, -1, -1, -1, -1, -1, -1, -1, 663, -1, -1, -1, + -1, 668, -1, -1, -1, -1, -1, -1, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, + 601, -1, 603, 604, -1, -1, 694, 608, 609, -1, 611, 612, 613, -1, 615, -1, -1, 705, 706, 707, + 708, -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, -1, 722, 723, 724, -1, 639, 640, 641, + -1, 498, -1, 645, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, + 604, 663, -1, -1, 608, 609, 668, 611, 612, 613, -1, 615, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 694, -1, -1, 639, 640, 641, -1, 498, -1, 645, -1, + 705, 706, 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, 663, 722, 723, 724, -1, + 668, -1, -1, -1, -1, -1, -1, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, + -1, 603, 604, -1, -1, 694, 608, 609, -1, 611, 612, 613, -1, 615, -1, -1, 705, 706, 707, 708, + -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, -1, 722, 723, 724, -1, 639, 640, 641, -1, -1, + -1, 645, 588, -1, 648, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, 663, + -1, -1, 608, -1, 668, 611, 612, 613, -1, 615, -1, -1, -1, -1, -1, -1, -1, -1, -1, 625, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 498, 694, -1, -1, -1, 640, 641, -1, -1, -1, -1, -1, 705, 706, 707, + 708, -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, 663, 722, 723, 724, -1, 668, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 498, 694, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 705, 706, 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, + 717, 718, -1, -1, -1, 722, 723, 724, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, + 600, 601, -1, 603, 604, -1, -1, -1, 608, 609, -1, 611, 612, 613, -1, 615, -1, -1, -1, -1, 620, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 639, 640, 641, -1, 498, + -1, 645, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, 663, + -1, -1, 608, 609, 668, 611, 612, 613, -1, 615, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 694, -1, -1, 639, 640, 641, -1, 498, -1, 645, -1, 705, 706, + 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, 663, 722, 723, 724, -1, 668, -1, + -1, -1, -1, -1, -1, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, + 604, -1, -1, 694, 608, 609, -1, 611, 612, 613, -1, 615, -1, -1, 705, 706, 707, 708, -1, -1, -1, + -1, -1, -1, -1, -1, 717, 718, -1, -1, -1, 722, 723, 724, -1, 639, 640, 641, -1, 498, -1, 645, + 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, 663, -1, -1, + 608, 609, 668, 611, 612, 613, -1, 615, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 694, -1, -1, 639, 640, 641, -1, -1, -1, 645, -1, 705, 706, 707, 708, + -1, -1, -1, -1, -1, 498, -1, -1, 717, 718, -1, -1, 663, 722, 723, 724, -1, 668, -1, -1, -1, -1, + -1, -1, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, -1, -1, + 694, 608, 609, -1, 611, 612, 613, -1, 615, -1, -1, 705, 706, 707, 708, -1, -1, -1, -1, -1, -1, + -1, -1, 717, 718, -1, -1, -1, 722, 723, 724, -1, 639, 640, 641, 328, 329, 330, 645, 332, -1, + 334, -1, 336, -1, -1, -1, 498, -1, -1, -1, -1, 588, -1, -1, 591, 663, -1, 594, 595, 596, 668, + 598, 599, 600, 601, -1, 603, 604, -1, -1, -1, 608, -1, 610, 611, 612, 613, -1, 615, -1, -1, -1, + -1, -1, -1, -1, 694, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 705, 706, 707, 708, -1, -1, 640, + 641, -1, -1, -1, 645, 717, 718, -1, -1, -1, 722, 723, 724, 498, -1, -1, -1, -1, -1, -1, -1, -1, + 663, -1, -1, -1, -1, 668, -1, -1, -1, -1, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, + 599, 600, 601, -1, 603, 604, -1, -1, -1, 608, 694, 610, 611, 612, 613, -1, 615, -1, -1, -1, -1, + 705, 706, 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, -1, 722, 723, 724, 640, + 641, -1, -1, -1, 645, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 588, -1, -1, 591, + 663, -1, 594, 595, 596, 668, 598, 599, 600, 601, -1, 603, 604, -1, -1, -1, 608, 609, -1, 611, + 612, 613, -1, 615, -1, -1, -1, -1, -1, -1, -1, 694, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 705, 706, 707, 708, -1, 639, 640, 641, -1, -1, -1, 645, 717, 718, -1, -1, -1, 722, 723, 724, + 498, 499, 500, 501, 502, -1, -1, -1, -1, 663, -1, -1, -1, -1, 668, -1, -1, -1, 585, -1, 587, + -1, 589, -1, 591, -1, 593, -1, 595, 596, 597, -1, 599, 600, 601, -1, 603, 604, -1, -1, 694, + 608, -1, -1, -1, -1, 544, -1, -1, -1, -1, 705, 706, 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, + 717, 718, -1, -1, -1, 722, 723, 724, 498, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, + 604, -1, -1, -1, 608, 609, -1, 611, 612, 613, -1, 615, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 639, 640, 641, -1, -1, -1, 645, -1, -1, -1, + 718, -1, -1, -1, 722, -1, 724, 498, -1, -1, 588, -1, -1, 591, 663, -1, 594, 595, 596, 668, 598, + 599, 600, 601, -1, 603, 604, -1, -1, -1, 608, 609, -1, 611, 612, 613, -1, 615, -1, -1, -1, -1, + -1, -1, -1, 694, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 705, 706, 707, 708, -1, 639, 640, 641, + -1, 498, -1, 645, 717, 718, 648, -1, -1, 722, 723, 724, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 663, -1, -1, -1, -1, 668, -1, -1, -1, -1, -1, -1, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, + 598, 599, 600, 601, -1, 603, 604, -1, -1, 694, 608, 609, -1, 611, 612, 613, -1, 615, -1, -1, + 705, 706, 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, -1, 722, 723, 724, -1, + 639, 640, 641, -1, -1, -1, 645, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, + 601, -1, 603, 604, 663, -1, -1, 608, 609, 668, 611, 612, 613, -1, 615, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 498, 694, -1, -1, 639, 640, 641, -1, -1, + -1, 645, -1, 705, 706, 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, 663, 722, + 723, 724, -1, 668, -1, -1, -1, -1, 157, -1, -1, -1, 585, -1, 587, -1, 589, 682, 591, -1, 593, + -1, 595, 596, 597, -1, 599, 600, 601, 694, 603, 604, -1, -1, -1, 608, -1, -1, -1, -1, 705, 706, + 707, 708, 498, -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, -1, 722, 723, 724, 588, -1, -1, + 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, 157, -1, -1, 608, -1, -1, + 611, 612, 613, -1, 615, 498, -1, -1, -1, -1, 547, 548, 244, -1, -1, -1, -1, -1, -1, 556, 557, + -1, -1, -1, -1, 562, -1, -1, -1, 640, 641, -1, -1, -1, -1, 572, -1, -1, -1, -1, -1, 498, 579, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 663, -1, 547, 548, -1, 668, -1, -1, -1, -1, 718, 556, 557, + -1, 722, -1, 724, 562, -1, -1, -1, -1, -1, 612, -1, 614, 615, 572, -1, -1, -1, 694, -1, -1, + 579, -1, -1, -1, -1, -1, -1, -1, 705, 706, 707, 708, -1, -1, 332, -1, -1, -1, -1, -1, 717, 718, + -1, -1, -1, 722, 723, 724, -1, -1, -1, -1, -1, 612, -1, 614, 615, -1, -1, -1, -1, -1, -1, -1, + -1, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, -1, -1, -1, + 608, 609, -1, 611, 612, 613, 694, 615, -1, -1, -1, -1, 700, -1, -1, -1, -1, 705, 332, 157, -1, + -1, -1, -1, -1, -1, -1, 498, -1, 717, 718, 639, 640, 641, 722, 723, 724, 645, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 694, -1, -1, -1, -1, 663, 700, -1, -1, -1, 668, 705, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 386, 717, 718, -1, -1, -1, 722, 723, 724, -1, -1, -1, -1, -1, + 694, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 705, 706, 707, 708, -1, -1, -1, -1, -1, 244, -1, + -1, 717, 718, -1, -1, -1, 722, 723, 724, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, + 600, 601, -1, 603, 604, -1, -1, -1, 608, 609, -1, 611, 612, 613, -1, 615, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 639, 640, 641, -1, -1, + -1, 645, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 663, -1, 332, -1, + -1, 668, -1, -1, -1, -1, 585, -1, 587, 498, 589, -1, 591, -1, 593, -1, 595, 596, 597, -1, 599, + 600, 601, -1, 603, 604, -1, 694, -1, 608, -1, 328, 329, 330, -1, 332, 333, -1, 705, 706, 707, + 708, -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, -1, 722, 723, 724, -1, -1, -1, -1, -1, + -1, 643, 644, -1, 646, -1, -1, -1, -1, -1, -1, -1, 585, -1, 587, -1, 589, -1, 591, -1, 593, -1, + 595, 596, 597, -1, 599, 600, 601, -1, 603, 604, -1, -1, -1, 608, 588, -1, -1, 591, -1, -1, 594, + 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, -1, -1, -1, 608, -1, 610, 611, 612, 613, -1, + 615, -1, 707, 708, 709, -1, 498, 643, 644, -1, 646, -1, -1, 718, -1, -1, -1, 722, -1, 724, 725, + -1, -1, -1, -1, 640, 641, -1, -1, -1, 645, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 663, -1, -1, -1, -1, 668, 546, 547, 548, -1, -1, -1, -1, -1, -1, -1, 556, 557, + -1, -1, -1, -1, 562, 707, 708, 709, -1, -1, -1, -1, -1, 694, 572, -1, 718, -1, -1, -1, 722, + 579, 724, 725, 705, 706, 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, -1, 722, + 723, 724, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 612, -1, 614, 615, -1, 585, -1, 587, -1, 589, + -1, 591, -1, 593, -1, 595, 596, 597, -1, 599, 600, 601, -1, 603, 604, -1, -1, -1, 608, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 585, -1, 587, -1, 589, -1, 591, -1, 593, -1, 595, + 596, 597, -1, 599, 600, 601, 498, 603, 604, -1, 643, 644, 608, 646, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 694, -1, -1, -1, -1, -1, 700, -1, -1, -1, -1, 705, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, -1, 722, 723, 724, -1, -1, -1, -1, 498, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 707, 708, 709, -1, -1, -1, -1, -1, -1, -1, -1, 718, -1, -1, -1, + 722, -1, 724, 725, -1, -1, -1, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, + -1, 603, 604, -1, -1, -1, 608, 609, -1, 611, 612, 613, 718, 615, -1, -1, 722, -1, 724, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 639, 640, 641, -1, 498, -1, + 645, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, 663, -1, + -1, 608, 609, 668, 611, 612, 613, -1, 615, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 694, -1, -1, 639, 640, 641, -1, 498, -1, 645, -1, 705, 706, 707, + 708, -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, 663, 722, 723, 724, -1, 668, -1, -1, -1, + -1, -1, -1, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, -1, + -1, 694, 608, 609, -1, 611, 612, 613, -1, 615, -1, -1, 705, 706, 707, 708, -1, -1, -1, -1, -1, + -1, -1, -1, 717, 718, -1, -1, -1, 722, 723, 724, -1, 639, 640, 641, -1, -1, 498, 645, 588, -1, + -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, 663, 518, 519, 608, 609, + 668, 611, 612, 613, -1, 615, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 694, -1, -1, 639, 640, 641, -1, -1, 498, 645, -1, 705, 706, 707, 708, -1, -1, + -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, 663, 722, 723, 724, -1, 668, -1, -1, -1, -1, -1, -1, + -1, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, -1, 694, -1, + 608, 609, -1, 611, 612, 613, -1, 615, -1, 705, 706, 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, + 717, 718, -1, -1, -1, 722, 723, 724, -1, -1, 639, 640, 641, -1, -1, -1, 645, 588, -1, -1, 591, + -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, 663, -1, -1, 608, 609, 668, 611, + 612, 613, 585, 615, 587, -1, 589, -1, 591, -1, 593, -1, 595, 596, 597, -1, 599, 600, 601, -1, + 603, 604, -1, 498, 694, 608, -1, 639, 640, 641, -1, -1, -1, 645, -1, 705, 706, 707, 708, -1, + -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, 663, 722, 723, 724, -1, 668, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 498, 694, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 705, 706, 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, + -1, -1, -1, 722, 723, 724, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, + 603, 604, -1, -1, -1, 608, 609, 718, 611, 612, 613, 722, 615, 724, -1, 618, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 639, 640, 641, -1, 498, -1, 645, + 588, -1, 648, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, 663, -1, -1, + 608, -1, 668, 611, 612, 613, -1, 615, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 694, -1, -1, -1, 640, 641, -1, 498, -1, -1, -1, 705, 706, 707, 708, -1, + -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, 663, 722, 723, 724, -1, 668, -1, -1, -1, -1, -1, + -1, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, -1, -1, 694, + 608, 609, -1, 611, 612, 613, -1, 615, -1, -1, 705, 706, 707, 708, -1, -1, -1, -1, -1, -1, -1, + -1, 717, 718, -1, -1, -1, 722, 723, 724, -1, 639, 640, 641, -1, 498, -1, 645, 588, -1, -1, 591, + -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, 663, -1, -1, 608, 609, 668, 611, + 612, 613, -1, 615, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 694, -1, -1, 639, 640, 641, -1, 498, -1, 645, -1, 705, 706, 707, 708, -1, -1, -1, -1, -1, + -1, -1, -1, 717, 718, -1, -1, 663, 722, 723, 724, -1, 668, -1, -1, -1, -1, -1, -1, 588, -1, -1, + 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, -1, -1, 694, 608, 609, -1, + 611, 612, 613, -1, 615, -1, -1, 705, 706, 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, + -1, -1, -1, 722, 723, 724, -1, 639, 640, 641, -1, 498, -1, 645, 588, -1, -1, 591, -1, -1, 594, + 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, 663, -1, -1, 608, 609, 668, 611, 612, 613, -1, + 615, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 694, -1, + -1, 639, 640, 641, -1, 498, -1, 645, -1, 705, 706, 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, + 717, 718, -1, -1, 663, 722, 723, 724, -1, 668, -1, -1, -1, -1, -1, -1, 588, -1, -1, 591, -1, + -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, -1, -1, 694, 608, 609, -1, 611, 612, + 613, -1, 615, -1, -1, 705, 706, 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, -1, + 722, 723, 724, -1, 639, 640, 641, -1, 498, -1, 645, 588, -1, -1, 591, -1, -1, 594, 595, 596, + -1, 598, 599, 600, 601, -1, 603, 604, 663, -1, -1, 608, 609, 668, 611, 612, 613, -1, 615, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 694, -1, -1, 639, + 640, 641, -1, 498, -1, 645, -1, 705, 706, 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, + -1, -1, 663, 722, 723, 724, -1, 668, -1, -1, -1, -1, -1, -1, 588, -1, -1, 591, -1, -1, 594, + 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, -1, -1, 694, 608, 609, -1, 611, 612, 613, -1, + 615, -1, -1, 705, 706, 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, -1, 722, + 723, 724, -1, 639, 640, 641, -1, 498, -1, 645, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, + 598, 599, 600, 601, -1, 603, 604, 663, -1, -1, 608, 609, 668, 611, 612, 613, 585, 615, 587, -1, + 589, -1, 591, -1, 593, -1, 595, 596, 597, -1, 599, 600, 601, -1, 603, 604, -1, -1, 694, 608, + -1, 639, 640, 641, -1, -1, -1, 645, -1, 705, 706, 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, + 717, 718, 498, -1, 663, 722, 723, 724, -1, 668, -1, -1, -1, -1, -1, -1, 588, -1, -1, 591, -1, + -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, -1, -1, 694, 608, 609, -1, 611, 612, + 613, -1, 615, -1, -1, 705, 706, 707, 708, 498, 547, 548, -1, -1, -1, -1, -1, 717, 718, 556, + 557, -1, 722, 723, 724, 562, 639, 640, 641, -1, -1, -1, 645, -1, -1, 572, -1, -1, -1, -1, -1, + -1, 579, -1, -1, -1, -1, 718, 498, -1, 663, 722, -1, 724, -1, 668, -1, -1, 547, 548, -1, -1, + -1, -1, -1, -1, -1, 556, 557, -1, -1, -1, -1, 562, -1, 612, -1, 614, 615, -1, -1, 694, -1, 572, + -1, -1, -1, -1, -1, -1, 579, -1, 705, 706, 707, 708, -1, 547, 548, -1, -1, -1, -1, -1, 717, + 718, 556, 557, -1, 722, 723, 724, 562, -1, -1, -1, -1, -1, -1, -1, -1, -1, 572, 612, -1, 614, + 615, -1, -1, 579, -1, -1, 585, -1, 587, -1, 589, -1, 591, -1, 593, -1, 595, 596, 597, -1, 599, + 600, 601, -1, 603, 604, -1, -1, -1, 608, -1, 694, -1, -1, -1, -1, 612, 700, 614, 615, -1, -1, + 705, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, -1, 722, 723, 724, 498, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 694, -1, -1, -1, -1, -1, 700, -1, + -1, -1, -1, 705, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, -1, 722, 723, + 724, -1, -1, -1, -1, -1, -1, -1, -1, 694, -1, 498, -1, -1, -1, 700, -1, -1, -1, -1, 705, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 718, -1, 717, 718, 722, -1, 724, 722, 723, 724, -1, -1, -1, + 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, -1, -1, -1, 608, + 609, -1, 611, 612, 613, 588, 615, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, + 603, 604, -1, -1, -1, 608, -1, -1, -1, -1, 639, 640, 641, -1, -1, -1, 645, 588, -1, -1, 591, + -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, 663, -1, -1, 608, 609, 668, 611, + 612, 613, 585, 615, 587, -1, 589, -1, 591, -1, 593, -1, 595, 596, 597, -1, 599, 600, 601, -1, + 603, 604, -1, 498, 694, 608, -1, 639, 640, 641, -1, -1, -1, 645, -1, 705, 706, 707, 708, -1, + -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, 663, 722, 723, 724, -1, 668, -1, -1, -1, -1, 705, + 706, 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, -1, 722, 723, 724, 498, 694, + -1, -1, 697, 698, -1, -1, -1, -1, -1, -1, 705, 706, 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, + 717, 718, -1, -1, -1, 722, 723, 724, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, + 600, 601, -1, 603, 604, -1, -1, -1, 608, 609, 718, 611, 612, 613, 722, 615, 724, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 639, 640, 641, -1, + 498, -1, 645, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, + 663, -1, -1, 608, 609, 668, 611, 612, 613, -1, 615, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 694, -1, -1, 639, 640, 641, -1, 498, -1, 645, -1, 705, 706, + 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, 663, 722, 723, 724, -1, 668, -1, + -1, -1, -1, -1, -1, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, + 604, -1, -1, 694, 608, 609, -1, 611, 612, 613, -1, 615, -1, -1, 705, 706, 707, 708, -1, -1, -1, + -1, -1, -1, -1, -1, 717, 718, -1, -1, -1, 722, 723, 724, -1, 639, 640, 641, -1, 498, -1, 645, + 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, 663, -1, -1, + 608, 609, 668, 611, 612, 613, 585, 615, 587, -1, 589, -1, 591, -1, 593, -1, 595, 596, 597, -1, + 599, 600, 601, -1, 603, 604, -1, -1, 694, 608, -1, 639, 640, 641, -1, -1, -1, 645, -1, 705, + 706, 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, 663, 722, 723, 724, -1, 668, + -1, -1, -1, 498, -1, -1, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, + 603, 604, -1, -1, 694, 608, 609, -1, 611, 612, 613, -1, 615, -1, -1, 705, 706, 707, 708, -1, + -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, -1, 722, 723, 724, -1, 639, 640, 641, -1, 498, + -1, 645, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 718, -1, -1, 663, 722, -1, + 724, -1, 668, -1, -1, -1, -1, -1, -1, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, + 600, 601, -1, 603, 604, -1, -1, 694, 608, 609, -1, 611, 612, 613, -1, 615, -1, -1, 705, 706, + 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, -1, 722, 723, 724, -1, 639, 640, + 641, -1, 498, -1, 645, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, + 603, 604, 663, -1, -1, 608, 609, 668, 611, 612, 613, -1, 615, -1, 675, 676, -1, -1, -1, -1, -1, + 682, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 694, -1, -1, 639, 640, 641, -1, 498, -1, 645, + -1, 705, 706, 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, 663, 722, 723, 724, + -1, 668, -1, -1, -1, -1, -1, -1, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, + 601, -1, 603, 604, -1, -1, 694, 608, -1, 610, 611, 612, 613, -1, 615, -1, -1, 705, 706, 707, + 708, -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, -1, 722, 723, 724, -1, -1, 640, 641, -1, + 498, -1, 645, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, + 663, -1, -1, 608, 609, 668, 611, 612, 613, -1, 615, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 694, -1, -1, 639, 640, 641, -1, 498, -1, 645, -1, 705, 706, + 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, 663, 722, 723, 724, -1, 668, -1, + -1, -1, -1, -1, -1, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, + 604, -1, -1, 694, 608, 609, -1, 611, 612, 613, -1, 615, -1, -1, 705, 706, 707, 708, -1, -1, -1, + -1, -1, -1, -1, -1, 717, 718, -1, -1, -1, 722, 723, 724, -1, 639, 640, 641, -1, 498, -1, 645, + 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, 663, -1, -1, + 608, 609, 668, 611, 612, 613, -1, 615, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 694, -1, -1, 639, 640, 641, -1, 498, -1, 645, -1, 705, 706, 707, 708, + -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, 663, 722, 723, 724, -1, 668, -1, -1, -1, -1, + -1, -1, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, -1, -1, + 694, 608, 609, -1, 611, 612, 613, -1, 615, -1, -1, 705, 706, 707, 708, -1, -1, -1, -1, -1, 332, + -1, -1, 717, 718, -1, -1, -1, 722, 723, 724, -1, 639, 640, 641, -1, 498, -1, 645, 588, -1, -1, + 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, 663, -1, -1, 608, 609, 668, + 611, 612, 613, -1, 615, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 694, -1, -1, 639, 640, 641, -1, 498, -1, 645, -1, 705, 706, 707, 708, -1, -1, -1, -1, + -1, -1, -1, -1, 717, 718, -1, -1, 663, 722, 723, 724, -1, 668, -1, -1, -1, -1, -1, -1, 588, -1, + -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, -1, -1, 694, 608, 609, + -1, 611, 612, 613, -1, 615, -1, -1, 705, 706, 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, 717, + 718, -1, -1, -1, 722, 723, 724, -1, 639, 640, 641, -1, -1, -1, 645, 588, -1, -1, 591, -1, -1, + 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, 663, -1, -1, 608, 609, 668, 611, 612, 613, + -1, 615, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 498, 694, + -1, -1, 639, 640, 641, -1, -1, -1, 645, -1, 705, 706, 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, + 717, 718, -1, -1, 663, 722, 723, 724, -1, 668, -1, 498, -1, -1, -1, -1, -1, -1, 585, 157, 587, + -1, 589, -1, 591, -1, 593, -1, 595, 596, 597, -1, 599, 600, 601, 694, 603, 604, -1, -1, -1, + 608, -1, -1, -1, -1, 705, 706, 707, 708, -1, -1, -1, -1, -1, 577, 578, -1, 717, 718, -1, -1, + -1, 722, 723, 724, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, + 604, -1, -1, -1, 608, -1, 610, 611, 612, 613, -1, 615, -1, -1, -1, -1, -1, -1, -1, 588, -1, -1, + 591, -1, 244, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, 640, 641, -1, 608, 609, 645, + 611, 612, 613, -1, 615, 498, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 663, -1, -1, -1, -1, + 668, -1, -1, -1, -1, 718, 639, 640, 641, 722, -1, 724, 645, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 694, -1, -1, -1, 663, -1, 547, 548, -1, 668, -1, 705, 706, 707, 708, 556, 557, + -1, -1, 498, -1, 562, 332, 717, 718, -1, -1, -1, 722, 723, 724, 572, -1, -1, -1, 694, -1, -1, + 579, -1, -1, -1, -1, -1, -1, -1, 705, 706, 707, 708, -1, -1, 531, 532, 533, 534, 535, 536, 717, + 718, -1, -1, -1, 722, 723, 724, -1, -1, -1, -1, -1, 612, -1, 614, 615, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 585, -1, 587, -1, 589, -1, 591, -1, 593, -1, 595, 596, 597, -1, 599, 600, 601, + -1, 603, 604, -1, 498, -1, 608, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, + 601, -1, 603, 604, -1, -1, -1, 608, 609, -1, 611, 612, 613, -1, 615, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 652, 694, -1, -1, -1, -1, -1, 700, 639, 640, 641, -1, 705, + -1, 645, -1, -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, -1, 722, 723, 724, 663, -1, -1, + -1, -1, 668, -1, -1, -1, -1, -1, -1, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, + 600, 601, -1, 603, 604, -1, -1, 694, 608, 609, 718, 611, 612, 613, 722, 615, 724, -1, 705, 706, + 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, -1, 722, 723, 724, -1, 639, 640, + 641, 585, -1, 587, 645, 589, -1, 591, -1, 593, -1, 595, 596, 597, -1, 599, 600, 601, -1, 603, + 604, -1, 663, -1, 608, -1, 585, 668, 587, -1, 589, -1, 591, -1, 593, -1, 595, 596, 597, -1, + 599, 600, 601, -1, 603, 604, -1, -1, -1, 608, -1, -1, -1, 694, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 705, 706, 707, 708, 652, -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, -1, 722, 723, + 724, 643, 644, 3, 646, -1, -1, -1, 8, 9, -1, -1, -1, -1, -1, 15, 16, -1, 18, 19, 20, 21, -1, + 23, -1, -1, 26, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 38, -1, -1, -1, -1, 43, 44, -1, -1, + 47, 48, 49, -1, 718, -1, -1, -1, 722, -1, 724, -1, -1, -1, -1, -1, -1, -1, 707, 708, 709, -1, + 69, -1, -1, 72, 73, -1, -1, 718, -1, -1, -1, 722, -1, 724, 725, -1, 585, -1, 587, 88, 589, -1, + 591, -1, 593, -1, 595, 596, 597, -1, 599, 600, 601, -1, 603, 604, 585, -1, 587, 608, 589, -1, + 591, -1, 593, -1, 595, 596, 597, -1, 599, 600, 601, -1, 603, 604, 397, -1, 399, 608, -1, -1, + 403, -1, -1, -1, -1, -1, -1, -1, 139, -1, -1, 142, 143, -1, -1, 146, -1, -1, 149, 150, 151, + 652, -1, -1, -1, -1, -1, -1, 159, -1, -1, -1, -1, -1, -1, 166, -1, 168, 169, -1, -1, 172, -1, + -1, 175, 176, -1, -1, -1, 180, -1, -1, -1, -1, -1, -1, -1, -1, 189, 462, -1, -1, 193, 194, 195, + -1, -1, 198, 471, 200, 201, 202, 203, -1, -1, 478, -1, -1, -1, -1, 211, -1, 213, -1, -1, -1, + -1, 718, -1, -1, -1, 722, -1, 724, 497, 498, 499, 500, 501, 502, -1, -1, 233, -1, -1, 508, 237, + 718, 239, 240, -1, 722, -1, 724, -1, -1, -1, -1, -1, 250, -1, 252, -1, -1, -1, -1, -1, -1, 259, + 260, -1, -1, 263, 264, 265, 266, 267, -1, -1, -1, -1, 544, -1, -1, -1, 276, -1, 278, -1, 280, + -1, -1, 283, -1, -1, -1, 287, 288, -1, -1, -1, -1, -1, -1, -1, -1, -1, 298, 299, -1, -1, -1, + -1, 304, -1, -1, -1, -1, 309, -1, 585, -1, 587, -1, 589, -1, 591, -1, 593, 320, 595, 596, 597, + -1, 599, 600, 601, -1, 603, 604, -1, -1, -1, 608, -1, -1, -1, -1, -1, -1, -1, -1, -1, 344, -1, + -1, 347, -1, -1, -1, -1, 352, -1, -1, 355, 356, 357, -1, -1, -1, -1, 362, -1, -1, 365, -1, 367, + -1, 369, -1, 371, 372, -1, -1, -1, 376, 377, -1, -1, 380, -1, 382, 383, -1, -1, -1, 387, 388, + 389, -1, -1, 392, 393, 394, 395, 396, -1, -1, -1, -1, -1, -1, 403, -1, 405, 406, 407, -1, -1, + -1, -1, -1, 498, 414, -1, 416, 417, -1, -1, -1, -1, -1, 423, 424, 425, -1, -1, 428, 429, 430, + 431, -1, 433, 434, -1, 436, 437, -1, 439, 440, -1, 442, -1, 718, -1, -1, -1, 722, -1, 724, -1, + -1, -1, 454, -1, 456, -1, -1, 459, -1, 461, 462, -1, -1, 398, 399, 400, -1, -1, 403, 471, -1, + 473, -1, -1, -1, -1, 478, -1, -1, -1, -1, 483, 498, -1, -1, -1, -1, -1, -1, -1, -1, 493, -1, + -1, -1, 497, 498, 499, 500, 501, 502, 588, -1, -1, 591, -1, 508, 594, 595, 596, -1, 598, 599, + 600, 601, -1, 603, 604, -1, -1, -1, 608, 609, -1, 611, 612, 613, 462, 615, -1, -1, -1, -1, -1, + -1, -1, 471, -1, -1, -1, -1, -1, 544, 478, -1, -1, -1, -1, -1, -1, -1, -1, 639, 640, 641, -1, + -1, -1, 645, -1, -1, -1, 497, 498, 499, 500, 501, 502, -1, -1, -1, -1, 588, 508, -1, 591, 663, + -1, 594, 595, 596, 668, 598, 599, 600, 601, -1, 603, 604, -1, -1, -1, 608, -1, 610, 611, 612, + 613, -1, 615, -1, -1, -1, -1, -1, -1, -1, 694, -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, 705, + 706, 707, 708, 498, -1, 640, 641, -1, -1, -1, 645, 717, 718, -1, -1, -1, 722, 723, 724, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 663, -1, -1, -1, -1, 668, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 399, 400, -1, 694, 403, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 705, 706, 707, 708, 498, -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, -1, 722, + 723, 724, -1, -1, -1, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, + 604, -1, -1, -1, 608, 609, -1, 611, 612, 613, 462, 615, -1, -1, -1, 619, 620, -1, -1, 471, -1, + -1, -1, -1, -1, -1, 478, -1, -1, -1, -1, -1, -1, -1, -1, 639, 640, 641, -1, -1, -1, 645, -1, + -1, -1, 497, 498, 499, 500, 501, 502, -1, 498, -1, -1, 588, 508, -1, 591, 663, -1, 594, 595, + 596, 668, 598, 599, 600, 601, -1, 603, 604, -1, -1, -1, 608, 609, -1, 611, 612, 613, -1, 615, + -1, -1, -1, -1, -1, -1, -1, 694, -1, 544, -1, -1, -1, -1, -1, -1, -1, -1, 705, 706, 707, 708, + -1, 639, 640, 641, -1, -1, -1, 645, 717, 718, 648, -1, -1, 722, 723, 724, -1, -1, 498, -1, -1, + -1, -1, -1, -1, 663, -1, -1, -1, -1, 668, -1, -1, -1, -1, -1, -1, 588, -1, -1, 591, -1, -1, + 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, -1, -1, 694, 608, 609, -1, 611, 612, 613, + -1, 615, -1, -1, 705, 706, 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, -1, 722, + 723, 724, -1, 639, 640, 641, -1, -1, -1, 645, -1, -1, 648, -1, -1, -1, -1, -1, -1, -1, 498, -1, + -1, 588, -1, -1, 591, 663, -1, 594, 595, 596, 668, 598, 599, 600, 601, -1, 603, 604, -1, -1, + -1, 608, -1, 610, 611, 612, 613, -1, 615, -1, -1, -1, -1, -1, -1, -1, 694, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 705, 706, 707, 708, -1, -1, 640, 641, -1, 498, -1, 645, 717, 718, -1, -1, + -1, 722, 723, 724, -1, -1, -1, -1, -1, -1, -1, -1, -1, 663, -1, -1, -1, -1, 668, -1, -1, -1, + -1, -1, -1, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, -1, + -1, 694, 608, 609, -1, 611, 612, 613, -1, 615, -1, -1, 705, 706, 707, 708, -1, -1, -1, -1, -1, + -1, -1, -1, 717, 718, -1, -1, -1, 722, 723, 724, -1, 639, 640, 641, -1, 498, -1, 645, 588, -1, + 648, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, 663, -1, -1, 608, 609, + 668, 611, 612, 613, -1, 615, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 694, -1, -1, 639, 640, 641, -1, -1, -1, 645, -1, 705, 706, 707, 708, -1, -1, + -1, -1, -1, 498, -1, -1, 717, 718, -1, -1, 663, 722, 723, 724, -1, 668, -1, -1, -1, -1, -1, -1, + 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, -1, -1, 694, + 608, 609, -1, 611, 612, 613, -1, 615, -1, -1, 705, 706, 707, 708, -1, -1, -1, -1, -1, -1, -1, + -1, 717, 718, -1, -1, -1, 722, 723, 724, -1, 639, 640, 641, -1, -1, -1, 645, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 498, -1, -1, 588, -1, -1, 591, 663, -1, 594, 595, 596, 668, 598, 599, + 600, 601, -1, 603, 604, -1, -1, -1, 608, 609, -1, 611, 612, 613, -1, 615, -1, -1, -1, -1, -1, + -1, -1, 694, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 705, 706, 707, 708, -1, 639, 640, 641, -1, + 498, -1, 645, 717, 718, 648, -1, -1, 722, 723, 724, -1, -1, -1, -1, -1, -1, -1, -1, -1, 663, + -1, -1, -1, -1, 668, -1, -1, -1, -1, -1, -1, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, + 599, 600, 601, -1, 603, 604, -1, -1, 694, 608, 609, -1, 611, 612, 613, -1, 615, -1, -1, 705, + 706, 707, 708, -1, -1, -1, -1, -1, -1, 498, -1, 717, 718, -1, -1, -1, 722, 723, 724, -1, 639, + 640, 641, -1, -1, -1, 645, 588, -1, 648, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, + -1, 603, 604, 663, -1, -1, 608, 609, 668, 611, 612, 613, -1, 615, -1, -1, 546, 547, 548, -1, + -1, -1, -1, -1, -1, -1, 556, 557, -1, -1, -1, -1, 562, -1, 694, 498, -1, 639, 640, 641, -1, -1, + 572, 645, -1, 705, 706, 707, 708, 579, -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, 663, 722, + 723, 724, -1, 668, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 612, -1, 614, + 615, -1, -1, -1, -1, -1, -1, 694, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 705, 706, 707, 708, + -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, -1, 722, 723, 724, -1, 498, 588, -1, -1, 591, + -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, -1, -1, -1, 608, 609, -1, 611, + 612, 613, -1, 615, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 694, -1, -1, -1, -1, -1, 700, + -1, -1, -1, -1, 705, 639, 640, 641, -1, -1, -1, 645, -1, -1, -1, -1, 717, 718, -1, -1, -1, 722, + 723, 724, -1, -1, -1, -1, -1, 663, -1, -1, -1, -1, 668, -1, -1, -1, -1, -1, -1, -1, 676, 588, + -1, -1, 591, -1, 682, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, 694, -1, -1, 608, + 609, -1, 611, 612, 613, -1, 615, 705, 706, 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, + -1, -1, -1, 722, 723, 724, 498, -1, -1, 639, 640, 641, -1, -1, -1, 645, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 663, -1, 585, -1, 587, 668, 589, -1, 591, -1, 593, + -1, 595, 596, 597, -1, 599, 600, 601, -1, 603, 604, -1, -1, -1, 608, -1, -1, -1, -1, -1, 694, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 705, 706, 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, + 717, 718, -1, -1, -1, 722, 723, 724, 498, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, + 599, 600, 601, -1, 603, 604, -1, -1, -1, 608, 609, -1, 611, 612, 613, -1, 615, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 636, 637, -1, 639, 640, 641, + -1, -1, -1, 645, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 718, -1, -1, 663, 722, + -1, 724, -1, 668, -1, -1, -1, -1, -1, -1, -1, 498, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, + 598, 599, 600, 601, -1, 603, 604, 694, -1, -1, 608, 609, -1, 611, 612, 613, -1, 615, 705, 706, + 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, -1, 722, 723, 724, 636, 637, -1, + 639, 640, 641, -1, -1, -1, 645, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 498, -1, -1, + -1, -1, 663, -1, -1, -1, -1, 668, -1, -1, -1, -1, -1, -1, -1, -1, 588, -1, -1, 591, -1, -1, + 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, 694, -1, -1, 608, 609, -1, 611, 612, 613, + -1, 615, 705, 706, 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, -1, 722, 723, + 724, 636, 637, -1, 639, 640, 641, -1, -1, -1, 645, -1, -1, -1, 578, -1, -1, -1, -1, -1, -1, + 498, -1, -1, 588, -1, -1, 591, 663, -1, 594, 595, 596, 668, 598, 599, 600, 601, -1, 603, 604, + -1, -1, -1, 608, -1, 610, 611, 612, 613, -1, 615, -1, -1, -1, -1, -1, -1, -1, 694, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 705, 706, 707, 708, -1, -1, 640, 641, -1, -1, -1, 645, 717, 718, + -1, -1, -1, 722, 723, 724, -1, -1, 498, -1, -1, -1, -1, -1, -1, 663, -1, -1, -1, -1, 668, -1, + -1, -1, -1, -1, -1, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, + 604, -1, -1, 694, 608, 609, -1, 611, 612, 613, -1, 615, -1, -1, 705, 706, 707, 708, -1, -1, -1, + -1, -1, -1, -1, -1, 717, 718, -1, -1, -1, 722, 723, 724, -1, 639, 640, 641, -1, -1, -1, 645, + -1, -1, 648, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 588, -1, -1, 591, 663, -1, 594, 595, 596, + 668, 598, 599, 600, 601, -1, 603, 604, -1, -1, -1, 608, 609, -1, 611, 612, 613, -1, 615, -1, + -1, -1, -1, -1, -1, -1, 694, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 705, 706, 707, 708, 498, + 639, 640, 641, -1, -1, -1, 645, 717, 718, 648, -1, -1, 722, 723, 724, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 663, -1, -1, -1, -1, 668, -1, -1, -1, 532, 533, 534, 535, 536, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 694, -1, 498, -1, -1, -1, -1, -1, -1, -1, -1, + 705, 706, 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, -1, 722, 723, 724, -1, + -1, -1, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, -1, -1, + -1, 608, 609, -1, 611, 612, 613, -1, 615, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 639, 640, 641, -1, 498, -1, 645, 588, -1, -1, 591, -1, + -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, 663, -1, -1, 608, 609, 668, 611, 612, + 613, -1, 615, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 694, -1, -1, 639, 640, 641, -1, 498, -1, 645, -1, 705, 706, 707, 708, -1, -1, -1, -1, -1, -1, + -1, -1, 717, 718, -1, -1, 663, 722, 723, 724, -1, 668, -1, -1, -1, -1, -1, -1, 588, -1, -1, + 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, -1, -1, 694, 608, 609, -1, + 611, 612, 613, -1, 615, -1, -1, 705, 706, 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, + -1, -1, -1, 722, 723, 724, -1, 639, 640, 641, -1, 498, -1, 645, 588, -1, -1, 591, -1, -1, 594, + 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, 663, -1, -1, 608, 609, 668, 611, 612, 613, -1, + 615, -1, -1, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, -1, + 694, 637, 608, 639, 640, 641, -1, -1, -1, 645, -1, 705, 706, 707, 708, -1, -1, -1, -1, -1, -1, + -1, -1, 717, 718, -1, -1, 663, 722, 723, 724, -1, 668, -1, -1, -1, -1, -1, -1, 588, -1, -1, + 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, -1, -1, 694, 608, -1, -1, + 611, 612, 613, -1, 615, -1, -1, 705, 706, 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, + -1, -1, -1, 722, 723, 724, 498, -1, 640, 641, -1, -1, -1, -1, -1, -1, 705, 706, 707, 708, -1, + -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, 663, -1, 722, 723, 724, 668, -1, -1, 531, 532, 533, + 534, 535, 536, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 694, -1, + 498, -1, -1, -1, -1, -1, -1, -1, -1, 705, 706, 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, 717, + 718, -1, -1, -1, 722, 723, 724, -1, -1, -1, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, + 599, 600, 601, -1, 603, 604, -1, -1, -1, 608, 609, -1, 611, 612, 613, -1, 615, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 639, 640, 641, -1, + 498, -1, 645, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, + 663, -1, -1, 608, 609, 668, 611, 612, 613, -1, 615, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 694, -1, -1, 639, 640, 641, -1, -1, -1, 645, -1, 705, 706, + 707, 708, -1, -1, -1, -1, -1, 498, -1, -1, 717, 718, -1, -1, 663, 722, 723, 724, -1, 668, -1, + -1, -1, -1, -1, -1, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, + 604, -1, -1, 694, 608, 609, -1, 611, 612, 613, -1, 615, -1, -1, 705, 706, 707, 708, -1, -1, -1, + -1, -1, -1, -1, -1, 717, 718, -1, -1, -1, 722, 723, 724, -1, 639, 640, 641, -1, -1, -1, 645, + -1, -1, -1, -1, -1, -1, -1, -1, 498, -1, -1, -1, -1, 588, -1, -1, 591, 663, -1, 594, 595, 596, + 668, 598, 599, 600, 601, -1, 603, 604, -1, -1, -1, 608, -1, 610, 611, 612, 613, -1, 615, -1, + -1, -1, -1, -1, -1, -1, 694, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 705, 706, 707, 708, -1, + -1, 640, 641, -1, -1, -1, 645, 717, 718, -1, -1, -1, 722, 723, 724, 498, -1, -1, -1, -1, -1, + -1, -1, -1, 663, -1, -1, -1, -1, 668, -1, -1, -1, -1, 588, -1, -1, 591, -1, -1, 594, 595, 596, + -1, 598, 599, 600, 601, -1, 603, 604, -1, -1, -1, 608, 694, 610, 611, 612, 613, -1, 615, -1, + -1, -1, -1, 705, 706, 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, -1, 722, 723, + 724, 640, 641, -1, -1, -1, 645, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 498, -1, 588, -1, + -1, 591, 663, -1, 594, 595, 596, 668, 598, 599, 600, 601, -1, 603, 604, -1, -1, -1, 608, -1, + 610, 611, 612, 613, -1, 615, -1, -1, -1, -1, -1, -1, -1, 694, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 705, 706, 707, 708, -1, -1, 640, 641, -1, -1, 498, 645, 717, 718, -1, -1, -1, 722, 723, + 724, -1, -1, -1, -1, -1, -1, -1, -1, -1, 663, -1, -1, -1, -1, 668, -1, -1, -1, -1, -1, -1, -1, + 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, -1, 694, -1, + 608, 609, -1, 611, 612, 613, -1, 615, -1, 705, 706, 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, + 717, 718, -1, -1, 330, 722, 723, 724, 637, -1, 639, 640, 641, -1, 498, -1, 645, 588, -1, -1, + 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, 663, -1, -1, 608, 609, 668, + 611, 612, 613, -1, 615, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 694, -1, -1, 639, 640, 641, -1, -1, -1, 645, -1, 705, 706, 707, 708, -1, -1, -1, -1, + -1, 498, -1, -1, 717, 718, -1, -1, 663, 722, 723, 724, -1, 668, -1, -1, -1, -1, -1, -1, 588, + -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, 600, 601, -1, 603, 604, -1, -1, 694, 608, + 609, -1, 611, 612, 613, -1, 615, -1, -1, 705, 706, 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, + 717, 718, -1, -1, -1, 722, 723, 724, -1, 639, 640, 641, -1, -1, -1, 645, -1, -1, 648, -1, -1, + -1, -1, -1, -1, -1, 498, -1, -1, 588, -1, -1, 591, 663, -1, 594, 595, 596, 668, 598, 599, 600, + 601, -1, 603, 604, -1, -1, -1, 608, 609, -1, 611, 612, 613, -1, 615, -1, -1, -1, -1, -1, -1, + -1, 694, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 705, 706, 707, 708, -1, 639, 640, 641, -1, -1, + -1, 645, 717, 718, 648, -1, -1, 722, 723, 724, -1, -1, -1, -1, -1, -1, -1, -1, -1, 663, -1, -1, + -1, -1, 668, -1, -1, -1, -1, -1, -1, 588, -1, -1, 591, -1, -1, 594, 595, 596, -1, 598, 599, + 600, 601, -1, 603, 604, -1, -1, 694, 608, 609, -1, 611, 612, 613, -1, 615, -1, -1, 705, 706, + 707, 708, -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, -1, 722, 723, 724, -1, 639, 640, + 641, -1, -1, -1, 645, -1, -1, -1, 649, 650, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 663, -1, -1, -1, -1, 668, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 694, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 705, 706, 707, + 708, -1, -1, -1, -1, -1, -1, -1, -1, 717, 718, -1, -1, -1, 722, 723, 724, -1, -1, -1, +]; +pub(crate) static GOTO_TABLE: [i16; 24002] = [ + 57, 58, 59, 60, -1, -1, -1, -1, 61, 62, -1, -1, -1, -1, -1, 63, 64, -1, 65, 66, 67, 68, -1, 69, + -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 71, -1, -1, -1, -1, 72, 73, -1, -1, 74, + 75, 76, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 77, -1, -1, + 78, 79, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 669, 80, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 700, -1, -1, -1, -1, -1, -1, -1, 1543, -1, -1, -1, -1, -1, -1, 877, + -1, -1, -1, -1, -1, -1, -1, -1, 878, 879, 909, 1200, 1629, -1, 901, 902, 903, 904, 1710, 1574, + -1, 81, 1433, 1633, 82, 83, 1863, 1537, 84, 1885, 1634, 85, 86, 87, -1, 1713, 1868, -1, 1872, + 1913, 1882, 88, 1714, 701, 1107, 1227, 1902, 1936, 89, 232, 90, 91, 1228, 1932, 92, -1, 1939, + 93, 94, 1229, 1233, 754, 95, 1943, 1954, 1957, 1960, 1962, -1, 1135, 701, 96, 1708, 1709, 1970, + 97, 98, 99, 1976, 754, 100, -1, 101, 102, 103, 104, 1979, -1, 763, 2611, 2613, 764, 2926, 105, + 765, 106, 1877, 1691, 1692, 2614, 1598, 2631, 1718, 2615, 3007, 1598, -1, -1, -1, 2948, 2951, + -1, -1, -1, 1855, 107, -1, -1, -1, 108, 2079, 109, 110, -1, -1, -1, -1, 3073, 1524, -1, 2875, + 2924, 111, 1565, 112, 2881, 1524, 1566, -1, 2927, 1524, 113, 114, 3002, 3018, 115, 116, 117, + 118, 119, 702, 2808, 3161, 1596, 1598, 1597, 1598, 3082, 120, 1565, 121, -1, 122, 1566, 755, + 123, 756, 757, 3168, 124, 125, 3112, 3485, -1, 1565, -1, 2774, 2775, 1566, 1893, 126, 127, + 1068, 1069, 1070, 1071, 128, 1665, 1921, 3743, 2983, 129, -1, 2984, -1, 1666, 3689, 799, 800, + 801, 1524, 1524, 130, 1525, 3008, 703, -1, 1112, 1888, 3903, 3904, 789, 790, 1206, 1207, 3055, + 704, 3915, 1206, 1211, 1206, 1215, 1206, 1217, 1206, 1218, 3990, 1206, 1222, 1659, 1599, 3880, + 1598, 3869, 131, 1599, 3996, 132, 133, 134, 3992, 1862, 3951, 3822, 135, 1206, 1209, 136, 1509, + 137, 1875, 138, 3997, 139, 140, 1392, 716, 717, 141, 142, 863, 790, 143, 1422, 144, 145, 2940, + 2792, 2953, 146, 147, 148, 3870, 1899, 149, 150, 151, 152, 153, 870, 882, 883, 801, 1148, 1599, + 154, 1599, 155, 156, 157, 158, 1182, 196, 4561, 1530, 233, 159, 1571, 160, 161, 949, 666, 951, + 758, 954, 162, 163, 164, 886, 1139, 165, 166, 167, 168, 2790, 169, 170, 3068, 171, 172, 2958, + 173, 174, 3887, 175, 946, 1034, 1035, 1036, 3698, 1073, 1504, 1197, 1660, 1661, 663, 176, 3949, + 177, 1206, 1986, 178, 2663, 179, 180, 1407, 1408, 1206, 1988, 3122, 921, 1612, 1142, 181, 930, + 182, 947, 1881, 1206, 1990, 183, 2971, 1599, 2972, 3074, 184, 3096, 3097, 1204, 1012, 1395, + 1206, 1992, 1206, 1994, 185, 959, 1420, 3143, 186, 187, 188, 189, 190, 191, 657, 1199, 766, + 3595, 3081, 192, 3720, 1206, 1998, 708, 1034, 1444, 3123, 3873, 1022, 767, 3227, 3228, 3728, + 768, 1398, 1000, 769, 808, 809, 810, 189, 190, 811, 889, 890, 770, 916, 820, 821, 822, 791, + 937, 771, 938, 939, 193, 1138, 772, 935, 936, 1005, 1034, 1035, 1452, 3799, 1567, 993, 773, + 994, 1466, 1460, 774, 187, 188, 189, 190, 191, 1568, 1725, 1082, 3809, 1835, 192, 1085, 193, + 1865, 2769, 2770, 1599, 3910, 3115, 1567, 3116, 1661, 1087, 3928, 3954, 193, 3224, 791, 1890, + 3454, 3929, 1621, 1113, 1569, 2827, 1074, 3641, 1475, 3136, 1075, 2851, 1600, 1431, 902, 903, + 904, 193, 2828, 1076, 2665, 1490, 1491, 1476, 1478, 3137, 1077, 648, 2684, 2858, 1622, 1078, + 2764, 2979, 924, 925, 1117, 1190, 1191, 1427, 2027, 927, 925, 3930, 3011, 1079, 187, 188, 189, + 190, 191, 1441, 902, 903, 904, 3774, 192, 1436, 1367, 3912, 1380, 2034, 3019, 877, 1359, 1363, + 847, 2043, 848, 3931, 849, 1604, 850, 1681, 851, 1364, 852, 853, 854, 1360, 855, 856, 857, + 1371, 858, 859, 1361, 1376, 1370, 860, 912, 913, 193, 3619, 1378, 2710, 1389, 1390, 3646, 1393, + 1040, 2627, 1041, 2628, 1101, 2762, 1529, 2577, 1526, 1527, 1528, 1529, 3805, 1682, 3704, 1683, + 3936, 4242, 2711, 3961, 649, 658, 805, 2810, 2717, 1239, 806, 4003, 707, 718, 658, 3647, 650, + 651, 1158, 1159, 659, 652, 653, 654, 759, 660, 653, 659, 2693, 659, 823, 3234, 660, 653, 660, + 653, 3147, 802, 3522, 659, 2589, 658, 660, 653, 660, 653, 792, 804, 793, 864, 1072, 3526, 660, + 653, 660, 653, 659, 813, 814, 1216, 815, 660, 653, 1145, 1146, 660, 653, 816, 814, 792, 815, + 1205, 1396, 866, 1219, 660, 653, 817, 814, 792, 815, 1210, 792, 861, 1220, 660, 653, 862, 659, + 654, 658, 1418, 1824, 660, 653, 792, 872, 793, 880, 1425, 2035, 660, 653, 660, 653, 659, 1434, + 887, 718, 880, 660, 653, 660, 653, 660, 653, 880, 926, 914, 1438, 884, 660, 653, 918, 926, 660, + 653, 2571, 660, 653, 2575, 952, 659, 995, 996, 915, 948, 660, 653, 659, 660, 653, 1018, 913, + 660, 653, 659, 1152, 650, 651, 2030, 660, 653, 652, 653, 654, 950, 956, 950, 2071, 950, 660, + 653, 660, 653, 660, 653, 2586, 960, 1108, 967, 968, 659, 975, 660, 653, 3236, 660, 653, 969, + 961, 651, 970, 971, 972, 652, 653, 962, 999, 1040, 915, 1456, 1003, 1004, 1184, 660, 653, 2031, + 960, 1001, 1040, 969, 1572, 659, 970, 971, 972, 997, 660, 653, 961, 651, 660, 653, 659, 652, + 653, 962, 1006, 660, 653, 1172, 1159, 960, 1040, 950, 2088, 2587, 1007, 1009, 660, 653, 2090, + 659, 2585, 961, 651, 2590, 660, 653, 652, 653, 962, 659, 1010, 2093, 915, 1013, 660, 653, 2593, + 660, 653, 2596, 1019, 950, 1021, 1176, 1159, 659, 660, 653, 659, 1609, 660, 653, 1028, 660, + 653, 659, 2581, 659, 995, 996, 660, 653, 660, 653, 1025, 1026, 1206, 1213, 1048, 915, 1049, + 1610, 914, 969, 660, 653, 970, 971, 972, 1043, 1044, 1045, 1046, 1080, 2605, 1050, 1839, 1221, + 1086, 915, 660, 653, 950, 1851, 660, 653, 950, 660, 653, 1090, 915, 660, 653, 659, 2606, 660, + 653, 950, 660, 653, 1103, 2599, 660, 653, 659, 1095, 1096, 950, 2646, 660, 653, 1104, 660, 653, + 969, 659, 2649, 970, 971, 972, 660, 653, 997, 2957, 1105, 1096, 659, 660, 653, 1110, 2965, 660, + 653, 969, 2715, 1489, 970, 971, 972, 1114, 950, 1115, 950, 3095, 659, 660, 653, 660, 653, 660, + 653, 1565, 1137, 3100, 659, 1566, 659, 1119, 1096, 660, 653, 660, 653, 1837, 3249, 1150, 969, + 659, 1140, 970, 971, 972, 660, 653, 3250, 960, 993, 1168, 1169, 1141, 659, 3287, 970, 971, 972, + 660, 653, 961, 651, 1161, 1162, 2030, 652, 653, 962, 3027, 3028, 969, 1161, 1174, 970, 971, + 972, 3132, 1161, 1187, 969, 948, 1178, 970, 971, 972, 969, 3244, 3245, 970, 971, 972, 3288, + 650, 651, 1463, 925, 659, 652, 653, 654, 3322, 660, 653, 1469, 1470, 1471, 1153, 1907, 848, + 1873, 849, 1180, 850, 3329, 851, 1196, 852, 853, 854, 3332, 855, 856, 857, 1842, 858, 859, 659, + 1193, 1194, 860, 659, 660, 653, 3342, 2022, 660, 653, 1202, 1044, 1045, 1046, 763, 3333, 659, + 764, 3334, 1390, 765, 660, 653, 1235, 913, 1236, 1153, 792, 848, 1605, 849, 658, 850, 993, 851, + 1846, 852, 853, 854, 3133, 855, 856, 857, 1454, 858, 859, 659, 3389, 1040, 860, 2582, 660, 653, + 1401, 1044, 1045, 1046, 1409, 3350, 3365, 915, 3391, 660, 653, 3397, 660, 653, 809, 810, 189, + 190, 811, 1495, 913, 1372, 1496, 849, 1874, 850, 792, 851, 1605, 852, 853, 854, 3394, 855, 856, + 857, 3366, 858, 859, 3429, 1047, 3431, 860, 970, 971, 972, 1428, 1429, 1235, 913, 1457, 1458, + 1044, 1045, 1046, 1483, 880, 1484, 1485, 861, 193, 660, 653, 862, 915, 654, 1911, 3335, 1390, + 660, 653, 960, 3418, 1486, 2617, 1487, 1488, 1489, 1847, 660, 653, 1140, 3435, 961, 651, 1546, + 913, 1848, 652, 653, 962, 3437, 1141, 3439, 880, 970, 971, 972, 3440, 660, 653, 1538, 3475, + 880, 3480, 3476, 861, 960, 660, 653, 862, 3487, 654, 926, 914, 3488, 659, 2000, 2001, 961, 651, + 660, 653, 3518, 652, 653, 962, 1608, 659, 3493, 3847, 915, 3813, 660, 653, 3556, 660, 653, + 1468, 1044, 1045, 1046, 4004, 1830, 915, 1816, 1831, 1567, 1949, 660, 653, 3817, 861, 995, 996, + 880, 862, 1326, 654, 1638, 660, 653, 1817, 914, 1818, 1819, 1820, 1821, 3927, 3351, 3849, 792, + 1472, 1214, 1871, 2642, 950, 3259, 3260, 3955, 915, 660, 653, 1947, 1191, 660, 653, 1639, 4005, + 915, 1719, 915, 914, 4006, 660, 653, 660, 653, 950, 4008, 2817, 1840, 2623, 660, 653, 659, + 4011, 660, 653, 915, 660, 653, 4012, 950, 660, 653, 659, 3852, 660, 653, 950, 660, 653, 4014, + 948, 660, 653, 997, 3635, 914, 3261, 1598, 660, 653, 4070, 1047, 650, 651, 970, 971, 972, 652, + 653, 654, 1951, 2938, 915, 1327, 2941, 4079, 1328, 660, 653, 1329, 1330, 1331, 4077, 1332, + 1333, 1334, 857, 4088, 1335, 1336, 995, 996, 1832, 1337, 1338, 1905, 1339, 1340, 1341, 1203, + 1342, 3769, 4092, 768, 1047, 4089, 769, 970, 971, 972, 2004, 2001, 915, 1852, 4097, 770, 4126, + 660, 653, 4175, 1326, 3855, 771, 2643, 1343, 1344, 1345, 772, 659, 937, 1346, 2685, 939, 660, + 653, 4146, 1853, 773, 820, 821, 822, 774, 187, 188, 189, 190, 191, 2624, 1347, 960, 4186, 659, + 192, 1348, 1909, 1047, 660, 653, 970, 971, 972, 961, 651, 4178, 997, 1856, 652, 653, 962, 660, + 653, 915, 4188, 2636, 1866, 193, 660, 653, 4226, 1349, 659, 1350, 1351, 1352, 4172, 660, 653, + 1599, 193, 659, 1353, 1354, 1355, 1356, 660, 653, 2565, 996, 2566, 950, 2567, 4217, 1357, 651, + 660, 653, 802, 652, 653, 654, 1327, 660, 653, 1328, 4173, 1565, 1329, 1330, 1331, 1566, 1332, + 1333, 1334, 857, 4230, 1335, 1336, 902, 2823, 904, 1337, 1338, 4233, 1339, 1340, 1341, 1914, + 1342, 2725, 3856, 2942, 2020, 1047, 660, 653, 970, 971, 972, 650, 651, 1987, 3837, 3028, 652, + 653, 654, 4234, 1326, 3614, 3615, 3616, 1343, 1344, 1345, 1841, 3350, 848, 1346, 849, 3041, + 850, 1918, 851, 4235, 852, 853, 854, 1393, 855, 856, 857, 4245, 858, 859, 960, 1347, 659, 860, + 3838, 3028, 1348, 660, 653, 960, 950, 2619, 961, 651, 4262, 660, 653, 652, 653, 962, 3755, 961, + 651, 3860, 2814, 1908, 652, 653, 962, 660, 653, 937, 1349, 2686, 939, 1423, 1352, 2708, 2709, + 1487, 1488, 1489, 915, 1353, 1354, 1355, 1356, 660, 653, 3861, 3839, 3028, 950, 3862, 3237, + 1357, 651, 660, 653, 1989, 652, 653, 654, 1327, 4265, 937, 1328, 2690, 939, 1329, 1330, 1331, + 4263, 1332, 1333, 1334, 857, 193, 1335, 1336, 2901, 1991, 4264, 1337, 1338, 1993, 1339, 1340, + 1341, 1850, 1342, 848, 4266, 849, 3864, 850, 1833, 851, 4268, 852, 853, 854, 4279, 855, 856, + 857, 4282, 858, 859, 1916, 1326, 193, 860, 861, 1343, 1344, 1345, 862, 1917, 654, 1346, 650, + 651, 1995, 3865, 1996, 652, 653, 654, 4297, 650, 651, 3984, 3985, 950, 652, 653, 654, 1347, + 660, 653, 3850, 4290, 1348, 1858, 4180, 848, 3513, 849, 1997, 850, 4299, 851, 1999, 852, 853, + 854, 4307, 855, 856, 857, 4305, 858, 859, 1920, 3780, 3781, 860, 1598, 1349, 950, 1424, 1351, + 1352, 658, 660, 653, 2824, 4322, 659, 1353, 1354, 1355, 1356, 660, 653, 4323, 3866, 3850, 659, + 3994, 3995, 1357, 651, 660, 653, 3456, 652, 653, 654, 1327, 660, 653, 1328, 4325, 3729, 1329, + 1330, 1331, 4341, 1332, 1333, 1334, 857, 3515, 1335, 1336, 2679, 4053, 4054, 1337, 1461, 861, + 1339, 1340, 1341, 862, 1342, 654, 4342, 950, 1161, 1955, 4359, 2827, 660, 653, 1161, 2023, 969, + 4066, 4072, 970, 971, 972, 969, 4365, 2907, 970, 971, 972, 1343, 1344, 1345, 2869, 1467, 60, + 1346, 4368, 2002, 1462, 61, 62, 4439, 660, 653, 3850, 658, 63, 64, 4372, 65, 66, 67, 68, 1347, + 69, 861, 4386, 70, 1348, 862, 659, 654, 2721, 4388, 2644, 660, 653, 658, 4441, 71, 792, 658, + 1605, 2959, 72, 73, 1599, 4401, 74, 75, 76, 1565, 659, 4452, 1349, 1566, 659, 660, 653, 4231, + 3028, 660, 653, 1034, 4267, 1353, 1354, 1355, 1356, 4445, 77, 2024, 4446, 78, 79, 4281, 4468, + 1357, 651, 658, 4461, 658, 652, 653, 654, 792, 659, 1605, 792, 80, 1605, 660, 653, 3004, 659, + 4462, 659, 2985, 4447, 660, 653, 660, 653, 4269, 1390, 658, 792, 1140, 1605, 658, 2021, 1429, + 995, 996, 2986, 2565, 996, 2566, 1141, 2567, 659, 970, 971, 972, 659, 660, 653, 4463, 915, 660, + 653, 4472, 3850, 660, 653, 3129, 2603, 792, 2645, 1605, 81, 4474, 4281, 82, 83, 2892, 4492, 84, + 1598, 2660, 85, 86, 87, 1817, 4495, 1818, 1819, 1820, 1821, 2987, 88, 4497, 2988, 926, 2021, + 1429, 915, 89, 4499, 90, 91, 660, 653, 92, 2002, 4309, 93, 94, 659, 660, 653, 95, 915, 660, + 653, 4532, 997, 660, 653, 4505, 96, 660, 653, 2568, 97, 98, 99, 4525, 2569, 100, 3850, 101, + 102, 103, 104, 2607, 4518, 848, 792, 849, 3770, 850, 105, 851, 106, 852, 853, 854, 4566, 855, + 856, 857, 3827, 858, 859, 1598, 3850, 1040, 860, 4227, 3850, 1161, 2610, 4576, 107, 4579, 2680, + 1194, 108, 969, 109, 110, 970, 971, 972, 754, 1731, 2712, 2713, 1484, 1485, 111, 659, 112, 792, + 4582, 1605, 660, 653, 4583, 113, 114, 1161, 2620, 115, 116, 117, 118, 119, 2722, 969, 3850, + 2608, 970, 971, 972, 4587, 120, 1599, 121, 4585, 122, 1140, 792, 123, 1605, 915, 4345, 124, + 125, 1598, 660, 653, 1141, 4589, 3758, 970, 971, 972, 126, 127, 3850, 4594, 1495, 913, 128, + 2720, 4607, 1140, 2718, 129, 1484, 1485, 4615, 1495, 913, 3916, 2723, 792, 1141, 1605, 130, + 970, 971, 972, 2804, 3042, 2719, 4527, 1487, 1488, 1489, 2761, 1527, 1528, 1529, 2845, 4610, + 861, 3043, 659, 4616, 862, 4620, 654, 660, 653, 4639, 2802, 2803, 1070, 2846, 2847, 131, 2827, + 1599, 132, 133, 134, 2759, 902, 903, 904, 135, 3850, 4650, 136, 2931, 137, 950, 138, 4632, 139, + 140, 660, 653, 3110, 141, 142, 4661, 880, 143, 4663, 144, 145, 660, 653, 4665, 146, 147, 148, + 3197, 2001, 149, 150, 151, 152, 153, 3761, 2836, 3060, 2920, 2912, 2913, 154, 4683, 155, 156, + 157, 158, 2974, 913, 4370, 4371, 1326, 159, 915, 160, 161, 4686, 1599, 660, 653, 3125, 162, + 163, 164, 4642, 4643, 165, 166, 167, 168, 4714, 169, 170, 4690, 171, 172, 4695, 173, 174, 4708, + 175, 2865, 4712, 950, 914, 4627, 3985, 763, 660, 653, 764, 3103, 176, 765, 177, 914, 4721, 178, + 915, 179, 180, 915, 4722, 660, 653, 2902, 660, 653, 3104, 181, 2903, 182, 915, 2893, 3211, + 3212, 183, 660, 653, 4727, 659, 184, 1326, 4773, 950, 660, 653, 915, 1393, 660, 653, 185, 660, + 653, 4785, 186, 187, 188, 189, 190, 191, 1327, 3105, 1040, 1328, 3730, 192, 1329, 1330, 1331, + 2933, 1332, 1333, 1334, 857, 4776, 1335, 1336, 2936, 3061, 3062, 1337, 1732, 1907, 1339, 1340, + 1341, 915, 1342, 2912, 2917, 4795, 660, 653, 703, 915, 4816, 3106, 950, 4818, 660, 653, 193, + 660, 653, 3917, 4820, 2912, 2921, 4821, 3033, 914, 1343, 1344, 1345, 950, 4642, 4645, 1346, + 4824, 660, 653, 1733, 1734, 4402, 659, 2914, 4831, 915, 1326, 660, 653, 1327, 660, 653, 1328, + 1347, 4837, 1329, 1330, 1331, 1348, 1332, 1333, 1334, 857, 4849, 1335, 1336, 3614, 3888, 3889, + 1337, 1822, 2989, 1339, 1340, 1341, 4850, 1342, 950, 4851, 3005, 950, 4843, 660, 653, 1349, + 660, 653, 969, 915, 4852, 970, 971, 972, 660, 653, 1353, 1354, 1355, 1356, 3009, 1343, 1344, + 1345, 1044, 3031, 1046, 1346, 1357, 1735, 3850, 4066, 4707, 652, 653, 654, 3084, 915, 3064, + 1527, 1528, 1529, 660, 653, 969, 1347, 1824, 970, 971, 972, 1348, 4856, 1823, 2652, 2653, 4857, + 2654, 1327, 4861, 1831, 1328, 1145, 3149, 1329, 1330, 1331, 4870, 1332, 1333, 1334, 857, 3150, + 1335, 1336, 3032, 4881, 1349, 1337, 1461, 4876, 1339, 1340, 1341, 4901, 1342, 754, 4893, 1353, + 1354, 1355, 1356, 915, 4276, 996, 2914, 4277, 660, 653, 4873, 1357, 651, 3069, 4895, 3034, 652, + 653, 654, 2915, 1343, 1344, 1345, 3078, 2914, 4908, 1346, 1326, 659, 1982, 4912, 4931, 915, + 660, 653, 4944, 2916, 660, 653, 4945, 915, 660, 653, 4633, 1347, 660, 653, 4956, 2897, 1348, + 848, 4970, 849, 5004, 850, 5006, 851, 5013, 852, 853, 854, 3180, 855, 856, 857, 4416, 858, 859, + 1598, 1985, 5010, 860, 792, 768, 5011, 1349, 769, 950, 2658, 2653, 5056, 2654, 660, 653, 1831, + 770, 1353, 1354, 1355, 1356, 950, 2655, 771, 4937, 4938, 660, 653, 772, 1357, 651, 3465, 3466, + 1070, 652, 653, 654, 5014, 773, 5048, 3179, 1191, 774, 187, 188, 189, 190, 191, 1327, 4980, + 4981, 1328, 5015, 192, 1329, 1330, 1331, 5055, 1332, 1333, 1334, 857, 5020, 1335, 1336, 5074, + 3101, 4526, 1337, 2036, 5069, 1339, 1340, 1341, 969, 1342, 5091, 970, 971, 972, 2915, 5084, + 950, 792, 5094, 1605, 3130, 660, 653, 193, 5098, 660, 653, 4595, 4596, 5102, 3184, 2916, 2915, + 1343, 1344, 1345, 660, 653, 3134, 1346, 2060, 810, 189, 190, 811, 5104, 861, 4556, 4557, 2916, + 862, 4558, 654, 659, 660, 653, 5106, 1347, 660, 653, 3005, 2037, 1348, 1599, 2912, 3080, 3343, + 3113, 969, 2655, 950, 970, 971, 972, 3213, 660, 653, 5111, 1047, 660, 653, 970, 971, 972, 915, + 5064, 193, 950, 1349, 660, 653, 5117, 660, 653, 3152, 1161, 3158, 5119, 1326, 1353, 1354, 1355, + 1356, 969, 3172, 5068, 970, 971, 972, 659, 5129, 1357, 651, 5142, 660, 653, 652, 653, 654, 659, + 792, 950, 1605, 5133, 660, 653, 660, 653, 5141, 2848, 1327, 5151, 4526, 1328, 660, 653, 1329, + 1330, 1331, 5152, 1332, 1333, 1334, 857, 5155, 1335, 1336, 5159, 3126, 5158, 1337, 2061, 5160, + 1339, 1340, 1341, 950, 1342, 3173, 5162, 3450, 660, 653, 2002, 5181, 915, 3177, 5185, 660, 653, + 660, 653, 3063, 659, 1818, 1819, 1820, 1821, 660, 653, 5165, 1343, 1344, 1345, 4379, 1326, + 5188, 1346, 1327, 5190, 2062, 1328, 4380, 4381, 1329, 1330, 1331, 5240, 1332, 1333, 1334, 857, + 5199, 1335, 1336, 1347, 948, 3157, 1337, 2064, 1348, 1339, 1340, 1341, 5213, 1342, 948, 3182, + 650, 651, 5218, 880, 5219, 652, 653, 654, 660, 653, 650, 651, 5249, 2914, 659, 652, 653, 654, + 1349, 660, 653, 1343, 1344, 1345, 5266, 1326, 3159, 1346, 5288, 1353, 1354, 1355, 1356, 5273, + 969, 5291, 3187, 970, 971, 972, 3087, 1357, 651, 1161, 3170, 1347, 652, 653, 654, 5293, 1348, + 969, 5296, 915, 970, 971, 972, 1327, 660, 653, 1328, 3455, 801, 1329, 1330, 1331, 5297, 1332, + 1333, 1334, 857, 5314, 1335, 1336, 4984, 4985, 1349, 1337, 2066, 5315, 1339, 1340, 1341, 5316, + 1342, 1161, 3176, 1353, 1354, 1355, 1356, 5071, 5072, 969, 5328, 4382, 970, 971, 972, 1357, + 651, 5061, 3028, 3088, 652, 653, 654, 5299, 1343, 1344, 1345, 792, 1326, 1605, 1346, 1327, + 3205, 1191, 1328, 5332, 3189, 1329, 1330, 1331, 5338, 1332, 1333, 1334, 857, 5344, 1335, 1336, + 1347, 3096, 5123, 1337, 2067, 1348, 1339, 1340, 1341, 993, 1342, 3167, 5355, 3156, 1159, 5370, + 3169, 1159, 5301, 5136, 950, 3116, 1661, 3638, 2915, 660, 653, 2712, 3524, 1484, 1485, 1349, + 5372, 3089, 1343, 1344, 1345, 4217, 1326, 5279, 1346, 2916, 1353, 1354, 1355, 1356, 660, 653, + 5184, 3995, 3181, 1194, 5149, 5150, 1357, 651, 5378, 4954, 1347, 652, 653, 654, 3534, 1348, + 5382, 5383, 659, 660, 653, 950, 1327, 660, 653, 1328, 660, 653, 1329, 1330, 1331, 5302, 1332, + 1333, 1334, 857, 3183, 1335, 1336, 3171, 1159, 1349, 1337, 2073, 5395, 1339, 1340, 1341, 3090, + 1342, 3541, 659, 1353, 1354, 1355, 1356, 660, 653, 969, 3220, 1191, 970, 971, 972, 1357, 651, + 993, 3166, 1169, 652, 653, 654, 5396, 1343, 1344, 1345, 950, 1326, 5399, 1346, 1327, 660, 653, + 1328, 5400, 5426, 1329, 1330, 1331, 4597, 1332, 1333, 1334, 857, 5423, 1335, 1336, 1347, 5424, + 5303, 1337, 2573, 1348, 1339, 1340, 1341, 3448, 1342, 792, 1140, 1605, 4383, 950, 3204, 1194, + 5362, 3850, 660, 653, 5363, 1141, 659, 3091, 970, 971, 972, 660, 653, 1349, 659, 5427, 1343, + 1344, 1345, 660, 653, 3850, 1346, 3913, 1353, 1354, 1355, 1356, 5196, 3092, 5436, 5437, 3190, + 658, 5305, 5376, 1357, 651, 5438, 5445, 1347, 652, 653, 654, 5448, 1348, 5449, 5450, 659, 1326, + 5306, 5463, 1327, 660, 653, 1328, 3208, 1159, 1329, 1330, 1331, 5468, 1332, 1333, 1334, 857, + 5307, 1335, 1336, 2687, 2688, 1349, 1337, 1461, 960, 1339, 1340, 1341, 5308, 1342, 3214, 1159, + 1353, 1354, 1355, 1356, 961, 651, 5469, 5309, 5475, 652, 653, 962, 1357, 651, 3215, 1159, 5477, + 652, 653, 654, 3447, 1343, 1344, 1345, 792, 1140, 1605, 1346, 5483, 3337, 2584, 1818, 1819, + 1820, 1821, 3191, 1141, 915, 5488, 970, 971, 972, 660, 653, 792, 1347, 3770, 5490, 995, 996, + 1348, 5491, 3093, 3192, 5371, 3753, 5496, 1327, 1598, 5503, 1328, 5494, 3193, 1329, 1330, 1331, + 5498, 1332, 1333, 1334, 857, 5515, 1335, 1336, 5484, 5150, 1349, 1337, 2689, 5511, 1339, 1340, + 1341, 3005, 1342, 5517, 5431, 1353, 1354, 1355, 1356, 969, 3500, 5519, 970, 971, 972, 3209, + 1194, 1357, 651, 5520, 3217, 1429, 652, 653, 654, 1326, 1343, 1344, 1345, 802, 3194, 659, 1346, + 5522, 660, 653, 660, 653, 915, 5523, 997, 5544, 3662, 660, 653, 660, 653, 660, 653, 5557, 1347, + 2700, 2937, 5545, 849, 1348, 850, 3607, 851, 5432, 852, 853, 854, 5564, 855, 856, 857, 960, + 858, 859, 960, 995, 996, 860, 5300, 5575, 658, 3754, 1661, 961, 651, 1349, 961, 651, 652, 653, + 962, 652, 653, 962, 5607, 659, 1353, 1354, 1355, 1356, 660, 653, 3216, 1194, 4642, 5508, 950, + 5609, 1357, 651, 1599, 660, 653, 652, 653, 654, 5610, 5612, 659, 1327, 5632, 5300, 1328, 660, + 653, 1329, 1330, 1331, 5433, 1332, 1333, 1334, 857, 5615, 1335, 1336, 3229, 913, 3473, 1337, + 2701, 3495, 1339, 1340, 1341, 960, 1342, 5380, 3557, 997, 5636, 1469, 1470, 3486, 660, 653, + 969, 961, 651, 970, 971, 972, 652, 653, 962, 658, 3218, 1429, 1326, 5643, 1343, 1344, 1345, + 2739, 2740, 2741, 1346, 2742, 5650, 2743, 659, 2744, 5300, 658, 915, 660, 653, 861, 3294, 660, + 653, 862, 658, 654, 1347, 2704, 2705, 3449, 659, 1348, 3130, 3219, 1194, 660, 653, 660, 653, + 659, 5570, 3028, 3810, 5434, 660, 653, 915, 660, 653, 659, 5644, 660, 653, 2831, 660, 653, + 3442, 1349, 2832, 2740, 2741, 950, 2742, 3451, 3452, 801, 660, 653, 1353, 1354, 1355, 1356, + 5645, 1817, 658, 1818, 1819, 1820, 1821, 5659, 1357, 651, 5300, 1731, 5668, 652, 653, 654, + 1326, 659, 1327, 4025, 4026, 1328, 660, 653, 1329, 1330, 1331, 5608, 1332, 1333, 1334, 857, + 5662, 1335, 1336, 5676, 3477, 960, 1337, 2706, 914, 2707, 1340, 1341, 5682, 1342, 3812, 5605, + 3028, 961, 651, 660, 653, 915, 652, 653, 962, 915, 660, 653, 5300, 960, 660, 653, 2708, 3523, + 1487, 1488, 1489, 1343, 1344, 1345, 5678, 961, 651, 1346, 5300, 960, 652, 653, 962, 2848, 1731, + 5679, 3519, 1429, 660, 653, 3474, 961, 651, 5698, 5300, 1347, 652, 653, 962, 5700, 1348, 2565, + 996, 2566, 915, 2567, 5300, 915, 1327, 660, 653, 1328, 660, 653, 1329, 1330, 1331, 5300, 1332, + 1333, 1334, 857, 5703, 1335, 1336, 5704, 1349, 3542, 1337, 1461, 1565, 1339, 1340, 1341, 1566, + 1342, 5709, 1353, 1354, 1355, 1356, 3652, 659, 1469, 1470, 3494, 5684, 660, 653, 1357, 651, + 4951, 1472, 5711, 652, 653, 654, 3543, 915, 1343, 1344, 1345, 1472, 660, 653, 1346, 5712, 5715, + 2727, 915, 5731, 1731, 659, 5732, 660, 653, 5739, 660, 653, 915, 792, 1326, 1605, 1347, 660, + 653, 3530, 792, 1348, 1605, 5742, 4952, 2745, 4953, 848, 5747, 849, 3558, 850, 3850, 851, 5749, + 852, 853, 854, 5751, 855, 856, 857, 5755, 858, 859, 659, 5769, 1349, 860, 5788, 660, 653, 3531, + 187, 188, 189, 190, 811, 1353, 1354, 1355, 1356, 4016, 5778, 3536, 3537, 3538, 995, 996, 5804, + 1357, 651, 4217, 5819, 5586, 652, 653, 654, 2745, 5823, 848, 4954, 849, 5844, 850, 1326, 851, + 3850, 852, 853, 854, 5848, 855, 856, 857, 5860, 858, 859, 5862, 193, 950, 860, 5861, 4300, + 1327, 660, 653, 1328, 660, 653, 1329, 1330, 1331, 3674, 1332, 1333, 1334, 857, 3559, 1335, + 1336, 5699, 5437, 5863, 1337, 1732, 5864, 1339, 1340, 1341, 915, 1342, 3560, 659, 5869, 660, + 653, 3702, 660, 653, 969, 997, 5872, 970, 971, 972, 660, 653, 3561, 2565, 996, 2566, 3850, + 2567, 915, 1343, 1344, 1345, 2746, 660, 653, 1346, 862, 659, 654, 3020, 1734, 5871, 660, 653, + 5874, 3914, 1326, 5879, 3806, 1327, 660, 653, 1328, 1347, 5215, 1329, 1330, 1331, 1348, 1332, + 1333, 1334, 857, 3154, 1335, 1336, 3562, 3563, 5875, 1337, 1732, 5881, 1339, 1340, 1341, 969, + 1342, 4679, 970, 971, 972, 659, 660, 653, 1349, 2746, 660, 653, 792, 862, 3770, 654, 3572, + 3452, 801, 1353, 1354, 1355, 1356, 1472, 1343, 1344, 1345, 5756, 5150, 3565, 1346, 1357, 1735, + 3850, 3021, 1734, 652, 653, 654, 5886, 915, 3566, 5901, 4678, 659, 660, 653, 5867, 1347, 660, + 653, 5363, 802, 1348, 5792, 5793, 659, 660, 653, 3175, 1327, 660, 653, 1328, 3974, 4644, 1329, + 1330, 1331, 5910, 1332, 1333, 1334, 857, 3577, 1335, 1336, 5911, 3599, 1349, 1337, 1732, 5912, + 1339, 1340, 1341, 5300, 1342, 5916, 659, 1353, 1354, 1355, 1356, 660, 653, 5918, 5885, 763, + 3603, 3539, 764, 1357, 1735, 765, 660, 653, 652, 653, 654, 3580, 1343, 1344, 1345, 3575, 3452, + 801, 1346, 3807, 5917, 5919, 3582, 3023, 660, 653, 659, 5784, 5785, 5786, 969, 660, 653, 970, + 971, 972, 1347, 5923, 3036, 5925, 848, 1348, 849, 3583, 850, 3584, 851, 5938, 852, 853, 854, + 5941, 855, 856, 857, 3587, 858, 859, 659, 3596, 659, 860, 3588, 660, 653, 660, 653, 1349, 5940, + 5946, 659, 3568, 3593, 5943, 1831, 660, 653, 659, 1353, 1354, 1355, 1356, 660, 653, 792, 5947, + 3770, 659, 5957, 3604, 1357, 1735, 660, 653, 5948, 652, 653, 654, 3047, 1612, 848, 5952, 849, + 792, 850, 1605, 851, 3850, 852, 853, 854, 5955, 855, 856, 857, 5959, 858, 859, 3065, 5954, 848, + 860, 849, 5958, 850, 5961, 851, 5968, 852, 853, 854, 5972, 855, 856, 857, 5962, 858, 859, 3139, + 5969, 848, 860, 849, 3608, 850, 3625, 851, 5983, 852, 853, 854, 5985, 855, 856, 857, 5987, 858, + 859, 659, 5990, 659, 860, 6002, 660, 653, 660, 653, 6019, 3151, 6035, 848, 861, 849, 6037, 850, + 862, 851, 654, 852, 853, 854, 6043, 855, 856, 857, 6052, 858, 859, 3690, 3691, 993, 860, 3602, + 6054, 3569, 6055, 5539, 5540, 1153, 5541, 848, 6056, 849, 6059, 850, 6067, 851, 6057, 852, 853, + 854, 3756, 855, 856, 857, 3624, 858, 859, 3617, 913, 6058, 860, 6068, 969, 5956, 5150, 970, + 971, 972, 6077, 3155, 861, 848, 4929, 849, 862, 850, 654, 851, 6078, 852, 853, 854, 6083, 855, + 856, 857, 6084, 858, 859, 3174, 861, 848, 860, 849, 862, 850, 654, 851, 6099, 852, 853, 854, + 6090, 855, 856, 857, 6091, 858, 859, 1153, 861, 848, 860, 849, 862, 850, 654, 851, 3633, 852, + 853, 854, 3639, 855, 856, 857, 6101, 858, 859, 5805, 5540, 5806, 860, 659, 799, 3452, 801, 659, + 660, 653, 861, 3627, 660, 653, 862, 6107, 654, 1438, 5980, 5786, 3188, 3631, 1096, 6106, 768, + 6113, 659, 769, 3782, 1326, 969, 660, 653, 970, 971, 972, 770, 3650, 6114, 4409, 861, 6093, + 1661, 771, 862, 915, 654, 3651, 772, 6116, 660, 653, 660, 653, 802, 5932, 5933, 5934, 773, 660, + 653, 6117, 774, 187, 188, 189, 190, 191, 960, 2002, 6124, 914, 861, 192, 660, 653, 862, 3213, + 654, 6118, 961, 651, 660, 653, 3649, 652, 653, 962, 915, 960, 6115, 5150, 861, 660, 653, 6130, + 862, 6125, 654, 659, 3653, 961, 651, 4800, 660, 653, 652, 653, 962, 193, 4642, 6132, 861, 6138, + 6135, 659, 862, 1326, 654, 1327, 660, 653, 1328, 6141, 6162, 1329, 1330, 1331, 3783, 1332, + 1333, 1334, 857, 6163, 1335, 1336, 948, 6164, 6178, 1337, 1461, 6180, 1339, 1340, 1341, 915, + 1342, 3655, 650, 651, 660, 653, 802, 652, 653, 654, 6196, 660, 653, 6175, 6176, 3445, 659, + 6192, 6193, 1075, 6200, 660, 653, 6198, 1343, 1344, 1345, 6202, 1076, 6203, 1346, 4220, 960, + 3238, 4221, 1077, 6204, 995, 996, 6209, 1078, 4801, 1326, 6205, 961, 651, 660, 653, 1347, 652, + 653, 962, 6232, 1348, 1079, 187, 188, 189, 190, 191, 6224, 1327, 6225, 6233, 1328, 192, 6234, + 1329, 1330, 1331, 6236, 1332, 1333, 1334, 857, 4193, 1335, 1336, 6240, 1349, 6242, 1337, 1461, + 3908, 1339, 1340, 1341, 6245, 1342, 6262, 1353, 1354, 1355, 1356, 3678, 3679, 3680, 3681, 6230, + 4981, 915, 193, 1357, 651, 3658, 660, 653, 652, 653, 654, 6280, 997, 1343, 1344, 1345, 6287, + 660, 653, 1346, 659, 6275, 3240, 6235, 5150, 660, 653, 3241, 3242, 6297, 1326, 3713, 3714, + 1327, 3759, 6298, 1328, 1347, 6299, 1329, 1330, 1331, 1348, 1332, 1333, 1334, 857, 6301, 1335, + 1336, 3660, 1161, 3632, 1337, 3246, 6308, 1339, 1340, 1341, 969, 1342, 4194, 970, 971, 972, + 659, 660, 653, 1349, 6310, 660, 653, 3881, 3668, 1818, 1819, 1820, 1821, 6311, 1353, 1354, + 1355, 1356, 6312, 1343, 1344, 1345, 6313, 659, 3671, 1346, 1357, 651, 660, 653, 4261, 652, 653, + 654, 3854, 4222, 1326, 6318, 3683, 659, 660, 653, 6322, 1347, 660, 653, 969, 915, 1348, 970, + 971, 972, 660, 653, 950, 1327, 6354, 6352, 1328, 660, 653, 1329, 1330, 1331, 6356, 1332, 1333, + 1334, 857, 3684, 1335, 1336, 4302, 4303, 1349, 1337, 1461, 6357, 1339, 1340, 1341, 6358, 1342, + 6360, 659, 1353, 1354, 1355, 1356, 660, 653, 2712, 5843, 1484, 1485, 4811, 3694, 1357, 651, + 3697, 660, 653, 652, 653, 654, 6359, 1343, 1344, 1345, 6268, 5540, 659, 1346, 6361, 659, 3247, + 660, 653, 6362, 660, 653, 6363, 802, 1326, 6366, 6367, 1327, 660, 653, 1328, 1347, 6377, 1329, + 1330, 1331, 1348, 1332, 1333, 1334, 857, 6394, 1335, 1336, 792, 1140, 1605, 1337, 1461, 3707, + 1339, 1340, 1341, 6395, 1342, 6397, 1141, 6425, 6399, 970, 971, 972, 1349, 6410, 659, 6422, + 4826, 6426, 3708, 660, 653, 660, 653, 1353, 1354, 1355, 1356, 6423, 1343, 1344, 1345, 6427, + 1326, 659, 1346, 1357, 651, 3262, 660, 653, 652, 653, 654, 3712, 6435, 3716, 3725, 913, 6437, + 6436, 3721, 969, 1347, 6416, 970, 971, 972, 1348, 969, 6441, 659, 970, 971, 972, 1327, 660, + 653, 1328, 6438, 6442, 1329, 1330, 1331, 6450, 1332, 1333, 1334, 857, 6451, 1335, 1336, 4880, + 3538, 1349, 1337, 1461, 6455, 1339, 1340, 1341, 6462, 1342, 6452, 3028, 1353, 1354, 1355, 1356, + 3692, 3722, 1818, 1819, 1820, 1821, 2848, 6465, 1357, 651, -1, 660, 653, 652, 653, 654, 659, + 1343, 1344, 1345, -1, 660, 653, 1346, 1327, -1, 3263, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, + 1333, 1334, 857, -1, 1335, 1336, 1347, -1, -1, 1337, 3264, 1348, 1339, 1340, 1341, 3723, 1342, + -1, 3732, 6417, 3715, 1438, 1818, 1819, 1820, 1821, 3539, -1, 5857, -1, 659, 660, 653, 659, -1, + 660, 653, 1349, 660, 653, 1343, 1344, 1345, 5858, 5623, 5624, 1346, -1, 1353, 1354, 1355, 1356, + 3267, 3268, 189, 190, 811, 914, -1, -1, 1357, 651, -1, -1, 1347, 652, 653, 654, -1, 1348, 4935, + 6241, 3733, 3731, 915, 660, 653, -1, -1, 660, 653, 969, -1, 3265, 970, 971, 972, 659, 3734, + 1096, -1, -1, 660, 653, -1, 1349, -1, 969, 193, 4410, 970, 971, 972, 3744, 660, 653, 1353, + 1354, 1355, 1356, 1326, 969, 3745, -1, 970, 971, 972, -1, 1357, 651, 3746, 3867, -1, 652, 653, + 654, 1438, 659, 5805, 5540, 6152, 950, 660, 653, -1, 659, 660, 653, 4959, -1, 660, 653, 1327, + 660, 653, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, 3750, + 3749, 3757, 1337, 3264, -1, 1339, 1340, 1341, 969, 1342, 1731, 970, 971, 972, 659, -1, 659, + 3760, -1, 660, 653, 660, 653, -1, 3682, 3539, 1818, 1819, 1820, 1821, 660, 653, 659, 1343, + 1344, 1345, 950, 660, 653, 1346, 1327, 660, 653, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, + 1333, 1334, 857, 3876, 1335, 1336, 1347, 3762, -1, 1337, 3264, 1348, 1339, 1340, 1341, 969, + 1342, -1, 970, 971, 972, 5008, 3765, -1, 3763, 3269, 660, 653, 4220, 3270, 969, 4804, 3766, + 970, 971, 972, 3271, 1349, 1326, 659, 1343, 1344, 1345, -1, 660, 653, 1346, 659, 1353, 1354, + 1355, 1356, 660, 653, 3943, 187, 188, 189, 190, 811, 1357, 651, -1, -1, 1347, 652, 653, 654, + 4144, 1348, 1818, 1819, 1820, 1821, 3384, -1, 848, 3920, 849, 3767, 850, 3946, 851, 3272, 852, + 853, 854, -1, 855, 856, 857, 3999, 858, 859, 659, 1349, 3775, 860, -1, 660, 653, 193, 3773, + 3818, 3714, -1, 1353, 1354, 1355, 1356, 969, 659, -1, 970, 971, 972, 660, 653, 1357, 651, 6300, + 5933, 5934, 652, 653, 654, -1, 1326, 1327, 5539, 5540, 1328, 6412, -1, 1329, 1330, 1331, -1, + 1332, 1333, 1334, 857, -1, 1335, 1336, 3998, 1191, -1, 1337, 3264, -1, 1339, 1340, 1341, 1372, + 1342, 849, -1, 850, -1, 851, -1, 852, 853, 854, -1, 855, 856, 857, 4001, 858, 859, 3771, 1194, + 4183, 860, 3772, 1194, 3788, 1343, 1344, 1345, -1, 3776, 1194, 1346, 969, -1, 659, 970, 971, + 972, 659, 660, 653, 3777, 4222, 660, 653, 659, -1, 660, 653, 1347, 660, 653, -1, 861, 1348, -1, + 659, 862, 1040, 654, 1041, 660, 653, 1327, -1, -1, 1328, -1, 3273, 1329, 1330, 1331, -1, 1332, + 1333, 1334, 857, -1, 1335, 1336, 1349, 3784, -1, 1337, 3274, 3785, 3275, 1340, 1341, -1, 1342, + 1353, 1354, 1355, 1356, -1, 659, 3786, -1, -1, 659, 660, 653, 1357, 651, 660, 653, 3787, 652, + 653, 654, 1326, 659, -1, 1343, 1344, 1345, 660, 653, -1, 1346, 3814, 659, -1, 3276, 1734, 1565, + 660, 653, 969, 1566, 3546, 970, 971, 972, 862, 4248, 654, 1347, -1, 3598, -1, 848, 1348, 849, + -1, 850, 3789, 851, -1, 852, 853, 854, -1, 855, 856, 857, 3815, 858, 859, -1, 3277, 659, 860, + 3278, 3279, -1, 660, 653, 1349, 3816, 5364, 659, -1, 3819, 5363, -1, 660, 653, -1, 1353, 1354, + 1355, 1356, -1, 659, 3933, 3934, 3935, 659, 660, 653, 1357, 1735, 660, 653, -1, 652, 653, 654, + 950, 1327, -1, -1, 1328, 660, 653, 1329, 1330, 1331, 4247, 1332, 1333, 1334, 857, -1, 1335, + 1336, -1, 1565, -1, 1337, 3280, 1566, 3275, 1340, 1341, 3606, 1342, 848, -1, 849, 5322, 850, + -1, 851, -1, 852, 853, 854, -1, 855, 856, 857, -1, 858, 859, -1, 1326, -1, 860, 3828, 1343, + 1344, 1345, 3824, 1096, 4151, 1346, 1818, 1819, 1820, 1821, 3829, 969, -1, 659, 970, 971, 972, + -1, 660, 653, 861, -1, -1, 1347, 862, 659, 654, 3830, 1348, -1, 660, 653, 3715, -1, 1818, 1819, + 1820, 1821, 4030, 4031, 950, 3882, 659, 3906, -1, 660, 653, 660, 653, -1, 3281, 995, 996, 1326, + 1349, 3918, 659, -1, 659, 3986, -1, 660, 653, 660, 653, 1353, 1354, 1355, 1356, 1565, 659, + 4250, -1, 1566, 659, 660, 653, 1357, 651, 660, 653, 3807, 652, 653, 654, 1327, 660, 653, 1328, + 4255, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, 4331, -1, 1337, + 3264, 861, 1339, 1340, 1341, 862, 1342, 654, 950, -1, 4206, 4207, 950, 660, 653, -1, 4332, 660, + 653, 997, 4034, 4035, 950, -1, 660, 653, -1, 660, 653, -1, 1343, 1344, 1345, 5053, 1326, -1, + 1346, 1327, 660, 653, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, + 1336, 1347, 4334, -1, 1337, 3283, 1348, 1339, 1340, 1341, -1, 1342, -1, 4000, 4240, 3972, 3973, + 3974, 3975, -1, 3282, -1, 969, -1, 950, 970, 971, 972, 659, 660, 653, -1, 1349, 660, 653, 1343, + 1344, 1345, -1, 1326, 4329, 1346, -1, 1353, 1354, 1355, 1356, 950, 4002, 4244, 4031, -1, 660, + 653, -1, 1357, 651, 4206, 4218, 1347, 652, 653, 654, 659, 1348, -1, -1, 5369, 660, 653, 4294, + 1327, 660, 653, 1328, 660, 653, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, + 4206, 4223, 1349, 1337, 3264, -1, 1339, 1340, 1341, -1, 1342, -1, -1, 1353, 1354, 1355, 1356, + 4024, 1194, -1, 3976, 3973, 3974, 3975, -1, 1357, 651, 1040, -1, 1041, 652, 653, 654, 659, + 1343, 1344, 1345, 4208, 660, 653, 1346, 1327, 660, 653, 1328, -1, -1, 1329, 1330, 1331, -1, + 1332, 1333, 1334, 857, -1, 1335, 1336, 1347, 4435, -1, 1337, 3264, 1348, 1339, 1340, 1341, -1, + 1342, 2565, 996, 2566, -1, 2567, 5095, 5096, 915, 3284, 948, -1, 950, 660, 653, -1, 4256, 660, + 653, -1, 1326, 1349, 650, 651, 1343, 1344, 1345, 652, 653, 654, 1346, 659, 1353, 1354, 1355, + 1356, 660, 653, 5805, 5540, 6461, 4066, 4067, -1, 1357, 651, -1, -1, 1347, 652, 653, 654, 4252, + 1348, -1, 5172, 3973, 3974, 3975, 3892, 4327, 3893, -1, 3894, -1, 3895, 4567, 3285, 969, 4208, + -1, 970, 971, 972, 660, 653, 4253, 3896, 1326, 1349, 3897, 2847, -1, 915, 1731, 4340, 4206, + 4224, 660, 653, 1353, 1354, 1355, 1356, 5539, 5540, 4516, 6449, -1, -1, 4208, -1, 1357, 651, + 4533, 660, 653, 652, 653, 654, 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, + 1334, 857, -1, 1335, 1336, -1, 4562, -1, 1337, 1461, -1, 1339, 1340, 1341, 960, 1342, -1, 4032, + 5805, 5540, 6469, 1469, 1470, 4271, -1, 969, 961, 651, 970, 971, 972, 652, 653, 962, 2565, 996, + 2566, -1, 2567, 1343, 1344, 1345, 4397, 1326, -1, 1346, 1327, -1, 3286, 1328, -1, 4564, 1329, + 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, 1347, -1, 5220, 1337, 3292, 1348, 1339, + 1340, 1341, 3648, 1342, 848, -1, 849, -1, 850, -1, 851, -1, 852, 853, 854, 4669, 855, 856, 857, + -1, 858, 859, -1, -1, 1349, 860, 950, 1343, 1344, 1345, -1, 660, 653, 1346, -1, 1353, 1354, + 1355, 1356, 4036, 950, 1818, 1819, 1820, 1821, 660, 653, 1357, 651, -1, -1, 1347, 652, 653, + 654, -1, 1348, -1, -1, 950, 1326, -1, 4208, 1327, 660, 653, 1328, 660, 653, 1329, 1330, 1331, + -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, 1349, 1337, 3293, -1, 1339, 1340, 1341, -1, + 1342, 1161, 4315, 1353, 1354, 1355, 1356, 4318, 1194, 969, -1, -1, 970, 971, 972, 1357, 651, + -1, -1, -1, 652, 653, 654, 659, 1343, 1344, 1345, 4032, 660, 653, 1346, -1, -1, 4568, -1, 969, + -1, 4328, 970, 971, 972, 1326, -1, -1, 4346, 861, -1, 1731, 1347, 862, 915, 654, 659, 1348, -1, + 660, 653, 660, 653, 659, 1327, -1, -1, 1328, 660, 653, 1329, 1330, 1331, -1, 1332, 1333, 1334, + 857, 4347, 1335, 1336, -1, -1, 1349, 1337, 3295, -1, 1339, 1340, 1341, -1, 1342, -1, 659, 1353, + 1354, 1355, 1356, 660, 653, 3922, 3923, -1, -1, -1, -1, 1357, 651, -1, 4335, -1, 652, 653, 654, + 1472, 1343, 1344, 1345, 2565, 996, 2566, 1346, 2567, 5330, 659, 3296, 1734, 3297, -1, 660, 653, + 915, 1326, -1, 3298, 1327, 660, 653, 1328, 1347, -1, 1329, 1330, 1331, 1348, 1332, 1333, 1334, + 857, 5221, 1335, 1336, 4571, -1, 960, 1337, -1, 3303, 3304, 1340, 1341, -1, 1342, -1, -1, 4348, + 961, 651, -1, 915, 1349, 652, 653, 962, 660, 653, -1, -1, 960, 4443, 659, 1353, 1354, 1355, + 1356, 660, 653, 1344, 1345, -1, 961, 651, 3305, 1357, 1735, 652, 653, 962, 652, 653, 654, 1161, + 4316, 4360, -1, -1, 3306, -1, -1, 969, 1347, 5097, 970, 971, 972, 1348, 660, 653, 659, 1326, + -1, -1, 1327, 660, 653, 1328, 4396, 3681, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, 4389, + 1335, 1336, 4398, 3681, 1349, 1337, 1461, -1, 1339, 1340, 1341, -1, 1342, -1, 659, 1353, 1354, + 1355, 1356, 660, 653, -1, -1, -1, -1, 950, 4390, 1357, 651, 4391, 660, 653, 652, 653, 654, -1, + 1343, 1344, 1345, -1, 1140, 659, 1346, 4392, 659, 3308, 660, 653, -1, 660, 653, 1141, -1, 1326, + 970, 971, 972, -1, 659, -1, 1347, -1, -1, 660, 653, 1348, 3063, -1, 1818, 1819, 1820, 1821, + 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, 4413, 1335, 1336, -1, + -1, 1349, 1337, 3309, -1, 1339, 1340, 1341, -1, 1342, -1, 659, 1353, 1354, 1355, 1356, 660, + 653, -1, 2914, -1, 4335, 4604, -1, 1357, 651, -1, -1, -1, 652, 653, 654, 3539, 1343, 1344, + 1345, 659, 660, 653, 1346, 4634, 660, 653, 3296, 1734, 3310, 950, -1, -1, -1, 1326, 660, 653, + 1327, 3311, -1, 1328, 1347, -1, 1329, 1330, 1331, 1348, 1332, 1333, 1334, 857, -1, 1335, 1336, + 4417, 4412, -1, 1337, 3312, -1, 1339, 1340, 1341, 969, 1342, 2848, 970, 971, 972, 659, 660, + 653, 1349, -1, 660, 653, 3682, 4418, 1818, 1819, 1820, 1821, -1, 1353, 1354, 1355, 1356, -1, + 1343, 1344, 1345, -1, 659, 4419, 1346, 1357, 1735, 660, 653, 4668, 652, 653, 654, 4578, -1, + 1326, -1, -1, 659, -1, 1161, 4437, 1347, 660, 653, -1, -1, 1348, 969, -1, 915, 970, 971, 972, + 1327, 660, 653, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, 4503, 1335, 1336, + -1, -1, 1349, 1337, 3317, 2915, 1339, 1340, 1341, -1, 1342, -1, 659, 1353, 1354, 1355, 1356, + 660, 653, -1, -1, -1, 2916, -1, -1, 1357, 651, 660, 653, -1, 652, 653, 654, 4508, 1343, 1344, + 1345, 1140, 4206, 4803, 1346, 969, -1, 3318, 970, 971, 972, -1, 1141, 1326, -1, 970, 971, 972, + 1327, -1, 3319, 1328, 1347, -1, 1329, 1330, 1331, 1348, 1332, 1333, 1334, 857, -1, 1335, 1336, + -1, 1161, 4454, 1337, 1461, -1, 1339, 1340, 1341, 969, 1342, 1140, 970, 971, 972, 4602, 2001, + 3412, 1349, 3924, 3414, -1, 1141, -1, 4509, 970, 971, 972, -1, 1353, 1354, 1355, 1356, 4603, + 1343, 1344, 1345, -1, -1, 659, 1346, 1357, 651, 3323, 660, 653, 652, 653, 654, 1326, 915, -1, + 4519, 1161, 4572, 660, 653, -1, 1347, -1, -1, 969, -1, 1348, 970, 971, 972, 659, 1327, -1, -1, + 1328, 660, 653, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, -1, 1337, + 1349, -1, 3325, 1340, 1341, 4520, 1342, -1, -1, 5268, 3415, 1353, 1354, 1355, 1356, -1, -1, -1, + 5602, 5603, 659, 649, 4521, 1357, 651, 660, 653, -1, 652, 653, 654, 1344, 1345, 3925, 651, + 5714, -1, 659, 652, 653, 654, -1, 660, 653, -1, -1, 4208, 1326, -1, -1, 1327, 660, 653, 1328, + 1347, -1, 1329, 1330, 1331, 1348, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, 4563, -1, 1337, + 3326, -1, 1339, 1340, 1341, -1, 1342, -1, 1161, 4575, 3327, 3328, 659, -1, 1349, -1, 969, 660, + 653, 970, 971, 972, -1, -1, -1, 1353, 1354, 1355, 1356, 4611, 1343, 1344, 1345, -1, 1326, 5604, + 1346, 1357, 651, -1, 660, 653, 652, 653, 654, 3682, 915, 1818, 1819, 1820, 1821, 660, 653, -1, + 1347, -1, -1, -1, 3682, 1348, 1818, 1819, 1820, 1821, -1, -1, 1327, -1, -1, 1328, -1, 4963, + 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, 4600, 1335, 1336, -1, -1, 1349, 1337, 3331, -1, + 1339, 1340, 1341, -1, 1342, -1, 659, 1353, 1354, 1355, 1356, 660, 653, -1, -1, 4593, 1194, + 4208, -1, 1357, 651, -1, 660, 653, 652, 653, 654, -1, 1343, 1344, 1345, 659, 1326, -1, 1346, + 1327, 660, 653, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, 4606, 1335, 1336, + 1347, 4612, -1, 1337, 3336, 1348, 1339, 1340, 1341, 4651, 1342, -1, 659, -1, 5077, -1, 659, + 660, 653, -1, -1, 660, 653, -1, 659, 4623, 913, 4928, 2001, 660, 653, 1349, 4666, -1, 1343, + 1344, 1345, -1, 1326, 6211, 1346, -1, 1353, 1354, 1355, 1356, -1, 659, -1, 4605, -1, -1, 660, + 653, 1357, 651, 4680, -1, 1347, 652, 653, 654, -1, 1348, 969, -1, 915, 970, 971, 972, 1327, + 660, 653, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, 4667, 1335, 1336, 4206, + 4805, 1349, 1337, 3344, -1, 1339, 1340, 1341, -1, 1342, 3005, 659, 1353, 1354, 1355, 1356, 660, + 653, 969, 4853, -1, 970, 971, 972, 1357, 651, -1, -1, -1, 652, 653, 654, -1, 1343, 1344, 1345, + 915, 1326, -1, 1346, 1327, 660, 653, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, + -1, 1335, 1336, 1347, 4684, -1, 1337, 3345, 1348, 1339, 1340, 1341, 969, 1342, -1, 970, 971, + 972, 4619, 187, 188, 189, 190, 811, 5356, -1, -1, 914, 4656, 187, 188, 189, 190, 811, 1349, -1, + -1, 1343, 1344, 1345, 1140, 1326, 5200, 1346, 915, 1353, 1354, 1355, 1356, 660, 653, 1141, + 4930, 2001, 970, 971, 972, 1357, 651, -1, 5079, 1347, 652, 653, 654, 193, 1348, 4765, -1, 1818, + 1819, 1820, 1821, 1327, -1, 193, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, + 4902, 1335, 1336, 4206, 4806, 1349, 1337, 3346, -1, 1339, 1340, 1341, -1, 1342, -1, 659, 1353, + 1354, 1355, 1356, 660, 653, -1, -1, 4676, 1194, 4208, -1, 1357, 651, -1, 660, 653, 652, 653, + 654, -1, 1343, 1344, 1345, 659, 1326, -1, 1346, 1327, 660, 653, 1328, -1, -1, 1329, 1330, 1331, + 4769, 1332, 1333, 1334, 857, -1, 1335, 1336, 1347, 4992, 4903, 1337, 3347, 1348, 1339, 1340, + 1341, -1, 1342, -1, 2565, 996, 2566, 5097, 2567, 659, 5418, -1, 660, 653, 660, 653, 2002, 1235, + 913, 4691, -1, 660, 653, 1349, -1, -1, 1343, 1344, 1345, -1, 1326, 4909, 1346, -1, 1353, 1354, + 1355, 1356, -1, 969, -1, 4854, 970, 971, 972, 4836, 1357, 651, 1161, 4838, 1347, 652, 653, 654, + -1, 1348, 969, -1, 915, 970, 971, 972, 1327, 660, 653, 1328, -1, -1, 1329, 1330, 1331, -1, + 1332, 1333, 1334, 857, 4910, 1335, 1336, -1, -1, 1349, 1337, 3348, -1, 1339, 1340, 1341, -1, + 1342, -1, 659, 1353, 1354, 1355, 1356, 660, 653, -1, 4855, -1, 5132, 4208, -1, 1357, 651, -1, + 660, 653, 652, 653, 654, -1, 1343, 1344, 1345, 915, 1326, -1, 1346, 1327, 660, 653, 1328, -1, + -1, 1329, 1330, 1331, 5090, 1332, 1333, 1334, 857, 4916, 1335, 1336, 1347, 4919, -1, 1337, + 3367, 1348, 1339, 1340, 1341, 915, 1342, 5422, 659, -1, 660, 653, 659, 660, 653, -1, -1, 660, + 653, 950, 914, -1, 4933, 2001, 660, 653, -1, 1349, -1, -1, 1343, 1344, 1345, -1, 1326, -1, + 1346, 915, 1353, 1354, 1355, 1356, 660, 653, -1, 5179, 2001, 4932, -1, -1, 1357, 651, -1, -1, + 1347, 652, 653, 654, -1, 1348, -1, -1, 659, 4961, 3680, 3681, 1327, 660, 653, 1328, -1, -1, + 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, 4958, 1335, 1336, -1, -1, 1349, 1337, 3368, -1, + 1339, 1340, 1341, -1, 1342, -1, 659, 1353, 1354, 1355, 1356, 660, 653, -1, -1, -1, 4962, 3807, + -1, 1357, 651, -1, 660, 653, 652, 653, 654, -1, 1343, 1344, 1345, 659, 1326, -1, 1346, 1327, + 660, 653, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, 1347, + 4966, -1, 1337, 3369, 1348, 1339, 1340, 1341, 3692, 1342, 1818, 1819, 1820, 1821, 4964, 659, + 1818, 1819, 1820, 1821, 660, 653, 4036, 5754, 1818, 1819, 1820, 1821, 660, 653, 1349, -1, -1, + 1343, 1344, 1345, -1, 1326, -1, 1346, -1, 1353, 1354, 1355, 1356, 3715, 2002, 1818, 1819, 1820, + 1821, 660, 653, 1357, 651, 5035, -1, 1347, 652, 653, 654, -1, 1348, 969, -1, 950, 970, 971, + 972, 1327, 660, 653, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, 5001, 1335, + 1336, -1, -1, 1349, 1337, 3370, -1, 1339, 1340, 1341, -1, 1342, -1, 659, 1353, 1354, 1355, + 1356, 660, 653, -1, -1, -1, 5005, -1, 5895, 1357, 651, 970, 971, 972, 652, 653, 654, -1, 1343, + 1344, 1345, 659, 1326, -1, 1346, 1327, 660, 653, 1328, -1, -1, 1329, 1330, 1331, 5122, 1332, + 1333, 1334, 857, 5016, 1335, 1336, 1347, 5017, -1, 1337, 3371, 1348, 1339, 1340, 1341, 915, + 1342, -1, 659, -1, 660, 653, 659, 660, 653, -1, 4604, 660, 653, 2021, 1429, 5284, 3935, 950, + -1, -1, -1, 1349, 660, 653, 1343, 1344, 1345, -1, 1326, -1, 1346, 915, 1353, 1354, 1355, 1356, + 660, 653, -1, -1, -1, 5018, -1, -1, 1357, 651, 5893, 5894, 1347, 652, 653, 654, 2848, 1348, -1, + -1, 659, 660, 653, 2002, 1327, 660, 653, 1328, 660, 653, 1329, 1330, 1331, -1, 1332, 1333, + 1334, 857, 5019, 1335, 1336, -1, -1, 1349, 1337, 3378, -1, 1339, 1340, 1341, -1, 1342, -1, 659, + 1353, 1354, 1355, 1356, 660, 653, -1, -1, -1, 5023, 6281, -1, 1357, 651, -1, 660, 653, 652, + 653, 654, -1, 1343, 1344, 1345, 659, 1326, -1, 1346, 1327, 660, 653, 1328, -1, -1, 1329, 1330, + 1331, -1, 1332, 1333, 1334, 857, 5024, 1335, 1336, 1347, 5025, -1, 1337, 3379, 1348, 1339, + 1340, 1341, 5026, 1342, -1, 659, -1, 4292, 4293, 659, 660, 653, -1, 950, 660, 653, 6034, 659, + 660, 653, 3807, -1, 660, 653, 1349, 660, 653, 1343, 1344, 1345, -1, 1326, -1, 1346, -1, 1353, + 1354, 1355, 1356, 809, 810, 189, 190, 811, 5028, -1, -1, 1357, 651, 5038, -1, 1347, 652, 653, + 654, -1, 1348, 969, -1, 659, 970, 971, 972, 1327, 660, 653, 1328, -1, -1, 1329, 1330, 1331, -1, + 1332, 1333, 1334, 857, 5029, 1335, 1336, 5073, -1, 1349, 1337, 3380, 193, 1339, 1340, 1341, -1, + 1342, -1, 659, 1353, 1354, 1355, 1356, 660, 653, 5157, -1, -1, 5036, 5604, -1, 1357, 651, -1, + 660, 653, 652, 653, 654, -1, 1343, 1344, 1345, 659, 1326, -1, 1346, 1327, 660, 653, 1328, -1, + -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, 5037, 1335, 1336, 1347, -1, -1, 1337, 3382, + 1348, 1339, 1340, 1341, -1, 1342, 5143, 659, 5144, -1, 5145, -1, 660, 653, 5182, -1, -1, 3682, + -1, 1818, 1819, 1820, 1821, -1, 5146, 2847, 1349, -1, -1, 1343, 1344, 1345, -1, 1326, 5105, + 1346, 3895, 1353, 1354, 1355, 1356, 2002, 5039, -1, 5180, -1, 660, 653, 3896, 1357, 651, 3897, + 2847, 1347, 652, 653, 654, 659, 1348, 5134, -1, 915, 660, 653, 2002, 1327, 660, 653, 1328, 660, + 653, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, 5504, 1349, 1337, 3383, + 5197, 1339, 1340, 1341, -1, 1342, -1, -1, 1353, 1354, 1355, 1356, -1, 3548, -1, 3549, 5973, + 5040, 3404, -1, 1357, 651, 5318, 5465, 2001, 652, 653, 654, 4294, 1343, 1344, 1345, 659, 660, + 653, 1346, 1327, 660, 653, 1328, -1, 5481, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, 5041, + 1335, 1336, 1347, 1731, -1, 1337, 3385, 1348, 1339, 1340, 1341, 5283, 1342, -1, 659, 3405, + 3406, 3407, -1, 660, 653, -1, -1, 650, 651, 3408, 913, -1, 652, 653, 654, 3409, -1, 1349, 1326, + -1, 1343, 1344, 1345, -1, -1, 3410, 1346, -1, 1353, 1354, 1355, 1356, 3411, 5042, -1, -1, 5639, + 5043, -1, -1, 1357, 651, -1, -1, 1347, 652, 653, 654, 659, 1348, -1, 4859, 659, 660, 653, 1075, + -1, 660, 653, 5044, -1, -1, 5045, -1, 1076, 3412, 1565, 3413, 3414, -1, 1566, 1077, -1, -1, + 659, 1349, 1078, 659, -1, 660, 653, -1, 660, 653, -1, -1, 1353, 1354, 1355, 1356, 1079, 187, + 188, 189, 190, 191, -1, -1, 1357, 651, -1, 192, -1, 652, 653, 654, -1, 6286, 1327, -1, -1, + 1328, 660, 653, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, 5054, -1, 3187, + 1337, 1338, 5120, 1339, 1340, 1341, -1, 1342, 5057, 193, 969, -1, 659, 970, 971, 972, 915, 660, + 653, 3415, 5058, 660, 653, 659, 5059, 914, -1, 1326, 660, 653, 649, 1343, 1344, 1345, -1, 659, + 5060, 1346, 5080, 659, 660, 653, 3416, 651, 660, 653, -1, 652, 653, 654, -1, 659, -1, 659, -1, + 1347, 660, 653, 660, 653, 1348, 5156, 187, 188, 189, 190, 811, -1, -1, 4270, -1, 2654, -1, + 2745, 1831, 848, -1, 849, -1, 850, -1, 851, -1, 852, 853, 854, 1349, 855, 856, 857, 3419, 858, + 859, 1161, 5107, -1, 860, 1353, 1354, 1355, 1356, 969, -1, -1, 970, 971, 972, -1, 193, 1357, + 651, 995, 996, 6384, 652, 653, 654, 1327, 660, 653, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, + 1333, 1334, 857, 5895, 1335, 1336, 970, 971, 972, 1337, 1732, -1, 1339, 1340, 1341, 3875, 1342, + 848, -1, 849, -1, 850, -1, 851, 5161, 852, 853, 854, 5186, 855, 856, 857, -1, 858, 859, -1, + 1326, -1, 860, 659, 1343, 1344, 1345, 659, 660, 653, 1346, -1, 660, 653, 3420, 1734, 3944, -1, + 3893, -1, 3894, 997, 3895, -1, -1, 5507, 660, 653, 1347, 862, 2655, 654, 4335, 1348, 3896, + 6385, -1, 3897, 2847, -1, 660, 653, 2746, 2004, 2001, -1, 862, 659, 654, 1161, 5108, -1, 660, + 653, -1, -1, 4032, 969, 1326, 1349, 970, 971, 972, 3126, 969, -1, -1, 970, 971, 972, 1353, + 1354, 1355, 1356, 5127, 5974, 3973, 3974, 3975, -1, 915, -1, 1357, 1735, -1, 660, 653, 652, + 653, 654, 1327, -1, 5765, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, + 1336, 5187, -1, 4335, 1337, 1461, 861, 1339, 1340, 1341, 862, 1342, 654, 5202, -1, -1, 659, -1, + 659, 3005, 950, 660, 653, 660, 653, 660, 653, 969, 659, -1, 970, 971, 972, 660, 653, 1343, + 1344, 1345, -1, -1, 1326, 1346, 1327, -1, 3421, 1328, -1, -1, 1329, 1330, 1331, 5897, 1332, + 1333, 1334, 857, -1, 1335, 1336, 1347, 5346, -1, 1337, 3489, 1348, 1339, 1340, 1341, 3505, + 1342, 3506, -1, -1, 3550, 5310, 659, 3551, -1, 5147, -1, 660, 653, 950, 660, 653, 5829, 5830, + 660, 653, -1, 1349, 915, -1, 1343, 1344, 1345, 660, 653, 1326, 1346, -1, 1353, 1354, 1355, + 1356, 2848, -1, 5191, 1194, 5311, 660, 653, -1, 1357, 651, -1, -1, 1347, 652, 653, 654, -1, + 1348, 659, 5286, 3935, 915, 3513, 660, 653, 1327, 660, 653, 1328, -1, -1, 1329, 1330, 1331, -1, + 1332, 1333, 1334, 857, -1, 1335, 1336, -1, 1349, -1, 1337, -1, -1, 3507, 1340, 1341, -1, 1342, + 2002, 1353, 1354, 1355, 1356, 660, 653, 5192, 1194, -1, 5193, 1194, -1, 1357, 651, 5336, 3452, + 801, 652, 653, 654, 6340, 6341, 659, 1344, 1345, 659, 1326, 660, 653, 1327, 660, 653, 1328, -1, + -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, 5312, 1335, 1336, 1347, 5194, 1194, 1337, + 2064, 1348, 1339, 1340, 1341, 3515, 1342, 5195, 1194, -1, 915, -1, -1, 659, -1, 660, 653, -1, + 660, 653, 5831, 5275, 1194, 659, -1, 660, 653, 1349, 660, 653, 1343, 1344, 1345, -1, -1, -1, + 1346, 659, 1353, 1354, 1355, 1356, 660, 653, -1, -1, 5275, 1194, 5313, -1, 1357, 651, -1, -1, + 1347, 652, 653, 654, -1, 1348, -1, -1, 5287, -1, 1326, 915, 1327, 660, 653, 1328, 660, 653, + 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, 1349, 1337, 2073, -1, + 1339, 1340, 1341, -1, 1342, 4923, 4924, 1353, 1354, 3514, 1356, 5324, 187, 188, 189, 190, 811, + 6342, -1, 1357, 651, -1, 660, 653, 652, 653, 654, -1, 1343, 1344, 1345, 2745, -1, 848, 1346, + 849, -1, 850, -1, 851, 5347, 852, 853, 854, -1, 855, 856, 857, -1, 858, 859, 5392, 1347, -1, + 860, 659, -1, 1348, 193, 969, 660, 653, 970, 971, 972, 1327, -1, -1, 1328, -1, -1, 1329, 1330, + 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, 1349, -1, 1337, 3585, -1, 1339, 1340, + 1341, 1731, 1342, -1, 1353, 1354, 3514, 1356, -1, 5325, 187, 188, 189, 190, 811, 5348, 1357, + 651, 5349, 5640, -1, 652, 653, 654, 1326, 5350, 1343, 1344, 1345, -1, 659, -1, 1346, 659, -1, + 660, 653, 5351, 660, 653, 659, -1, 950, -1, 5352, 660, 653, 660, 653, -1, 1347, 3412, 659, + 3924, 3414, 1348, 193, 660, 653, 659, 1161, 5353, -1, -1, 660, 653, -1, -1, 969, 5354, -1, 970, + 971, 972, 3552, -1, 5387, -1, 862, -1, 654, 1349, 1326, -1, 659, -1, 792, 1140, 1605, 660, 653, + 659, 1353, 1354, 1355, 1356, 660, 653, 1141, -1, -1, 970, 971, 972, 1357, 651, -1, 950, 4925, + 652, 653, 654, 660, 653, 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, + 857, -1, 1335, 1336, 5388, -1, 3415, 1337, 3840, -1, 1339, 1340, 1341, -1, 1342, 6389, -1, 649, + -1, 659, 660, 653, 3945, -1, 660, 653, 5389, 660, 653, 3925, 651, -1, -1, -1, 652, 653, 654, + -1, 1343, 1344, 1345, 659, 1326, -1, 1346, 1327, 660, 653, 1328, -1, -1, 1329, 1330, 1331, -1, + 1332, 1333, 1334, 857, -1, 1335, 1336, 1347, -1, -1, 1337, 3841, 1348, 1339, 1340, 1341, -1, + 1342, 3964, 3965, 2740, 2741, -1, 2742, 3966, 5479, 187, 188, 189, 190, 811, 802, -1, 5390, + 6464, 5504, 660, 653, 1349, 660, 653, 1343, 1344, 1345, -1, 1326, -1, 1346, 659, 1353, 1354, + 1355, 1356, 660, 653, 5505, 5506, -1, 5391, -1, -1, 1357, 651, 5402, -1, 1347, 652, 653, 654, + -1, 1348, 969, 193, 659, 970, 971, 972, 1327, 660, 653, 1328, 3959, 3960, 1329, 1330, 1331, -1, + 1332, 1333, 1334, 857, 5393, 1335, 1336, -1, -1, 1349, 1337, 1732, -1, 1339, 1340, 1341, -1, + 1342, 5641, 659, 1353, 1354, 1355, 1356, 660, 653, -1, -1, -1, 5394, 5606, 4031, 1357, 651, -1, + -1, -1, 652, 653, 654, -1, 1343, 1344, 1345, 659, 1326, -1, 1346, 1327, 660, 653, 1328, 3843, + -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, 1347, 5403, -1, 1337, 3845, + 1348, 1339, 1340, 1341, 5404, 1342, 2739, 2740, 2741, -1, 2742, 659, 2743, -1, 2744, -1, 660, + 653, 5992, 659, 1818, 1819, 1820, 1821, 660, 653, 1349, 5410, -1, 1343, 1344, 1345, -1, 1161, + 5409, 1346, -1, 1353, 1354, 1355, 1356, 969, 659, -1, 970, 971, 972, 660, 653, 1357, 1735, + 1161, 5467, 1347, 652, 653, 654, -1, 1348, 969, 3846, -1, 970, 971, 972, 1327, -1, 3412, 1328, + 4926, 3414, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, 1349, 1337, + 3874, 5451, 1339, 1340, 1341, -1, 1342, -1, -1, 1353, 1354, 1355, 1356, 650, 651, -1, 5939, + 3681, 652, 653, 654, 1357, 651, -1, -1, -1, 652, 653, 654, -1, 1343, 1344, 1345, 2745, -1, 848, + 1346, 849, 5821, 850, -1, 851, 4196, 852, 853, 854, -1, 855, 856, 857, 5473, 858, 859, -1, + 1347, -1, 860, 5416, 1194, 1348, 5417, 1194, -1, 3415, -1, 659, 5638, 5419, 1194, -1, 660, 653, + -1, 659, 649, 5656, 659, -1, 660, 653, -1, 660, 653, 659, -1, 1349, 4927, 651, 660, 653, 5455, + 652, 653, 654, 5456, 3681, 1353, 1354, 1355, 1356, -1, 2565, 996, 2566, -1, 2567, 4197, -1, + 1357, 651, -1, 1326, -1, 652, 653, 654, 4198, -1, 4071, 5899, 848, 5502, 849, 4199, 850, 5512, + 851, -1, 852, 853, 854, 5524, 855, 856, 857, 5614, 858, 859, 915, -1, 5527, 860, 915, 660, 653, + 5720, 659, 660, 653, 5685, 5686, 660, 653, 5581, 1194, 659, 3412, -1, 3413, 3414, 660, 653, + 915, -1, -1, -1, 2746, 660, 653, 659, 862, -1, 654, -1, 660, 653, -1, 2745, -1, 848, 5507, 849, + 1326, 850, 862, 851, 654, 852, 853, 854, -1, 855, 856, 857, -1, 858, 859, -1, -1, -1, 860, + 1327, 5589, 3935, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, + -1, 5653, -1, 1337, 4051, -1, 1339, 1340, 1341, -1, 1342, -1, 5474, 3923, 5626, 4031, 659, -1, + -1, -1, 3415, 660, 653, 5616, 5457, 5617, 3893, -1, 3894, 6108, 3895, 649, 5663, 861, 1343, + 1344, 1345, 862, -1, 654, 1346, -1, 3896, 650, 651, 3897, 2847, 659, 652, 653, 654, 1326, 660, + 653, 1327, -1, -1, 1328, 1347, -1, 1329, 1330, 1331, 1348, 1332, 1333, 1334, 857, -1, 1335, + 1336, -1, 4032, -1, 1337, 4057, -1, 1339, 1340, 1341, 969, 1342, -1, 970, 971, 972, 5733, 1429, + 950, 1349, 5628, 4031, 2746, 660, 653, -1, 862, -1, 654, -1, 1353, 1354, 1355, 1356, 915, 1343, + 1344, 1345, -1, 660, 653, 1346, 1357, 651, -1, 5581, 1194, 652, 653, 654, -1, -1, 5752, -1, + 5145, 658, 5269, 5270, -1, 1347, -1, 5287, 995, 996, 1348, -1, 660, 653, 5146, 2847, 659, 1327, + -1, -1, 1328, 660, 653, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, + 1349, 1337, 4098, 5750, 1339, 1340, 1341, -1, 1342, -1, -1, 1353, 1354, 1355, 1356, 3412, 5669, + 5271, 3414, -1, 915, -1, -1, 1357, 651, 660, 653, -1, 652, 653, 654, 659, 1343, 1344, 1345, -1, + 660, 653, 1346, 2060, 810, 189, 190, 811, -1, -1, 997, 5621, 5622, 5623, 5624, 660, 653, 6168, + -1, -1, 1347, -1, -1, -1, 4239, 1348, 848, -1, 849, -1, 850, -1, 851, -1, 852, 853, 854, -1, + 855, 856, 857, 960, 858, 859, 1161, 5652, -1, 860, -1, 193, -1, 1349, 969, 961, 651, 970, 971, + 972, 652, 653, 962, 3415, 1353, 1354, 1355, 1356, 6023, -1, 1818, 1819, 1820, 1821, 649, -1, + 1357, 651, -1, 5670, -1, 652, 653, 654, -1, -1, 650, 651, -1, -1, 1326, 652, 653, 654, 659, + 1327, -1, -1, 1328, 660, 653, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, 6259, 1335, 1336, + -1, 5681, -1, 1337, 2061, 6212, 1339, 1340, 1341, 5657, 1342, 5658, 5683, 5789, -1, -1, 659, + 3412, -1, 4926, 3414, 660, 653, -1, 5701, -1, 3682, 659, 1818, 1819, 1820, 1821, 660, 653, + 1343, 1344, 1345, -1, -1, 950, 1346, -1, -1, 4106, 660, 653, -1, 861, -1, 1326, 5831, 862, + 5734, 654, -1, 660, 653, -1, 1347, -1, 2565, 996, 2566, 1348, 2567, -1, -1, 659, 1327, -1, -1, + 1328, 660, 653, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, 5896, 1191, -1, + 1337, 1349, 4107, 3304, 1340, 1341, -1, 1342, 6079, 6040, 2001, 3415, 1353, 1354, 1355, 1356, + 3682, -1, 1818, 1819, 1820, 1821, 649, -1, 1357, 651, -1, -1, -1, 652, 653, 654, 1344, 1345, + 4927, 651, 4032, 3305, -1, 652, 653, 654, -1, -1, 969, -1, 1326, 970, 971, 972, -1, 1327, -1, + -1, 1328, 1347, -1, 1329, 1330, 1331, 1348, 1332, 1333, 1334, 857, -1, 1335, 1336, 5736, -1, + -1, 1337, -1, 4108, 3304, 1340, 1341, -1, 1342, 950, -1, 5744, -1, 659, 660, 653, 1349, -1, + 660, 653, 3412, -1, 3924, 3414, -1, -1, 659, 1353, 1354, 1355, 1356, 660, 653, 1344, 1345, -1, + -1, 5746, 3305, 1357, 651, -1, 4032, -1, 652, 653, 654, 1326, 5873, -1, 969, -1, 659, 970, 971, + 972, 1347, 660, 653, 5766, 913, 1348, -1, 5898, 1191, 915, 1327, 6051, 2001, 1328, 660, 653, + 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, 6087, 2001, 1337, 1349, 4127, + 3304, 1340, 1341, -1, 1342, -1, -1, -1, -1, 1353, 1354, 1355, 1356, 3415, -1, 5687, 5949, 1818, + 1819, 1820, 1821, 1357, 651, -1, 649, -1, 652, 653, 654, 1344, 1345, -1, 5989, 915, 3305, -1, + 3925, 651, 660, 653, -1, 652, 653, 654, -1, 1326, 995, 996, 1327, 6089, 2001, 1328, 1347, -1, + 1329, 1330, 1331, 1348, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, -1, 1337, 3317, 5760, + 1339, 1340, 1341, 6302, 1342, -1, 5738, 187, 188, 189, 190, 811, 1349, -1, 659, -1, -1, -1, -1, + 660, 653, 6351, 4293, 1353, 1354, 1355, 1356, 2848, 1343, 1344, 1345, -1, 660, 653, 1346, 1357, + 651, 3318, -1, 5971, 652, 653, 654, 914, -1, 1326, -1, -1, 5794, 997, 4136, -1, 1347, 193, 660, + 653, 915, 1348, 6216, 2001, 915, 660, 653, 659, 1327, 660, 653, 1328, 660, 653, 1329, 1330, + 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, 1349, 1337, 1461, 960, 1339, 1340, + 1341, -1, 1342, -1, -1, 1353, 1354, 1355, 1356, 961, 651, -1, -1, -1, 652, 653, 962, 1357, 651, + 5852, -1, -1, 652, 653, 654, -1, 1343, 1344, 1345, -1, -1, 5147, 1346, -1, 659, 4137, 660, 653, + -1, 660, 653, -1, 950, 1326, -1, -1, 1327, 660, 653, 1328, 1347, -1, 1329, 1330, 1331, 1348, + 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, -1, 1337, 3317, 5865, 1339, 1340, 1341, -1, + 1342, -1, 5764, 187, 188, 189, 190, 811, 1349, -1, 659, -1, 6260, 5833, 1194, 660, 653, 660, + 653, 1353, 1354, 1355, 1356, -1, 1343, 1344, 1345, -1, -1, 659, 1346, 1357, 651, 3318, 660, + 653, 652, 653, 654, -1, -1, 1326, -1, -1, 5882, -1, 4138, -1, 1347, 193, 950, -1, -1, 1348, -1, + 660, 653, -1, -1, 659, 1327, -1, -1, 1328, 660, 653, 1329, 1330, 1331, -1, 1332, 1333, 1334, + 857, 4335, 1335, 1336, -1, -1, 1349, 1337, 3317, -1, 1339, 1340, 1341, -1, 1342, -1, 659, 1353, + 1354, 1355, 1356, 660, 653, 2708, 6036, 1487, 1488, 1489, -1, 1357, 651, 5944, 5900, 1194, 652, + 653, 654, 4294, 1343, 1344, 1345, -1, 660, 653, 1346, 6053, 659, 3318, 659, 5822, -1, 660, 653, + 660, 653, 1326, -1, -1, 1327, -1, 4139, 1328, 1347, -1, 1329, 1330, 1331, 1348, 1332, 1333, + 1334, 857, -1, 1335, 1336, -1, -1, 5936, 1337, 4150, -1, 1339, 1340, 1341, -1, 1342, -1, -1, + 6207, 650, 651, -1, -1, 1349, 652, 653, 654, -1, 3412, -1, 5271, 3414, 6020, 3935, 1353, 1354, + 1355, 1356, -1, 1343, 1344, 1345, -1, 950, -1, 1346, 1357, 651, 660, 653, 6018, 652, 653, 654, + -1, -1, 1326, 5953, 187, 188, 189, 190, 811, 1347, -1, 659, -1, -1, 1348, -1, 660, 653, -1, -1, + 2002, 1327, -1, -1, 1328, 660, 653, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, + 1336, -1, -1, 1349, 1337, 4153, -1, 1339, 1340, 1341, -1, 1342, -1, 193, 1353, 1354, 1355, + 1356, 5687, 3415, 1818, 1819, 1820, 1821, 6050, -1, 1357, 651, 6284, 2001, 649, 652, 653, 654, + -1, 1343, 1344, 1345, -1, 659, -1, 1346, 650, 651, 660, 653, -1, 652, 653, 654, 1326, 950, -1, + -1, -1, 1327, 660, 653, 1328, 1347, -1, 1329, 1330, 1331, 1348, 1332, 1333, 1334, 857, -1, + 1335, 1336, -1, -1, 6316, 1337, -1, 4156, 3304, 1340, 1341, -1, 1342, 6285, 2001, 6187, 3537, + 3538, 3807, -1, 1349, -1, -1, 660, 653, 6041, 187, 188, 189, 190, 811, 1353, 1354, 1355, 1356, + -1, 4335, 1344, 1345, 6317, -1, 2002, 3305, 1357, 651, -1, 660, 653, 652, 653, 654, 659, -1, + -1, 6072, -1, 660, 653, 2002, -1, 1347, 6197, 4031, 660, 653, 1348, 6382, 5830, 6411, 659, + 1327, -1, 193, 1328, 660, 653, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, + 6396, -1, -1, 1337, 1349, 4157, 3304, 1340, 1341, -1, 1342, 995, 996, -1, -1, 1353, 1354, 1355, + 1356, 6349, 3537, 3538, -1, 6460, 6341, 2002, -1, 1357, 651, -1, 660, 653, 652, 653, 654, 1344, + 1345, -1, -1, 6112, 3305, 2060, 810, 189, 190, 811, 5480, -1, 3893, -1, 3894, 6206, 3895, -1, + 659, 5634, -1, -1, 1347, 660, 653, 6219, -1, 1348, 3896, -1, 659, 3897, 2847, -1, -1, 660, 653, + 2004, 2001, 5907, 659, 6228, 1831, -1, -1, 660, 653, 6471, 6341, 997, -1, 193, -1, 1349, 660, + 653, 659, -1, 6309, -1, -1, 660, 653, 1326, 1353, 1354, 1355, 1356, -1, 2002, -1, -1, -1, 659, + 660, 653, 1357, 651, 660, 653, 6342, 652, 653, 654, 6257, 660, 653, 5831, -1, -1, 5908, -1, + 660, 653, -1, 1327, -1, -1, 1328, -1, 6258, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, + 1335, 1336, -1, -1, 960, 1337, 1461, -1, 1339, 1340, 1341, -1, 1342, 6342, -1, -1, 961, 651, + 660, 653, 3539, 652, 653, 962, 6080, 660, 653, 1831, 6231, 187, 188, 189, 190, 811, -1, -1, + 1343, 1344, 1345, 1113, 1326, -1, 1346, 1327, -1, 4159, 1328, -1, -1, 1329, 1330, 1331, 5909, + 1332, 1333, 1334, 857, -1, 1335, 1336, 1347, -1, -1, 1337, 4179, 1348, 1339, 1340, 1341, 6332, + 1342, -1, -1, 6342, 1113, 193, 6081, 6082, 660, 653, -1, 650, 651, -1, -1, -1, 652, 653, 654, + -1, -1, 1349, -1, -1, 1343, 1344, 1345, -1, 1326, -1, 1346, 4925, 1353, 1354, 1355, 1356, 3944, + -1, 3893, -1, 3894, 3539, 3895, -1, 1357, 651, 660, 653, 1347, 652, 653, 654, 1113, 1348, 3896, + -1, -1, 3897, 2847, -1, 1327, 6080, -1, 1328, 1831, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, + 857, -1, 1335, 1336, -1, 6457, 1349, 1337, 4181, 6443, 1339, 1340, 1341, -1, 1342, -1, -1, + 1353, 1354, 1355, 1356, 650, 651, -1, -1, -1, 652, 653, 654, 1357, 651, -1, -1, -1, 652, 653, + 654, -1, 1343, 1344, 1345, 6304, 1326, -1, 1346, 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, + -1, 1332, 1333, 1334, 857, -1, 1335, 1336, 1347, -1, -1, 1337, 4184, 1348, 1339, 1340, 1341, + 4249, 1342, 848, -1, 849, -1, 850, -1, 851, -1, 852, 853, 854, -1, 855, 856, 857, -1, 858, 859, + -1, -1, 1349, 860, -1, 1343, 1344, 1345, -1, -1, 4032, 1346, -1, 1353, 1354, 1355, 1356, -1, + 969, -1, -1, 970, 971, 972, 6446, 1357, 651, -1, -1, 1347, 652, 653, 654, -1, 1348, -1, -1, -1, + -1, -1, -1, 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, + 1336, -1, -1, 1349, 1337, 1461, -1, 1339, 1340, 1341, -1, 1342, -1, -1, 1353, 1354, 1355, 1356, + -1, 4200, 810, 189, 190, 811, -1, -1, 1357, 651, 6447, -1, -1, 652, 653, 654, 2002, 1343, 1344, + 1345, -1, 660, 653, 1346, -1, 659, 4189, -1, -1, -1, 660, 653, -1, -1, 1326, -1, -1, -1, 861, + -1, -1, 1347, 862, -1, 654, 960, 1348, 193, -1, -1, 4201, 4202, -1, -1, -1, -1, -1, 961, 651, + 3408, 913, 960, 652, 653, 962, 3409, -1, -1, -1, -1, -1, 2002, 1349, 961, 651, 3410, 660, 653, + 652, 653, 962, -1, 3411, 1353, 1354, 1355, 1356, -1, -1, -1, 3412, -1, 4926, 3414, -1, 1357, + 651, -1, -1, -1, 652, 653, 654, -1, -1, -1, -1, 6458, -1, -1, -1, -1, -1, -1, -1, 3412, -1, + 3413, 3414, -1, 6405, 6406, -1, -1, 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, + 1333, 1334, 857, -1, 1335, 1336, -1, -1, -1, 1337, 4228, -1, 1339, 1340, 1341, 4254, 1342, 848, + -1, 849, -1, 850, -1, 851, -1, 852, 853, 854, -1, 855, 856, 857, -1, 858, 859, -1, 1326, 3415, + 860, 950, 1343, 1344, 1345, -1, 660, 653, 1346, -1, 649, 6466, 6406, -1, -1, -1, -1, -1, -1, + 4274, -1, -1, 4927, 651, 3415, -1, 1347, 652, 653, 654, 914, 1348, -1, -1, -1, 649, 950, -1, + -1, -1, -1, 660, 653, -1, 4310, 3945, 960, 3416, 651, -1, 660, 653, 652, 653, 654, -1, 1326, + 1349, 961, 651, -1, -1, -1, 652, 653, 962, -1, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, + -1, -1, -1, 1357, 651, -1, 4286, 950, 652, 653, 654, 1327, 660, 653, 1328, -1, -1, 1329, 1330, + 1331, -1, 1332, 1333, 1334, 857, 4311, 1335, 1336, -1, -1, -1, 1337, 2689, 861, 1339, 1340, + 1341, 862, 1342, 654, -1, -1, -1, 792, 1140, 1605, -1, -1, -1, -1, -1, 3404, -1, -1, -1, 1141, + -1, -1, 970, 971, 972, -1, 1343, 1344, 1345, -1, -1, -1, 1346, 1327, -1, -1, 1328, -1, -1, + 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, 1347, -1, -1, 1337, 2706, 1348, + 1339, 1340, 1341, -1, 1342, -1, -1, 4288, 3406, 3407, 3404, -1, -1, -1, -1, -1, -1, 3408, 913, + -1, 2739, 2740, 2741, 3409, 2742, 1349, 4312, -1, 1343, 1344, 1345, -1, -1, 3410, 1346, -1, + 1353, 1354, 1355, 1356, 3411, -1, -1, -1, -1, -1, -1, 1140, 1357, 651, -1, -1, 1347, 652, 653, + 654, -1, 1348, 1141, 4301, 3407, 970, 971, 972, -1, -1, -1, -1, 3408, 913, -1, -1, -1, 3412, + 3409, 3413, 3414, -1, -1, -1, -1, -1, 2848, 1349, 3410, 6407, 6408, 660, 653, -1, -1, 3411, -1, + -1, 1353, 1354, 1355, 1356, 6409, -1, 1818, 1819, 1820, 1821, -1, -1, 1357, 651, -1, -1, -1, + 652, 653, 654, 2739, 2740, 2741, -1, 2742, -1, 2743, -1, 4308, -1, 3412, -1, 3413, 3414, 2745, + -1, 848, -1, 849, -1, 850, -1, 851, -1, 852, 853, 854, -1, 855, 856, 857, 960, 858, 859, -1, + -1, -1, 860, -1, -1, 1140, 3415, -1, 961, 651, -1, -1, 914, 652, 653, 962, 1141, 649, -1, 970, + 971, 972, -1, 4352, 2740, 2741, -1, 2742, -1, 3416, 651, -1, -1, -1, 652, 653, 654, 2745, -1, + 848, -1, 849, -1, 850, -1, 851, -1, 852, 853, 854, -1, 855, 856, 857, -1, 858, 859, 3415, -1, + -1, 860, -1, -1, 914, -1, -1, -1, -1, 649, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3416, + 651, -1, -1, -1, 652, 653, 654, 4330, -1, 848, -1, 849, -1, 850, -1, 851, -1, 852, 853, 854, + 1326, 855, 856, 857, -1, 858, 859, 6407, 6408, -1, 860, 3552, -1, -1, -1, 862, -1, 654, -1, -1, + 6409, -1, 1818, 1819, 1820, 1821, -1, 2745, -1, 848, -1, 849, -1, 850, -1, 851, -1, 852, 853, + 854, -1, 855, 856, 857, -1, 858, 859, 4333, -1, 848, 860, 849, -1, 850, -1, 851, -1, 852, 853, + 854, -1, 855, 856, 857, -1, 858, 859, -1, -1, 3552, 860, 6407, 6408, 862, -1, 654, -1, -1, -1, + -1, -1, -1, -1, -1, 6409, -1, 1818, 1819, 1820, 1821, 1327, -1, -1, 1328, -1, -1, 1329, 1330, + 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, -1, 1337, 4321, -1, 1339, 1340, 1341, + -1, 1342, 4538, -1, 861, 2745, -1, 848, 862, 849, 654, 850, -1, 851, -1, 852, 853, 854, -1, + 855, 856, 857, 1326, 858, 859, 1343, 1344, 1345, 860, -1, -1, 1346, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 2746, -1, 4636, 4637, 862, 1347, 654, -1, -1, -1, 1348, -1, -1, -1, -1, -1, + -1, -1, -1, 2745, 861, 848, -1, 849, 862, 850, 654, 851, -1, 852, 853, 854, 6042, 855, 856, + 857, 1349, 858, 859, 1731, -1, -1, 860, -1, -1, 4539, -1, 1353, 1354, 1355, 1356, -1, -1, -1, + -1, -1, -1, -1, -1, 1357, 651, -1, -1, -1, 652, 653, 654, -1, 1327, -1, -1, 1328, -1, -1, 1329, + 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, -1, 1337, 4356, -1, 1339, 1340, + 1341, 2746, 1342, -1, -1, 862, 4429, 654, 848, -1, 849, -1, 850, -1, 851, -1, 852, 853, 854, + -1, 855, 856, 857, -1, 858, 859, 1343, 1344, 1345, 860, -1, -1, 1346, 4431, -1, 848, -1, 849, + -1, 850, 4540, 851, -1, 852, 853, 854, -1, 855, 856, 857, 1347, 858, 859, -1, -1, 1348, 860, + -1, -1, 2746, 4493, -1, 848, 862, 849, 654, 850, -1, 851, -1, 852, 853, 854, -1, 855, 856, 857, + -1, 858, 859, -1, 1349, -1, 860, -1, -1, -1, -1, -1, -1, -1, -1, 1353, 1354, 1355, 1356, -1, + -1, -1, -1, -1, -1, -1, -1, 1357, 651, -1, -1, -1, 652, 653, 654, -1, 4515, 1326, 848, -1, 849, + -1, 850, -1, 851, -1, 852, 853, 854, -1, 855, 856, 857, -1, 858, 859, -1, -1, -1, 860, -1, + 5250, 861, 849, -1, 850, 862, 851, 654, 852, 853, 854, -1, 855, 856, 857, -1, 858, 859, -1, -1, + -1, 860, -1, -1, -1, 2745, -1, 848, 861, 849, -1, 850, 862, 851, 654, 852, 853, 854, -1, 855, + 856, 857, -1, 858, 859, -1, -1, -1, 860, -1, -1, -1, -1, -1, -1, 861, -1, -1, -1, 862, -1, 654, + -1, -1, -1, -1, 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, + 1335, 1336, -1, -1, -1, 1337, 1732, -1, 1339, 1340, 1341, -1, 1342, -1, -1, -1, -1, -1, 3412, + -1, 4926, 3414, -1, -1, -1, -1, -1, 861, -1, -1, 5767, 862, 5617, 654, -1, -1, 1343, 1344, + 1345, -1, -1, -1, 1346, -1, -1, -1, -1, 4513, -1, -1, 861, -1, 1326, -1, 862, -1, 654, -1, -1, + -1, 1347, -1, -1, -1, -1, 1348, -1, -1, -1, -1, -1, -1, -1, -1, 2745, -1, 848, 3552, 849, -1, + 850, 862, 851, 654, 852, 853, 854, -1, 855, 856, 857, 1349, 858, 859, -1, -1, -1, 860, -1, -1, + 3415, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, 649, -1, -1, 1357, 1735, -1, -1, -1, 652, + 653, 654, -1, 4927, 651, -1, -1, -1, 652, 653, 654, -1, 4276, 996, -1, 4541, -1, -1, -1, 1326, + -1, -1, 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, + 1336, -1, -1, -1, 1337, 4590, -1, 1339, 1340, 1341, 4657, 1342, 848, -1, 849, -1, 850, -1, 851, + -1, 852, 853, 854, -1, 855, 856, 857, -1, 858, 859, -1, -1, 6243, 860, 5617, 1343, 1344, 1345, + 792, 4542, 1605, 1346, -1, -1, -1, -1, 6120, 6121, -1, 3552, -1, -1, -1, 862, -1, 654, 4543, + 6315, -1, 1347, 6320, -1, 6321, -1, 1348, -1, -1, -1, -1, -1, -1, 1327, -1, -1, 1328, -1, -1, + 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, 1349, 1337, 4697, -1, + 1339, 1340, 1341, -1, 1342, -1, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, -1, -1, + 1357, 651, -1, -1, -1, 652, 653, 654, 1326, 1343, 1344, 1345, -1, -1, -1, 1346, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 861, -1, -1, 1347, 862, 4699, 654, 848, 1348, 849, -1, + 850, -1, 851, -1, 852, 853, 854, -1, 855, 856, 857, -1, 858, 859, -1, -1, -1, 860, 3412, -1, + 4926, 3414, -1, 1349, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1353, 1354, 1355, 1356, -1, -1, + -1, -1, -1, -1, -1, -1, 1357, 651, -1, -1, -1, 652, 653, 654, 1326, -1, -1, 1327, -1, -1, 1328, + -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, -1, 1337, 4701, + -1, 1339, 1340, 1341, -1, 1342, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5480, -1, 3893, + 3415, 3894, -1, 3895, -1, -1, -1, -1, 1343, 1344, 1345, 649, 1326, -1, 1346, 3896, -1, -1, + 3897, 2847, -1, -1, -1, 4927, 651, -1, -1, 861, 652, 653, 654, 862, 1347, 654, -1, -1, -1, + 1348, -1, -1, -1, -1, -1, -1, 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, + 1334, 857, -1, 1335, 1336, -1, -1, 1349, 1337, 4702, -1, 1339, 1340, 1341, -1, 1342, -1, -1, + 1353, 1354, 1355, 1356, 3412, -1, 4926, 3414, -1, -1, -1, -1, 1357, 651, -1, -1, -1, 652, 653, + 654, -1, 1343, 1344, 1345, -1, -1, -1, 1346, 1327, -1, 3412, 1328, 4926, 3414, 1329, 1330, + 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, 1347, -1, -1, 1337, 3264, 1348, 1339, 1340, + 1341, 4749, 1342, 848, -1, 849, -1, 850, -1, 851, -1, 852, 853, 854, -1, 855, 856, 857, -1, + 858, 859, -1, 1326, 1349, 860, -1, 1343, 1344, 1345, -1, -1, -1, 1346, 3415, 1353, 1354, 1355, + 1356, -1, -1, -1, -1, -1, -1, 649, -1, 1357, 651, -1, -1, 1347, 652, 653, 654, -1, 1348, 4927, + 651, -1, 3415, -1, 652, 653, 654, -1, -1, -1, -1, -1, 4710, 649, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 1326, 1349, 4927, 651, -1, -1, -1, 652, 653, 654, -1, -1, 1353, 1354, 1355, 1356, -1, + -1, -1, -1, -1, -1, -1, -1, 1357, 651, -1, -1, -1, 652, 653, 654, 1327, -1, -1, 1328, -1, -1, + 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, -1, 1337, 4715, 861, 1339, + 1340, 1341, 862, 1342, 654, -1, -1, -1, -1, -1, 3412, -1, 6122, 3414, -1, -1, -1, -1, -1, -1, + 3412, -1, 6122, 3414, -1, -1, -1, 1343, 1344, 1345, -1, -1, -1, 1346, 1327, -1, -1, 1328, -1, + -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, 1347, -1, -1, 1337, 3264, + 1348, 1339, 1340, 1341, 4754, 1342, 848, -1, 849, -1, 850, -1, 851, -1, 852, 853, 854, -1, 855, + 856, 857, -1, 858, 859, -1, 1326, 1349, 860, -1, 1343, 1344, 1345, -1, -1, -1, 1346, 3415, + 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, 3415, 649, -1, 1357, 651, -1, -1, 1347, 652, 653, + 654, 649, 1348, 6123, 651, -1, -1, -1, 652, 653, 654, -1, -1, 6123, 651, -1, 4716, -1, 652, + 653, 654, -1, -1, -1, -1, -1, -1, 1326, 1349, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1353, + 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, -1, -1, 1357, 651, -1, 6398, -1, 652, 653, 654, 1327, + -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, -1, + 1337, 3264, 861, 1339, 1340, 1341, 862, 1342, 654, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1343, 1344, 1345, -1, -1, 1326, 1346, 1327, -1, -1, + 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, 1347, -1, -1, 1337, + 3280, 1348, 3275, 1340, 1341, -1, 1342, -1, -1, -1, -1, -1, -1, -1, -1, 4717, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 1349, -1, -1, 1343, 1344, 1345, -1, -1, 1326, 1346, -1, 1353, 1354, + 1355, 1356, -1, -1, -1, -1, -1, -1, -1, -1, 1357, 651, -1, -1, 1347, 652, 653, 654, -1, 1348, + -1, -1, -1, -1, -1, -1, -1, 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, + 857, 4719, 1335, 1336, -1, 1349, -1, 1337, 4723, -1, 1339, 1340, 1341, -1, 1342, -1, 1353, + 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, -1, -1, 1357, 651, -1, 2848, -1, 652, 653, 654, 660, + 653, 1343, 1344, 1345, -1, 1326, -1, 1346, 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, + 1332, 1333, 1334, 857, -1, 1335, 1336, 1347, -1, -1, 1337, 4725, 1348, 1339, 1340, 1341, -1, + 1342, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1349, -1, + -1, 1343, 1344, 1345, -1, 1326, -1, 1346, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, + -1, -1, 1357, 651, -1, -1, 1347, 652, 653, 654, -1, 1348, -1, -1, -1, -1, -1, -1, 1327, -1, + 3412, 1328, 4926, 3414, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, + 1349, 1337, 4728, -1, 1339, 1340, 1341, -1, 1342, -1, -1, 1353, 1354, 1355, 1356, -1, -1, -1, + -1, -1, -1, -1, -1, 1357, 651, -1, -1, -1, 652, 653, 654, -1, 1343, 1344, 1345, -1, 1326, -1, + 1346, 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, + 1347, -1, -1, 1337, 4729, 1348, 1339, 1340, 1341, 3415, 1342, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 649, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1349, 4927, 651, 1343, 1344, 1345, 652, 653, + 654, 1346, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, 1326, -1, -1, 1357, 651, -1, -1, + 1347, 652, 653, 654, -1, 1348, -1, -1, -1, -1, -1, -1, 1327, -1, -1, 1328, -1, -1, 1329, 1330, + 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, 1349, 1337, 1461, -1, 1339, 1340, + 1341, -1, 1342, -1, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, -1, -1, 1357, 651, -1, + -1, -1, 652, 653, 654, -1, 1343, 1344, 1345, -1, -1, -1, 1346, -1, -1, 4732, -1, -1, -1, -1, + -1, 1326, -1, -1, -1, -1, 1327, -1, -1, 1328, 1347, -1, 1329, 1330, 1331, 1348, 1332, 1333, + 1334, 857, -1, 1335, 1336, -1, -1, -1, 1337, -1, 4733, 3304, 1340, 1341, -1, 1342, -1, -1, -1, + -1, -1, -1, -1, 1349, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1353, 1354, 1355, 1356, -1, -1, + 1344, 1345, -1, -1, -1, 3305, 1357, 651, -1, -1, -1, 652, 653, 654, 1326, -1, -1, -1, -1, -1, + -1, -1, -1, 1347, -1, -1, -1, -1, 1348, -1, -1, -1, -1, 1327, -1, -1, 1328, -1, -1, 1329, 1330, + 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, -1, 1337, 1349, 4734, 3304, 1340, + 1341, -1, 1342, -1, -1, -1, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, -1, -1, 1357, + 651, -1, -1, -1, 652, 653, 654, 1344, 1345, -1, -1, -1, 3305, -1, -1, -1, -1, -1, -1, -1, -1, + 1326, -1, -1, -1, -1, 1327, -1, -1, 1328, 1347, -1, 1329, 1330, 1331, 1348, 1332, 1333, 1334, + 857, -1, 1335, 1336, -1, -1, -1, 1337, -1, 4735, 3304, 1340, 1341, -1, 1342, -1, -1, -1, -1, + -1, -1, -1, 1349, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1353, 1354, 1355, 1356, -1, -1, 1344, + 1345, -1, -1, -1, 3305, 1357, 651, -1, -1, -1, 652, 653, 654, 1326, -1, -1, -1, -1, -1, -1, -1, + -1, 1347, -1, -1, -1, -1, 1348, -1, -1, -1, -1, 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, + -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, -1, 1337, 1349, 4736, 3304, 1340, 1341, -1, + 1342, -1, -1, -1, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, -1, -1, 1357, 651, -1, + -1, -1, 652, 653, 654, 1344, 1345, -1, -1, -1, 3305, -1, -1, -1, -1, -1, -1, -1, -1, 1326, -1, + -1, -1, -1, 1327, -1, -1, 1328, 1347, -1, 1329, 1330, 1331, 1348, 1332, 1333, 1334, 857, -1, + 1335, 1336, -1, -1, -1, 1337, -1, 4737, 3304, 1340, 1341, -1, 1342, -1, -1, -1, -1, -1, -1, -1, + 1349, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1353, 1354, 1355, 1356, -1, -1, 1344, 1345, -1, + -1, -1, 3305, 1357, 651, -1, -1, -1, 652, 653, 654, 1326, -1, -1, -1, -1, -1, -1, -1, -1, 1347, + -1, -1, -1, -1, 1348, -1, -1, -1, -1, 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, + 1333, 1334, 857, -1, 1335, 1336, -1, -1, -1, 1337, 1349, 4741, 3304, 1340, 1341, -1, 1342, -1, + -1, -1, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, -1, -1, 1357, 651, -1, -1, -1, 652, + 653, 654, 1344, 1345, -1, -1, -1, 3305, -1, -1, -1, -1, -1, -1, -1, -1, 1326, -1, -1, -1, -1, + 1327, -1, -1, 1328, 1347, -1, 1329, 1330, 1331, 1348, 1332, 1333, 1334, 857, -1, 1335, 1336, + -1, -1, -1, 1337, -1, 4742, 3304, 1340, 1341, -1, 1342, -1, -1, -1, -1, -1, -1, -1, 1349, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 1353, 1354, 1355, 1356, -1, -1, 1344, 1345, -1, -1, -1, + 3305, 1357, 651, -1, -1, -1, 652, 653, 654, 1326, -1, -1, -1, -1, -1, -1, -1, -1, 1347, -1, -1, + -1, -1, 1348, -1, -1, -1, -1, 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, + 1334, 857, -1, 1335, 1336, -1, -1, -1, 1337, 1349, 4743, 3304, 1340, 1341, -1, 1342, -1, -1, + -1, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, -1, -1, 1357, 651, -1, -1, -1, 652, + 653, 654, 1344, 1345, -1, -1, -1, 3305, -1, -1, -1, -1, -1, -1, -1, -1, 1326, -1, -1, -1, -1, + 1327, -1, -1, 1328, 1347, -1, 1329, 1330, 1331, 1348, 1332, 1333, 1334, 857, -1, 1335, 1336, + -1, -1, -1, 1337, -1, 4744, 3304, 1340, 1341, -1, 1342, -1, -1, -1, -1, -1, -1, -1, 1349, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 1353, 1354, 1355, 1356, -1, -1, 1344, 1345, -1, -1, -1, + 3305, 1357, 651, -1, -1, -1, 652, 653, 654, 1326, -1, -1, -1, -1, -1, -1, -1, -1, 1347, -1, -1, + -1, -1, 1348, -1, -1, -1, -1, 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, + 1334, 857, -1, 1335, 1336, -1, -1, -1, 1337, 1349, 4745, 3304, 1340, 1341, -1, 1342, -1, -1, + -1, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, -1, -1, 1357, 651, -1, -1, -1, 652, + 653, 654, 1344, 1345, -1, -1, -1, 3305, -1, -1, -1, -1, -1, -1, -1, -1, 1326, -1, -1, -1, -1, + 1327, -1, -1, 1328, 1347, -1, 1329, 1330, 1331, 1348, 1332, 1333, 1334, 857, -1, 1335, 1336, + -1, -1, -1, 1337, -1, 4746, 3304, 1340, 1341, -1, 1342, -1, -1, -1, -1, -1, -1, -1, 1349, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 1353, 1354, 1355, 1356, -1, -1, 1344, 1345, -1, -1, -1, + 3305, 1357, 651, -1, -1, -1, 652, 653, 654, 1326, -1, -1, -1, -1, -1, -1, -1, -1, 1347, -1, -1, + -1, -1, 1348, -1, -1, -1, -1, 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, + 1334, 857, -1, 1335, 1336, -1, -1, -1, 1337, 1349, 4747, 3304, 1340, 1341, -1, 1342, -1, -1, + -1, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, -1, -1, 1357, 651, -1, -1, -1, 652, + 653, 654, 1344, 1345, -1, -1, -1, 3305, -1, -1, -1, -1, -1, -1, -1, -1, 1326, -1, -1, -1, -1, + 1327, -1, -1, 1328, 1347, -1, 1329, 1330, 1331, 1348, 1332, 1333, 1334, 857, -1, 1335, 1336, + -1, -1, -1, 1337, -1, 4748, 3304, 1340, 1341, -1, 1342, -1, -1, -1, -1, -1, -1, -1, 1349, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 1353, 1354, 1355, 1356, -1, -1, 1344, 1345, -1, -1, -1, + 3305, 1357, 651, -1, -1, -1, 652, 653, 654, 1326, -1, -1, -1, -1, -1, -1, -1, -1, 1347, -1, -1, + -1, -1, 1348, -1, -1, -1, -1, 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, + 1334, 857, -1, 1335, 1336, -1, -1, -1, 1337, 1349, 4750, 3304, 1340, 1341, -1, 1342, -1, -1, + -1, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, -1, -1, 1357, 651, -1, -1, -1, 652, + 653, 654, 1344, 1345, -1, -1, -1, 3305, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1326, -1, -1, + 1327, -1, -1, 1328, 1347, -1, 1329, 1330, 1331, 1348, 1332, 1333, 1334, 857, -1, 1335, 1336, + -1, -1, -1, 1337, 4751, -1, 1339, 1340, 1341, -1, 1342, -1, -1, -1, -1, -1, -1, -1, 1349, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 1353, 1354, 1355, 1356, -1, 1343, 1344, 1345, -1, 1326, -1, + 1346, 1357, 651, -1, -1, -1, 652, 653, 654, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1347, -1, -1, + -1, -1, 1348, -1, -1, -1, -1, -1, -1, 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, + 1333, 1334, 857, -1, 1335, 1336, -1, -1, 1349, 1337, 4752, -1, 1339, 1340, 1341, -1, 1342, -1, + -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, -1, -1, 1357, 651, -1, -1, -1, 652, 653, + 654, -1, 1343, 1344, 1345, -1, 1326, -1, 1346, 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, + -1, 1332, 1333, 1334, 857, -1, 1335, 1336, 1347, -1, -1, 1337, 4753, 1348, 1339, 1340, 1341, + -1, 1342, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1349, + -1, -1, 1343, 1344, 1345, -1, 1326, -1, 1346, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, + -1, -1, -1, 1357, 651, -1, -1, 1347, 652, 653, 654, -1, 1348, -1, -1, -1, -1, -1, -1, 1327, -1, + -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, 1349, + 1337, 1461, -1, 1339, 1340, 1341, -1, 1342, -1, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, + -1, -1, -1, 1357, 651, -1, -1, -1, 652, 653, 654, -1, 1343, 1344, 1345, -1, -1, -1, 1346, 1327, + -1, 4758, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, 1347, -1, + -1, 1337, -1, 1348, 4762, 1340, 1341, -1, 1342, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4763, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 1326, 1349, -1, -1, -1, 1344, 1345, -1, -1, -1, -1, -1, 1353, + 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, -1, -1, 1357, 651, -1, -1, 1347, 652, 653, 654, -1, + 1348, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 1326, 1349, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1353, 1354, 1355, 1356, -1, -1, -1, + -1, -1, -1, -1, -1, 1357, 651, -1, -1, -1, 652, 653, 654, 1327, -1, -1, 1328, -1, -1, 1329, + 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, -1, 1337, 3326, -1, 1339, 1340, + 1341, -1, 1342, -1, -1, -1, -1, 4766, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 1343, 1344, 1345, -1, 1326, -1, 1346, 1327, -1, -1, 1328, -1, -1, 1329, 1330, + 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, 1347, -1, -1, 1337, 4777, 1348, 1339, 1340, + 1341, -1, 1342, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 1349, -1, -1, 1343, 1344, 1345, -1, 1326, -1, 1346, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, + -1, -1, -1, -1, 1357, 651, -1, -1, 1347, 652, 653, 654, -1, 1348, -1, -1, -1, -1, -1, -1, 1327, + -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, + 1349, 1337, 4780, -1, 1339, 1340, 1341, -1, 1342, -1, -1, 1353, 1354, 1355, 1356, -1, -1, -1, + -1, -1, -1, -1, -1, 1357, 651, -1, -1, -1, 652, 653, 654, -1, 1343, 1344, 1345, -1, 1326, -1, + 1346, 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, + 1347, -1, -1, 1337, 4782, 1348, 1339, 1340, 1341, -1, 1342, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1349, -1, -1, 1343, 1344, 1345, -1, -1, -1, 1346, + -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, 1326, -1, -1, 1357, 651, -1, -1, 1347, 652, + 653, 654, -1, 1348, -1, -1, -1, -1, -1, -1, 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, + 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, 1349, 1337, 4786, -1, 1339, 1340, 1341, -1, + 1342, -1, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, -1, -1, 1357, 651, -1, -1, -1, + 652, 653, 654, -1, 1343, 1344, 1345, 2739, 2740, 2741, 1346, 2742, -1, 2743, -1, 4885, -1, -1, + -1, 1326, -1, -1, -1, -1, 1327, -1, -1, 1328, 1347, -1, 1329, 1330, 1331, 1348, 1332, 1333, + 1334, 857, -1, 1335, 1336, -1, -1, -1, 1337, -1, 4787, 3304, 1340, 1341, -1, 1342, -1, -1, -1, + -1, -1, -1, -1, 1349, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1353, 1354, 1355, 1356, -1, -1, + 1344, 1345, -1, -1, -1, 3305, 1357, 651, -1, -1, -1, 652, 653, 654, 1326, -1, -1, -1, -1, -1, + -1, -1, -1, 1347, -1, -1, -1, -1, 1348, -1, -1, -1, -1, 1327, -1, -1, 1328, -1, -1, 1329, 1330, + 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, -1, 1337, 1349, 4788, 3304, 1340, + 1341, -1, 1342, -1, -1, -1, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, -1, -1, 1357, + 651, -1, -1, -1, 652, 653, 654, 1344, 1345, -1, -1, -1, 3305, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 1327, -1, -1, 1328, 1347, -1, 1329, 1330, 1331, 1348, 1332, 1333, 1334, + 857, -1, 1335, 1336, -1, -1, -1, 1337, 4791, -1, 1339, 1340, 1341, -1, 1342, -1, -1, -1, -1, + -1, -1, -1, 1349, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1353, 1354, 1355, 1356, -1, 1343, + 1344, 1345, -1, -1, -1, 1346, 1357, 651, -1, -1, -1, 652, 653, 654, 2060, 810, 189, 190, 811, + -1, -1, -1, -1, 1347, -1, -1, -1, -1, 1348, -1, -1, -1, 2745, -1, 848, -1, 849, -1, 850, -1, + 851, -1, 852, 853, 854, -1, 855, 856, 857, -1, 858, 859, -1, -1, 1349, 860, -1, -1, -1, -1, + 193, -1, -1, -1, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, -1, -1, 1357, 651, -1, -1, + -1, 652, 653, 654, 1326, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, + -1, -1, -1, 1337, 4794, -1, 1339, 1340, 1341, -1, 1342, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1343, 1344, 1345, -1, -1, -1, 1346, -1, -1, + -1, 2746, -1, -1, -1, 862, -1, 654, 1326, -1, -1, 1327, -1, -1, 1328, 1347, -1, 1329, 1330, + 1331, 1348, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, -1, 1337, 1461, -1, 1339, 1340, + 1341, -1, 1342, -1, -1, -1, -1, -1, -1, -1, 1349, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1353, + 1354, 1355, 1356, -1, 1343, 1344, 1345, -1, 1326, -1, 1346, 1357, 651, 4798, -1, -1, 652, 653, + 654, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1347, -1, -1, -1, -1, 1348, -1, -1, -1, -1, -1, -1, + 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, + -1, 1349, 1337, 4799, -1, 1339, 1340, 1341, -1, 1342, -1, -1, 1353, 1354, 1355, 1356, -1, -1, + -1, -1, -1, -1, -1, -1, 1357, 651, -1, -1, -1, 652, 653, 654, -1, 1343, 1344, 1345, -1, -1, -1, + 1346, 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, + 1347, -1, -1, 1337, 3264, 1348, 1339, 1340, 1341, -1, 1342, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1326, 1349, -1, -1, 1343, 1344, 1345, -1, -1, -1, 1346, + -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, -1, -1, 1357, 651, -1, -1, 1347, 652, 653, + 654, -1, 1348, -1, -1, -1, -1, 4538, -1, -1, -1, 5109, -1, 848, -1, 849, 4802, 850, -1, 851, + -1, 852, 853, 854, -1, 855, 856, 857, 1349, 858, 859, -1, -1, -1, 860, -1, -1, -1, -1, 1353, + 1354, 1355, 1356, 3404, -1, -1, -1, -1, -1, -1, -1, 1357, 651, -1, -1, -1, 652, 653, 654, 1327, + -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, 4994, -1, + -1, 1337, -1, -1, 4810, 1340, 1341, -1, 1342, 3404, -1, -1, -1, -1, 4813, 3407, 4965, -1, -1, + -1, -1, -1, -1, 3408, 913, -1, -1, -1, -1, 3409, -1, -1, -1, 1344, 1345, -1, -1, -1, -1, 3410, + -1, -1, -1, -1, -1, 1326, 3411, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1347, -1, 4817, 3407, -1, + 1348, -1, -1, -1, -1, 861, 3408, 913, -1, 862, -1, 654, 3409, -1, -1, -1, -1, -1, 3412, -1, + 3413, 3414, 3410, -1, -1, -1, 1349, -1, -1, 3411, -1, -1, -1, -1, -1, -1, -1, 1353, 1354, 1355, + 1356, -1, -1, 4540, -1, -1, -1, -1, -1, 1357, 651, -1, -1, -1, 652, 653, 654, -1, -1, -1, -1, + -1, 3412, -1, 3413, 3414, -1, -1, -1, -1, -1, -1, -1, -1, 1327, -1, -1, 1328, -1, -1, 1329, + 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, -1, 1337, 4868, -1, 1339, 1340, + 1341, 3415, 1342, -1, -1, -1, -1, 914, -1, -1, -1, -1, 649, 4995, 4538, -1, -1, -1, -1, -1, -1, + -1, 1326, -1, 3416, 651, 1343, 1344, 1345, 652, 653, 654, 1346, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 3415, -1, -1, -1, -1, 1347, 914, -1, -1, -1, 1348, 649, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 4996, 3416, 651, -1, -1, -1, 652, 653, 654, -1, -1, -1, -1, -1, 1349, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, 5163, -1, -1, 1357, + 651, -1, -1, -1, 652, 653, 654, 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, + 1334, 857, -1, 1335, 1336, -1, -1, -1, 1337, 4882, -1, 1339, 1340, 1341, -1, 1342, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1343, 1344, + 1345, -1, -1, -1, 1346, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 1347, -1, 4540, -1, -1, 1348, -1, -1, -1, -1, 2745, -1, 848, 1326, 849, -1, 850, -1, 851, -1, + 852, 853, 854, -1, 855, 856, 857, -1, 858, 859, -1, 1349, -1, 860, -1, 3965, 2740, 2741, -1, + 2742, 5167, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, -1, -1, 1357, 651, -1, -1, -1, + 652, 653, 654, -1, -1, -1, -1, -1, -1, 4276, 996, -1, 4541, -1, -1, -1, -1, -1, -1, -1, 2745, + -1, 848, -1, 849, -1, 850, -1, 851, -1, 852, 853, 854, -1, 855, 856, 857, -1, 858, 859, -1, -1, + -1, 860, 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, + 1336, -1, -1, -1, 1337, -1, 5081, 3304, 1340, 1341, -1, 1342, -1, 792, 4542, 1605, -1, 3404, + 4276, 996, -1, 4997, -1, -1, 3552, -1, -1, -1, 862, -1, 654, 4543, -1, -1, -1, -1, 1344, 1345, + -1, -1, -1, 3305, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1347, -1, + -1, -1, -1, 1348, 5128, 3406, 3407, -1, -1, -1, -1, -1, -1, -1, 3408, 913, -1, -1, -1, -1, + 3409, 792, 4998, 1605, -1, -1, -1, -1, -1, 1349, 3410, -1, 3552, -1, -1, -1, 862, 3411, 654, + 4999, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, -1, -1, 1357, 651, -1, -1, -1, 652, 653, + 654, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3412, -1, 3413, 3414, -1, 2745, -1, 848, -1, 849, + -1, 850, -1, 851, -1, 852, 853, 854, -1, 855, 856, 857, -1, 858, 859, -1, -1, -1, 860, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2745, -1, 848, -1, 849, -1, 850, -1, 851, -1, 852, + 853, 854, -1, 855, 856, 857, 1326, 858, 859, -1, 4276, 996, 860, 4541, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 3415, -1, -1, -1, -1, -1, 914, -1, -1, -1, -1, 649, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 3416, 651, -1, -1, -1, 652, 653, 654, -1, -1, -1, -1, 1326, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 792, 4542, 1605, -1, -1, -1, -1, -1, -1, -1, -1, 3552, -1, + -1, -1, 862, -1, 654, 4543, -1, -1, -1, 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, + 1333, 1334, 857, -1, 1335, 1336, -1, -1, -1, 1337, 5168, -1, 1339, 1340, 1341, 2746, 1342, -1, + -1, 862, -1, 654, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1343, + 1344, 1345, -1, 1326, -1, 1346, 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, + 1334, 857, -1, 1335, 1336, 1347, -1, -1, 1337, 5169, 1348, 1339, 1340, 1341, -1, 1342, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1349, -1, -1, 1343, + 1344, 1345, -1, 1326, -1, 1346, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, -1, -1, + 1357, 651, -1, -1, 1347, 652, 653, 654, -1, 1348, -1, -1, -1, -1, -1, -1, 1327, -1, -1, 1328, + -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, 1349, 1337, 5176, + -1, 1339, 1340, 1341, -1, 1342, -1, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, -1, -1, + 1357, 651, -1, -1, -1, 652, 653, 654, -1, 1343, 1344, 1345, -1, -1, 1326, 1346, 1327, -1, -1, + 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, 1347, 5212, 2688, + 1337, 5203, 1348, 1339, 1340, 1341, -1, 1342, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 1349, -1, -1, 1343, 1344, 1345, -1, -1, 1326, 1346, -1, 1353, + 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, -1, -1, 1357, 651, -1, -1, 1347, 652, 653, 654, -1, + 1348, -1, -1, -1, -1, -1, -1, -1, 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, + 1334, 857, -1, 1335, 1336, -1, 1349, -1, 1337, 2689, -1, 1339, 1340, 1341, -1, 1342, -1, 1353, + 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, -1, -1, 1357, 651, -1, -1, -1, 652, 653, 654, -1, -1, + 1343, 1344, 1345, -1, -1, -1, 1346, 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, + 1333, 1334, 857, -1, 1335, 1336, 1347, -1, -1, 1337, 5225, 1348, 1339, 1340, 1341, 5345, 1342, + 848, -1, 849, -1, 850, -1, 851, -1, 852, 853, 854, -1, 855, 856, 857, -1, 858, 859, -1, 1326, + 1349, 860, -1, 1343, 1344, 1345, -1, -1, -1, 1346, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, + -1, -1, -1, -1, 1357, 651, -1, -1, 1347, 652, 653, 654, -1, 1348, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1326, 1349, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, -1, -1, 1357, 651, -1, + -1, -1, 652, 653, 654, 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, + -1, 1335, 1336, -1, -1, -1, 1337, 1461, 861, 1339, 1340, 1341, 862, 1342, 654, -1, 5235, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1343, 1344, 1345, + -1, 1326, -1, 1346, 1327, -1, 5236, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, + -1, 1335, 1336, 1347, -1, -1, 1337, -1, 1348, 5241, 1340, 1341, -1, 1342, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1349, -1, -1, -1, 1344, 1345, -1, + 1326, -1, -1, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, -1, -1, 1357, 651, -1, -1, + 1347, 652, 653, 654, -1, 1348, -1, -1, -1, -1, -1, -1, 1327, -1, -1, 1328, -1, -1, 1329, 1330, + 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, 1349, 1337, 5245, -1, 1339, 1340, + 1341, -1, 1342, -1, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, -1, -1, 1357, 651, -1, + -1, -1, 652, 653, 654, -1, 1343, 1344, 1345, -1, 1326, -1, 1346, 1327, -1, -1, 1328, -1, -1, + 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, 1347, -1, -1, 1337, 5247, 1348, + 1339, 1340, 1341, -1, 1342, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1349, -1, -1, 1343, 1344, 1345, -1, 1326, -1, 1346, -1, 1353, 1354, 1355, 1356, -1, + -1, -1, -1, -1, -1, -1, -1, 1357, 651, -1, -1, 1347, 652, 653, 654, -1, 1348, -1, -1, -1, -1, + -1, -1, 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, + 1336, -1, -1, 1349, 1337, 5251, -1, 1339, 1340, 1341, -1, 1342, -1, -1, 1353, 1354, 1355, 1356, + -1, -1, -1, -1, -1, -1, -1, -1, 1357, 651, -1, -1, -1, 652, 653, 654, -1, 1343, 1344, 1345, -1, + 1326, -1, 1346, 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, + 1335, 1336, 1347, -1, -1, 1337, 5252, 1348, 1339, 1340, 1341, -1, 1342, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1349, -1, -1, 1343, 1344, 1345, -1, + 1326, -1, 1346, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, -1, -1, 1357, 651, -1, -1, + 1347, 652, 653, 654, -1, 1348, -1, -1, -1, -1, -1, -1, 1327, -1, -1, 1328, -1, -1, 1329, 1330, + 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, 1349, 1337, 5253, -1, 1339, 1340, + 1341, -1, 1342, -1, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, -1, -1, 1357, 651, -1, + -1, -1, 652, 653, 654, -1, 1343, 1344, 1345, -1, 1326, -1, 1346, 1327, -1, -1, 1328, -1, -1, + 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, 1347, -1, -1, 1337, 5256, 1348, + 1339, 1340, 1341, -1, 1342, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1349, -1, -1, 1343, 1344, 1345, -1, 1326, -1, 1346, -1, 1353, 1354, 1355, 1356, -1, + -1, -1, -1, -1, -1, -1, -1, 1357, 651, -1, -1, 1347, 652, 653, 654, -1, 1348, -1, -1, -1, -1, + -1, -1, 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, + 1336, -1, -1, 1349, 1337, 5257, -1, 1339, 1340, 1341, -1, 1342, -1, -1, 1353, 1354, 1355, 1356, + -1, -1, -1, -1, -1, -1, -1, -1, 1357, 651, -1, -1, -1, 652, 653, 654, -1, 1343, 1344, 1345, -1, + 1326, -1, 1346, 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, + 1335, 1336, 1347, -1, -1, 1337, 5259, 1348, 1339, 1340, 1341, 5381, 1342, 848, -1, 849, -1, + 850, -1, 851, -1, 852, 853, 854, -1, 855, 856, 857, -1, 858, 859, -1, -1, 1349, 860, -1, 1343, + 1344, 1345, -1, -1, -1, 1346, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, -1, -1, 1357, + 651, 3404, -1, 1347, 652, 653, 654, -1, 1348, -1, -1, -1, -1, -1, -1, 1327, -1, -1, 1328, -1, + -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, 1349, 1337, 5262, -1, + 1339, 1340, 1341, -1, 1342, -1, -1, 1353, 1354, 1355, 1356, 3404, 5276, 3407, -1, -1, -1, -1, + -1, 1357, 651, 3408, 913, -1, 652, 653, 654, 3409, 1343, 1344, 1345, -1, -1, -1, 1346, -1, -1, + 3410, -1, -1, -1, -1, -1, -1, 3411, -1, -1, -1, -1, 861, 3404, -1, 1347, 862, -1, 654, -1, + 1348, -1, -1, 5280, 3407, -1, -1, -1, -1, -1, -1, -1, 3408, 913, -1, -1, -1, -1, 3409, -1, + 3412, -1, 3413, 3414, -1, -1, 1349, -1, 3410, -1, -1, -1, -1, -1, -1, 3411, -1, 1353, 1354, + 1355, 1356, -1, 5282, 3407, -1, -1, -1, -1, -1, 1357, 651, 3408, 913, -1, 652, 653, 654, 3409, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 3410, 3412, -1, 3413, 3414, -1, -1, 3411, -1, -1, 5397, -1, + 848, -1, 849, -1, 850, -1, 851, -1, 852, 853, 854, -1, 855, 856, 857, -1, 858, 859, -1, -1, -1, + 860, -1, 3415, -1, -1, -1, -1, 3412, 914, 3413, 3414, -1, -1, 649, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 3416, 651, -1, -1, -1, 652, 653, 654, 1326, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 3415, -1, -1, -1, -1, -1, 914, -1, -1, -1, -1, 649, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 3416, 651, -1, -1, -1, 652, 653, 654, -1, -1, -1, -1, -1, -1, -1, + -1, 3415, -1, 1326, -1, -1, -1, 914, -1, -1, -1, -1, 649, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 861, -1, 3416, 651, 862, -1, 654, 652, 653, 654, -1, -1, -1, 1327, -1, -1, 1328, -1, -1, 1329, + 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, -1, 1337, 5289, -1, 1339, 1340, + 1341, 1327, 1342, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, + 1336, -1, -1, -1, 1337, -1, -1, -1, -1, 1343, 1344, 1345, -1, -1, -1, 1346, 1327, -1, -1, 1328, + -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, 1347, -1, -1, 1337, 1338, + 1348, 1339, 1340, 1341, 5425, 1342, 848, -1, 849, -1, 850, -1, 851, -1, 852, 853, 854, -1, 855, + 856, 857, -1, 858, 859, -1, 1326, 1349, 860, -1, 1343, 1344, 1345, -1, -1, -1, 1346, -1, 1353, + 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, -1, -1, 1357, 651, -1, -1, 1347, 652, 653, 654, -1, + 1348, -1, -1, -1, -1, 6387, 6388, 1355, 1356, -1, -1, -1, -1, -1, -1, -1, -1, 650, 651, -1, -1, + -1, 652, 653, 654, 1326, 1349, -1, -1, 5321, 1352, -1, -1, -1, -1, -1, -1, 1353, 1354, 1355, + 1356, -1, -1, -1, -1, -1, -1, -1, -1, 1357, 651, -1, -1, -1, 652, 653, 654, 1327, -1, -1, 1328, + -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, -1, 1337, 5329, + 861, 1339, 1340, 1341, 862, 1342, 654, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 1343, 1344, 1345, -1, 1326, -1, 1346, 1327, -1, -1, 1328, -1, + -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, 1347, -1, -1, 1337, 5357, + 1348, 1339, 1340, 1341, -1, 1342, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 1349, -1, -1, 1343, 1344, 1345, -1, 1326, -1, 1346, -1, 1353, 1354, 1355, + 1356, -1, -1, -1, -1, -1, -1, -1, -1, 1357, 651, -1, -1, 1347, 652, 653, 654, -1, 1348, -1, -1, + -1, -1, -1, -1, 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, + 1335, 1336, -1, -1, 1349, 1337, 5406, -1, 1339, 1340, 1341, -1, 1342, -1, -1, 1353, 1354, 1355, + 1356, -1, -1, -1, -1, -1, -1, -1, -1, 1357, 651, -1, -1, -1, 652, 653, 654, -1, 1343, 1344, + 1345, -1, 1326, -1, 1346, 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, + 857, -1, 1335, 1336, 1347, -1, -1, 1337, 5408, 1348, 1339, 1340, 1341, 5509, 1342, 848, -1, + 849, -1, 850, -1, 851, -1, 852, 853, 854, -1, 855, 856, 857, -1, 858, 859, -1, -1, 1349, 860, + -1, 1343, 1344, 1345, -1, -1, -1, 1346, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, -1, + -1, 1357, 651, -1, -1, 1347, 652, 653, 654, -1, 1348, -1, -1, -1, 1326, -1, -1, 1327, -1, -1, + 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, 1349, 1337, + 5443, -1, 1339, 1340, 1341, -1, 1342, -1, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, + -1, -1, 1357, 651, -1, -1, -1, 652, 653, 654, -1, 1343, 1344, 1345, -1, 1326, -1, 1346, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 861, -1, -1, 1347, 862, -1, 654, -1, 1348, -1, + -1, -1, -1, -1, -1, 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, + -1, 1335, 1336, -1, -1, 1349, 1337, 3264, -1, 1339, 1340, 1341, -1, 1342, -1, -1, 1353, 1354, + 1355, 1356, -1, -1, -1, -1, -1, -1, -1, -1, 1357, 651, -1, -1, -1, 652, 653, 654, -1, 1343, + 1344, 1345, -1, 1326, -1, 1346, 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, + 1334, 857, -1, 1335, 1336, 1347, -1, -1, 1337, 5546, 1348, 1339, 1340, 1341, -1, 1342, -1, + 5529, 5530, -1, -1, -1, -1, -1, 5531, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1349, -1, -1, + 1343, 1344, 1345, -1, 1326, -1, 1346, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, -1, + -1, 1357, 651, -1, -1, 1347, 652, 653, 654, -1, 1348, -1, -1, -1, -1, -1, -1, 1327, -1, -1, + 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, 1349, 1337, + -1, 5548, 3304, 1340, 1341, -1, 1342, -1, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, + -1, -1, 1357, 651, -1, -1, -1, 652, 653, 654, -1, -1, 1344, 1345, -1, 1326, -1, 3305, 1327, -1, + -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, 1347, -1, -1, + 1337, 5550, 1348, 1339, 1340, 1341, -1, 1342, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 1349, -1, -1, 1343, 1344, 1345, -1, 1326, -1, 1346, -1, 1353, + 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, -1, -1, 1357, 651, -1, -1, 1347, 652, 653, 654, -1, + 1348, -1, -1, -1, -1, -1, -1, 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, + 1334, 857, -1, 1335, 1336, -1, -1, 1349, 1337, 5551, -1, 1339, 1340, 1341, -1, 1342, -1, -1, + 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, -1, -1, 1357, 651, -1, -1, -1, 652, 653, 654, + -1, 1343, 1344, 1345, -1, 1326, -1, 1346, 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, + 1332, 1333, 1334, 857, -1, 1335, 1336, 1347, -1, -1, 1337, 5552, 1348, 1339, 1340, 1341, -1, + 1342, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1349, -1, + -1, 1343, 1344, 1345, -1, 1326, -1, 1346, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, + -1, -1, 1357, 651, -1, -1, 1347, 652, 653, 654, -1, 1348, -1, -1, -1, -1, -1, -1, 1327, -1, -1, + 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, 1349, 1337, + 5565, -1, 1339, 1340, 1341, -1, 1342, -1, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, 5770, + -1, -1, 1357, 651, -1, -1, -1, 652, 653, 654, -1, 1343, 1344, 1345, -1, 1326, -1, 1346, 1327, + -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, 1347, -1, + -1, 1337, 5566, 1348, 1339, 1340, 1341, -1, 1342, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 1349, -1, -1, 1343, 1344, 1345, -1, 1326, -1, 1346, -1, + 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, -1, -1, 1357, 651, -1, -1, 1347, 652, 653, 654, + -1, 1348, -1, -1, -1, -1, -1, -1, 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, + 1334, 857, -1, 1335, 1336, -1, -1, 1349, 1337, 5567, -1, 1339, 1340, 1341, -1, 1342, -1, -1, + 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, -1, -1, 1357, 651, -1, -1, -1, 652, 653, 654, + -1, 1343, 1344, 1345, -1, -1, -1, 1346, 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, + 1333, 1334, 857, -1, 1335, 1336, 1347, -1, -1, 1337, 5571, 1348, 1339, 1340, 1341, -1, 1342, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1326, 1349, -1, -1, + 1343, 1344, 1345, -1, -1, -1, 1346, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, -1, -1, + 1357, 651, -1, -1, 1347, 652, 653, 654, -1, 1348, -1, 1326, -1, -1, -1, -1, -1, -1, 2745, 4538, + 848, -1, 849, -1, 850, -1, 851, -1, 852, 853, 854, -1, 855, 856, 857, 1349, 858, 859, -1, -1, + -1, 860, -1, -1, -1, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, 5577, 5578, -1, 1357, 651, + -1, -1, -1, 652, 653, 654, 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, + 857, -1, 1335, 1336, -1, -1, -1, 1337, -1, 5579, 3304, 1340, 1341, -1, 1342, -1, -1, -1, -1, + -1, -1, -1, 1327, -1, -1, 1328, -1, 5651, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, + 1335, 1336, 1344, 1345, -1, 1337, 5583, 3305, 1339, 1340, 1341, -1, 1342, 3404, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 1347, -1, -1, -1, -1, 1348, -1, -1, -1, -1, 3552, 1343, 1344, 1345, + 862, -1, 654, 1346, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1349, -1, -1, -1, 1347, + -1, 5585, 3407, -1, 1348, -1, 1353, 1354, 1355, 1356, 3408, 913, -1, -1, 1326, -1, 3409, 4540, + 1357, 651, -1, -1, -1, 652, 653, 654, 3410, -1, -1, -1, 1349, -1, -1, 3411, -1, -1, -1, -1, -1, + -1, -1, 1353, 1354, 1355, 1356, -1, -1, 5595, 5596, 5597, 5598, 5599, 5600, 1357, 651, -1, -1, + -1, 652, 653, 654, -1, -1, -1, -1, -1, 3412, -1, 3413, 3414, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 2607, -1, 848, -1, 849, -1, 850, -1, 851, -1, 852, 853, 854, -1, 855, 856, 857, -1, + 858, 859, -1, 1326, -1, 860, 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, + 1334, 857, -1, 1335, 1336, -1, -1, -1, 1337, 5601, -1, 1339, 1340, 1341, -1, 1342, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5883, 3415, -1, -1, -1, -1, -1, 914, 1343, + 1344, 1345, -1, 649, -1, 1346, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3416, 651, -1, -1, -1, 652, + 653, 654, 1347, -1, -1, -1, -1, 1348, -1, -1, -1, -1, -1, -1, 1327, -1, -1, 1328, -1, -1, 1329, + 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, 1349, 1337, 5625, 861, 1339, + 1340, 1341, 862, 1342, 654, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, -1, -1, 1357, + 651, -1, -1, -1, 652, 653, 654, -1, 1343, 1344, 1345, 2607, -1, 848, 1346, 849, -1, 850, -1, + 851, -1, 852, 853, 854, -1, 855, 856, 857, -1, 858, 859, -1, 1347, -1, 860, -1, 2745, 1348, + 848, -1, 849, -1, 850, -1, 851, -1, 852, 853, 854, -1, 855, 856, 857, -1, 858, 859, -1, -1, -1, + 860, -1, -1, -1, 1349, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1353, 1354, 1355, 1356, 5887, + -1, -1, -1, -1, -1, -1, -1, 1357, 651, -1, -1, -1, 652, 653, 654, 4276, 996, 5775, 4541, -1, + -1, -1, 61, 62, -1, -1, -1, -1, -1, 63, 64, -1, 65, 66, 67, 68, -1, 69, -1, -1, 70, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 71, -1, -1, -1, -1, 72, 73, -1, -1, 74, 75, 76, -1, 861, -1, + -1, -1, 862, -1, 654, -1, -1, -1, -1, -1, -1, -1, 792, 4542, 1605, -1, 77, -1, -1, 78, 79, -1, + -1, 3552, -1, -1, -1, 862, -1, 654, 4543, -1, 2607, -1, 848, 80, 849, -1, 850, -1, 851, -1, + 852, 853, 854, -1, 855, 856, 857, -1, 858, 859, 5975, -1, 848, 860, 849, -1, 850, -1, 851, -1, + 852, 853, 854, -1, 855, 856, 857, -1, 858, 859, 6249, -1, 6250, 860, -1, -1, 6251, -1, -1, -1, + -1, -1, -1, -1, 81, -1, -1, 82, 83, -1, -1, 84, -1, -1, 85, 86, 87, 5888, -1, -1, -1, -1, -1, + -1, 88, -1, -1, -1, -1, -1, -1, 89, -1, 90, 91, -1, -1, 92, -1, -1, 93, 94, -1, -1, -1, 95, -1, + -1, -1, -1, -1, -1, -1, -1, 96, 6252, -1, -1, 97, 98, 99, -1, -1, 100, 6253, 101, 102, 103, + 104, -1, -1, 6254, -1, -1, -1, -1, 105, -1, 106, -1, -1, -1, -1, 861, -1, -1, -1, 862, -1, 654, + 6255, 187, 188, 189, 190, 191, -1, -1, 107, -1, -1, 6256, 108, 861, 109, 110, -1, 862, -1, 654, + -1, -1, -1, -1, -1, 111, -1, 112, -1, -1, -1, -1, -1, -1, 113, 114, -1, -1, 115, 116, 117, 118, + 119, -1, -1, -1, -1, 193, -1, -1, -1, 120, -1, 121, -1, 122, -1, -1, 123, -1, -1, -1, 124, 125, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 126, 127, -1, -1, -1, -1, 128, -1, -1, -1, -1, 129, -1, + 6027, -1, 848, -1, 849, -1, 850, -1, 851, 130, 852, 853, 854, -1, 855, 856, 857, -1, 858, 859, + -1, -1, -1, 860, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5776, -1, -1, 5777, -1, -1, -1, -1, 131, + -1, -1, 132, 133, 134, -1, -1, -1, -1, 135, -1, -1, 136, -1, 137, -1, 138, -1, 139, 140, -1, + -1, -1, 141, 142, -1, -1, 143, -1, 144, 145, -1, -1, -1, 146, 147, 148, -1, -1, 149, 150, 151, + 152, 153, -1, -1, -1, -1, -1, -1, 154, -1, 155, 156, 157, -1, -1, -1, -1, -1, 1326, 159, -1, + 160, 161, -1, -1, -1, -1, -1, 162, 163, 164, -1, -1, 165, 166, 167, 168, -1, 169, 170, -1, 171, + 172, -1, 173, 174, -1, 175, -1, 861, -1, -1, -1, 862, -1, 654, -1, -1, -1, 176, -1, 177, -1, + -1, 178, -1, 179, 180, -1, -1, 6324, 6325, 6326, -1, -1, 6251, 181, -1, 182, -1, -1, -1, -1, + 183, -1, -1, -1, -1, 184, 1326, -1, -1, -1, -1, -1, -1, -1, -1, 185, -1, -1, -1, 186, 187, 188, + 189, 190, 191, 1327, -1, -1, 1328, -1, 192, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, + 1335, 1336, -1, -1, -1, 1337, 5797, -1, 1339, 1340, 1341, 6252, 1342, -1, -1, -1, -1, -1, -1, + -1, 6253, -1, -1, -1, -1, -1, 193, 6254, -1, -1, -1, -1, -1, -1, -1, -1, 1343, 1344, 1345, -1, + -1, -1, 1346, -1, -1, -1, 6255, 6327, 6328, 189, 190, 191, -1, -1, -1, -1, 1327, 6256, -1, + 1328, 1347, -1, 1329, 1330, 1331, 1348, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, -1, + 1337, -1, 5808, 3304, 1340, 1341, -1, 1342, -1, -1, -1, -1, -1, -1, -1, 1349, -1, 193, -1, -1, + -1, -1, -1, -1, -1, -1, 1353, 1354, 1355, 1356, 1326, -1, 1344, 1345, -1, -1, -1, 3305, 1357, + 651, -1, -1, -1, 652, 653, 654, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1347, -1, -1, -1, -1, 1348, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6325, + 6401, -1, 1349, 6251, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1353, 1354, 1355, 1356, 1326, -1, -1, + -1, -1, -1, -1, -1, 1357, 651, -1, -1, -1, 652, 653, 654, -1, -1, -1, 1327, -1, -1, 1328, -1, + -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, -1, 1337, 3326, -1, + 1339, 1340, 1341, 6252, 1342, -1, -1, -1, 5809, 3328, -1, -1, 6253, -1, -1, -1, -1, -1, -1, + 6254, -1, -1, -1, -1, -1, -1, -1, -1, 1343, 1344, 1345, -1, -1, -1, 1346, -1, -1, -1, 6255, + 187, 188, 189, 190, 191, -1, 1326, -1, -1, 1327, 6256, -1, 1328, 1347, -1, 1329, 1330, 1331, + 1348, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, -1, 1337, 1461, -1, 1339, 1340, 1341, -1, + 1342, -1, -1, -1, -1, -1, -1, -1, 1349, -1, 193, -1, -1, -1, -1, -1, -1, -1, -1, 1353, 1354, + 1355, 1356, -1, 1343, 1344, 1345, -1, -1, -1, 1346, 1357, 651, 5810, -1, -1, 652, 653, 654, -1, + -1, 1326, -1, -1, -1, -1, -1, -1, 1347, -1, -1, -1, -1, 1348, -1, -1, -1, -1, -1, -1, 1327, -1, + -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, 1349, + 1337, 1461, -1, 1339, 1340, 1341, -1, 1342, -1, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, + -1, -1, -1, 1357, 651, -1, -1, -1, 652, 653, 654, -1, 1343, 1344, 1345, -1, -1, -1, 1346, -1, + -1, 5815, -1, -1, -1, -1, -1, -1, -1, 1326, -1, -1, 1327, -1, -1, 1328, 1347, -1, 1329, 1330, + 1331, 1348, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, -1, 1337, -1, 5825, 3304, 1340, + 1341, -1, 1342, -1, -1, -1, -1, -1, -1, -1, 1349, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1353, + 1354, 1355, 1356, -1, -1, 1344, 1345, -1, 1326, -1, 3305, 1357, 651, -1, -1, -1, 652, 653, 654, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 1347, -1, -1, -1, -1, 1348, -1, -1, -1, -1, -1, -1, 1327, + -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, + 1349, 1337, 1461, -1, 1339, 1340, 1341, -1, 1342, -1, -1, 1353, 1354, 1355, 1356, -1, -1, -1, + -1, -1, -1, -1, -1, 1357, 651, -1, -1, -1, 652, 653, 654, -1, 1343, 1344, 1345, -1, 1326, -1, + 1346, 1327, -1, 5834, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, + 1336, 1347, -1, -1, 1337, 5877, 1348, 1339, 1340, 1341, -1, 1342, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1349, -1, -1, 1343, 1344, 1345, -1, -1, -1, + 1346, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, 1326, -1, -1, 1357, 651, -1, -1, 1347, + 652, 653, 654, -1, 1348, -1, -1, -1, -1, -1, -1, 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, + -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, 1349, 1337, 5889, -1, 1339, 1340, 1341, -1, + 1342, -1, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, -1, -1, 1357, 651, -1, -1, -1, + 652, 653, 654, -1, 1343, 1344, 1345, -1, -1, -1, 1346, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 1326, -1, -1, 1327, -1, -1, 1328, 1347, -1, 1329, 1330, 1331, 1348, 1332, 1333, 1334, 857, -1, + 1335, 1336, -1, -1, -1, 1337, 1461, -1, 1339, 1340, 1341, -1, 1342, -1, -1, -1, -1, -1, -1, -1, + 1349, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1353, 1354, 1355, 1356, -1, 1343, 1344, 1345, -1, + 1326, -1, 1346, 1357, 651, 5891, -1, -1, 652, 653, 654, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 1347, -1, -1, -1, -1, 1348, -1, -1, -1, -1, -1, -1, 1327, -1, -1, 1328, -1, -1, 1329, 1330, + 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, 1349, 1337, 1461, -1, 1339, 1340, + 1341, -1, 1342, -1, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, 3404, -1, 1357, 651, + -1, -1, -1, 652, 653, 654, -1, 1343, 1344, 1345, -1, -1, -1, 1346, 1327, -1, 5892, 1328, -1, + -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, 1347, -1, -1, 1337, 5926, + 1348, 1339, 1340, 1341, -1, 1342, -1, -1, 5951, 3406, 3407, -1, -1, -1, -1, -1, -1, -1, 3408, + 913, -1, -1, -1, -1, 3409, -1, 1349, 1326, -1, 1343, 1344, 1345, -1, -1, 3410, 1346, -1, 1353, + 1354, 1355, 1356, 3411, -1, -1, -1, -1, -1, -1, -1, 1357, 651, -1, -1, 1347, 652, 653, 654, -1, + 1348, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3412, -1, 3413, 3414, -1, -1, + -1, -1, -1, -1, 1349, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1353, 1354, 1355, 1356, -1, -1, + -1, -1, -1, -1, -1, -1, 1357, 651, -1, -1, -1, 652, 653, 654, -1, 1326, 1327, -1, -1, 1328, -1, + -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, -1, 1337, 3264, -1, + 1339, 1340, 1341, -1, 1342, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3415, -1, -1, -1, -1, + -1, 914, -1, -1, -1, -1, 649, 1343, 1344, 1345, -1, -1, -1, 1346, -1, -1, -1, -1, 3416, 651, + -1, -1, -1, 652, 653, 654, -1, -1, -1, -1, -1, 1347, -1, -1, -1, -1, 1348, -1, -1, -1, -1, -1, + -1, -1, 5991, 1327, -1, -1, 1328, -1, 5531, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, + 1335, 1336, 1349, -1, -1, 1337, 6005, -1, 1339, 1340, 1341, -1, 1342, 1353, 1354, 1355, 1356, + -1, -1, -1, -1, -1, -1, -1, -1, 1357, 651, -1, -1, -1, 652, 653, 654, 1326, -1, -1, 1343, 1344, + 1345, -1, -1, -1, 1346, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 1347, -1, 6381, -1, 848, 1348, 849, -1, 850, -1, 851, -1, 852, 853, 854, -1, 855, 856, 857, -1, + 858, 859, -1, -1, -1, 860, -1, -1, -1, -1, -1, 1349, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, -1, -1, 1357, 651, -1, -1, -1, 652, 653, 654, + 1326, 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, + -1, -1, -1, 1337, 6012, -1, 1339, 1340, 1341, -1, 1342, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6013, 6014, -1, 1343, 1344, 1345, -1, -1, -1, 1346, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 861, -1, -1, 1347, 862, -1, 654, -1, 1348, + -1, -1, -1, -1, -1, -1, -1, 1326, 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, + 1334, 857, -1, 1335, 1336, 1349, -1, -1, 1337, 6012, -1, 1339, 1340, 1341, -1, 1342, 1353, + 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, -1, -1, 1357, 651, -1, -1, -1, 652, 653, 654, 6015, + 6014, -1, 1343, 1344, 1345, -1, -1, -1, 1346, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 1326, -1, -1, -1, -1, 1347, -1, -1, -1, -1, 1348, -1, -1, -1, -1, -1, -1, -1, -1, 1327, -1, -1, + 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, 1349, -1, -1, 1337, + 6012, -1, 1339, 1340, 1341, -1, 1342, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, -1, -1, + 1357, 651, -1, -1, -1, 652, 653, 654, 6016, 6014, -1, 1343, 1344, 1345, -1, -1, -1, 1346, -1, + -1, -1, 6021, -1, -1, -1, -1, -1, -1, 1326, -1, -1, 1327, -1, -1, 1328, 1347, -1, 1329, 1330, + 1331, 1348, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, -1, 1337, -1, 5579, 3304, 1340, + 1341, -1, 1342, -1, -1, -1, -1, -1, -1, -1, 1349, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1353, + 1354, 1355, 1356, -1, -1, 1344, 1345, -1, -1, -1, 3305, 1357, 651, -1, -1, -1, 652, 653, 654, + -1, -1, 1326, -1, -1, -1, -1, -1, -1, 1347, -1, -1, -1, -1, 1348, -1, -1, -1, -1, -1, -1, 1327, + -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, + 1349, 1337, 1461, -1, 1339, 1340, 1341, -1, 1342, -1, -1, 1353, 1354, 1355, 1356, -1, -1, -1, + -1, -1, -1, -1, -1, 1357, 651, -1, -1, -1, 652, 653, 654, -1, 1343, 1344, 1345, -1, -1, -1, + 1346, -1, -1, 6030, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1327, -1, -1, 1328, 1347, -1, 1329, + 1330, 1331, 1348, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, -1, 1337, 1461, -1, 1339, + 1340, 1341, -1, 1342, -1, -1, -1, -1, -1, -1, -1, 1349, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 1353, 1354, 1355, 1356, 1326, 1343, 1344, 1345, -1, -1, -1, 1346, 1357, 651, 6032, -1, -1, 652, + 653, 654, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1347, -1, -1, -1, -1, 1348, -1, -1, -1, 6033, + 5597, 5598, 5599, 5600, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 1349, -1, 1326, -1, -1, -1, -1, -1, -1, -1, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, + -1, -1, 1357, 651, -1, -1, -1, 652, 653, 654, -1, -1, -1, 1327, -1, -1, 1328, -1, -1, 1329, + 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, -1, 1337, 5601, -1, 1339, 1340, + 1341, -1, 1342, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1343, 1344, 1345, -1, 1326, -1, 1346, 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, + -1, 1332, 1333, 1334, 857, -1, 1335, 1336, 1347, -1, -1, 1337, 6046, 1348, 1339, 1340, 1341, + -1, 1342, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1349, + -1, -1, 1343, 1344, 1345, -1, 1326, -1, 1346, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, + -1, -1, -1, 1357, 651, -1, -1, 1347, 652, 653, 654, -1, 1348, -1, -1, -1, -1, -1, -1, 1327, -1, + -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, 1349, + 1337, 6061, -1, 1339, 1340, 1341, -1, 1342, -1, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, + -1, -1, -1, 1357, 651, -1, -1, -1, 652, 653, 654, -1, 1343, 1344, 1345, -1, 1326, -1, 1346, + 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, 1347, + -1, -1, 1337, 6012, 1348, 1339, 1340, 1341, -1, 1342, -1, -1, 1327, -1, -1, 1328, -1, -1, 1329, + 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, 1349, 6155, 1337, 1343, 1344, 1345, + -1, -1, -1, 1346, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, -1, -1, 1357, 651, -1, + -1, 1347, 652, 653, 654, -1, 1348, -1, -1, -1, -1, -1, -1, 1327, -1, -1, 1328, -1, -1, 1329, + 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, 1349, 1337, -1, -1, 6167, 1340, + 1341, -1, 1342, -1, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, -1, -1, 1357, 651, -1, + -1, -1, 652, 653, 654, 1326, -1, 1344, 1345, -1, -1, -1, -1, -1, -1, 6387, 6440, 1355, 1356, + -1, -1, -1, -1, -1, -1, -1, -1, 650, 651, -1, 1347, -1, 652, 653, 654, 1348, -1, -1, 6182, + 5596, 5597, 5598, 5599, 5600, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 1349, -1, 1326, -1, -1, -1, -1, -1, -1, -1, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, + -1, -1, -1, 1357, 651, -1, -1, -1, 652, 653, 654, -1, -1, -1, 1327, -1, -1, 1328, -1, -1, 1329, + 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, -1, 1337, 5601, -1, 1339, 1340, + 1341, -1, 1342, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1343, 1344, 1345, -1, 1326, -1, 1346, 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, + -1, 1332, 1333, 1334, 857, -1, 1335, 1336, 1347, -1, -1, 1337, 6237, 1348, 1339, 1340, 1341, + -1, 1342, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1349, + -1, -1, 1343, 1344, 1345, -1, -1, -1, 1346, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, + 1326, -1, -1, 1357, 651, -1, -1, 1347, 652, 653, 654, -1, 1348, -1, -1, -1, -1, -1, -1, 1327, + -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, + 1349, 1337, 6261, -1, 1339, 1340, 1341, -1, 1342, -1, -1, 1353, 1354, 1355, 1356, -1, -1, -1, + -1, -1, -1, -1, -1, 1357, 651, -1, -1, -1, 652, 653, 654, -1, 1343, 1344, 1345, -1, -1, -1, + 1346, -1, -1, -1, -1, -1, -1, -1, -1, 1326, -1, -1, -1, -1, 1327, -1, -1, 1328, 1347, -1, 1329, + 1330, 1331, 1348, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, -1, 1337, -1, 6276, 3304, + 1340, 1341, -1, 1342, -1, -1, -1, -1, -1, -1, -1, 1349, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 1353, 1354, 1355, 1356, -1, -1, 1344, 1345, -1, -1, -1, 3305, 1357, 651, -1, -1, -1, 652, 653, + 654, 1326, -1, -1, -1, -1, -1, -1, -1, -1, 1347, -1, -1, -1, -1, 1348, -1, -1, -1, -1, 1327, + -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, -1, + 1337, 1349, 6277, 3304, 1340, 1341, -1, 1342, -1, -1, -1, -1, 1353, 1354, 1355, 1356, -1, -1, + -1, -1, -1, -1, -1, -1, 1357, 651, -1, -1, -1, 652, 653, 654, 1344, 1345, -1, -1, -1, 3305, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1326, -1, 1327, -1, -1, 1328, 1347, -1, 1329, 1330, + 1331, 1348, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, -1, 1337, -1, 6279, 3304, 1340, + 1341, -1, 1342, -1, -1, -1, -1, -1, -1, -1, 1349, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1353, + 1354, 1355, 1356, -1, -1, 1344, 1345, -1, -1, 1326, 3305, 1357, 651, -1, -1, -1, 652, 653, 654, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 1347, -1, -1, -1, -1, 1348, -1, -1, -1, -1, -1, -1, -1, + 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, + 1349, -1, 1337, 6012, -1, 1339, 1340, 1341, -1, 1342, -1, 1353, 1354, 1355, 1356, -1, -1, -1, + -1, -1, -1, -1, -1, 1357, 651, -1, -1, 1731, 652, 653, 654, 6336, -1, 1343, 1344, 1345, -1, + 1326, -1, 1346, 1327, -1, -1, 1328, -1, -1, 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, + 1335, 1336, 1347, -1, -1, 1337, 6344, 1348, 1339, 1340, 1341, -1, 1342, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1349, -1, -1, 1343, 1344, 1345, -1, -1, + -1, 1346, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, 1326, -1, -1, 1357, 651, -1, -1, + 1347, 652, 653, 654, -1, 1348, -1, -1, -1, -1, -1, -1, 1327, -1, -1, 1328, -1, -1, 1329, 1330, + 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, 1349, 1337, 1461, -1, 1339, 1340, + 1341, -1, 1342, -1, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, -1, -1, 1357, 651, -1, + -1, -1, 652, 653, 654, -1, 1343, 1344, 1345, -1, -1, -1, 1346, -1, -1, 6355, -1, -1, -1, -1, + -1, -1, -1, 1326, -1, -1, 1327, -1, -1, 1328, 1347, -1, 1329, 1330, 1331, 1348, 1332, 1333, + 1334, 857, -1, 1335, 1336, -1, -1, -1, 1337, 1461, -1, 1339, 1340, 1341, -1, 1342, -1, -1, -1, + -1, -1, -1, -1, 1349, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1353, 1354, 1355, 1356, -1, 1343, + 1344, 1345, -1, -1, -1, 1346, 1357, 651, 6392, -1, -1, 652, 653, 654, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1347, -1, -1, -1, -1, 1348, -1, -1, -1, -1, -1, -1, 1327, -1, -1, 1328, -1, -1, + 1329, 1330, 1331, -1, 1332, 1333, 1334, 857, -1, 1335, 1336, -1, -1, 1349, 1337, 1732, -1, + 1339, 1340, 1341, -1, 1342, -1, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, -1, -1, + 1357, 651, -1, -1, -1, 652, 653, 654, -1, 1343, 1344, 1345, -1, -1, -1, 1346, -1, -1, -1, 6439, + 1734, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1347, -1, -1, -1, -1, 1348, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1349, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1353, 1354, 1355, 1356, -1, -1, -1, -1, -1, -1, -1, -1, + 1357, 1735, -1, -1, -1, 652, 653, 654, -1, -1, -1, +]; +pub(crate) static GOTO_TABLE_INDEX: [u32; 6473] = [ + 0, 1, 2, 3, 3, 4, 5, 3, 9, 6, 3, 10, 7, 13, 16, 18, 3, 11, 14, 12, 28, 63, 45, 26, 3, 36, 8, + 15, 29, 49, 59, 69, 23, 71, 94, 38, 77, 3, 3, 22, 85, 87, 109, 17, 96, 3, 19, 105, 98, 3, 124, + 24, 112, 20, 3, 121, 128, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 25, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 31, 3, 42, 3, 3, 3, 3, 30, 137, 145, 147, 135, 3, + 149, 3, 161, 3, 169, 166, 179, 3, 3, 196, 192, 3, 199, 203, 188, 224, 222, 232, 235, 248, 214, + 251, 3, 292, 258, 3, 260, 244, 274, 272, 3, 34, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 21, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 558, 3, 288, + 32, 48, 35, 3, 138, 303, 3, 295, 3, 299, 306, 3, 310, 3, 317, 3, 3, 325, 3, 335, 3, 328, 339, + 344, 158, 357, 320, 367, 369, 3, 3, 3, 353, 3, 3, 377, 3, 3, 3, 3, 27, 3, 380, 3, 50, 3, 3, 3, + 3, 3, 390, 3, 106, 3, 3, 3, 432, 33, 3, 3, 393, 578, 3, 3, 3, 400, 408, 3, 3, 747, 3, 3, 603, + 3, 417, 639, 3, 3, 3, 3, 3, 436, 3, 466, 3, 41, 3, 625, 423, 3, 3, 355, 483, 470, 37, 44, 40, + 753, 1055, 3, 3, 3, 39, 3, 3, 3, 3, 3, 3, 3, 3, 68, 46, 78, 51, 701, 3, 3, 3, 53, 58, 55, 57, + 73, 81, 3, 513, 3, 3, 60, 3, 3, 47, 54, 61, 3, 3, 3, 62, 3, 3, 3, 3, 3, 651, 3, 3, 42, 3, 3, + 43, 3, 3, 3, 3, 3, 3, 3, 896, 3, 3, 52, 3, 67, 74, 65, 75, 3, 56, 3, 3, 3, 3, 3, 3, 76, 83, 3, + 671, 3, 72, 79, 3, 3, 64, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 80, 3, 99, 3, 3, 84, 70, 66, 3, 3, 796, + 90, 524, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 62, 89, 82, 3, 100, 1033, 1170, 97, 584, 576, 104, + 610, 117, 614, 3, 103, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 140, 527, 3, 3, 3, 226, 729, 3, 3, 3, 847, + 110, 1307, 648, 3, 3, 108, 3, 1948, 934, 709, 86, 101, 3, 102, 772, 3, 3, 95, 3, 3, 3, 3, 700, + 3, 3, 3, 3, 114, 3, 92, 3, 280, 107, 91, 636, 88, 3, 766, 213, 93, 237, 3, 3, 3, 3, 3, 3, 115, + 3, 3, 3, 3, 3, 3, 221, 504, 664, 696, 3, 3, 718, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 111, 3, 3, 3, + 3, 3, 3, 239, 3, 113, 3, 131, 1043, 3, 3, 3, 297, 122, 3, 3, 3, 623, 675, 3, 3, 165, 3, 3, 3, + 120, 119, 3, 3, 143, 3, 170, 725, 3, 3, 3, 3, 3, 157, 3, 1863, 679, 1934, 3, 129, 3, 3, 3, 3, + 1346, 3, 132, 3, 226, 756, 3, 733, 736, 3, 1090, 855, 3, 3, 858, 990, 3, 999, 3, 3, 3, 1199, + 740, 822, 3, 845, 3, 3, 3, 3, 3, 3, 3, 3, 116, 874, 3, 1254, 3, 118, 134, 142, 883, 3, 144, 3, + 711, 3, 3, 146, 3, 3, 3, 893, 988, 127, 125, 3, 126, 148, 3, 3, 123, 3, 136, 3, 139, 3, 3, 130, + 3, 150, 3, 154, 3, 806, 1020, 865, 3, 1030, 151, 942, 3, 1099, 1108, 980, 3, 1157, 3, 141, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 164, 3, 3, 3, 155, 3, 167, 3, 3, 3, 3, 3, 174, 3, 3, 3, 3, 1148, 3, + 1112, 1208, 3, 175, 3, 1215, 3, 176, 3, 3, 3, 177, 3, 178, 3, 3, 3, 3, 3, 185, 3, 3, 3, 3, 3, + 189, 3, 3, 197, 3, 3, 3, 3, 2021, 3, 3, 3, 3, 3, 2254, 172, 3, 1167, 180, 1260, 191, 1282, 204, + 1286, 206, 1324, 3, 1326, 1350, 3, 225, 3, 1354, 1237, 3, 3, 1404, 3, 3, 3, 1358, 900, 1221, 3, + 1316, 3, 156, 3, 3, 187, 3, 153, 3, 3, 52, 3, 2169, 3, 67, 74, 3, 3, 3, 3, 3, 3, 3, 3, 3, 65, + 75, 3, 159, 3, 3, 3, 56, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2317, 3, 2375, + 3, 76, 3, 2462, 2520, 3, 3, 83, 3, 3, 3, 193, 3, 2607, 3, 3, 3, 3, 3, 3, 3, 72, 79, 3, 3, 3, + 133, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 261, 230, 3, 3, 3, 3, 3, 3, 3, 3, 243, 3, 1419, 3, 207, + 3, 3, 3, 3, 3, 2665, 3, 3, 209, 152, 3, 3, 268, 3, 3, 3, 563, 3, 3, 3, 3, 2752, 3, 3, 3, 233, + 3, 271, 331, 3, 3, 160, 236, 3, 3, 3, 249, 3, 3, 3, 252, 3, 3, 324, 3, 3, 3, 3, 3, 3, 1380, + 414, 3, 316, 3, 3, 1567, 3, 1467, 201, 3, 3, 3, 202, 3, 3, 211, 215, 3, 3, 3, 3, 594, 3, 1412, + 1498, 3, 3, 722, 3, 1521, 3, 182, 184, 3, 3, 173, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1547, 3, 3, + 1377, 330, 157, 425, 2574, 3, 2687, 3, 3, 3, 3, 1396, 3, 3, 129, 183, 3, 3, 163, 964, 3, 3, + 1408, 1482, 3, 3, 3, 3, 3, 3, 168, 3, 3, 1042, 1228, 2839, 1262, 205, 3, 2979, 3118, 1194, 162, + 186, 1674, 523, 3, 171, 1736, 3, 1694, 1516, 1705, 932, 3, 3206, 3, 3, 3, 3, 3, 3293, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2279, 3, 3, 1861, 3, 3, 3, 275, 3, 200, 269, 181, 3, 3, + 3, 3, 3, 3, 194, 3, 3, 3, 212, 2027, 1570, 3, 219, 3, 556, 3, 3, 3, 3, 3, 3, 1002, 3, 3, 1280, + 3, 1610, 3, 3, 1599, 3, 3, 3, 3, 254, 3, 3346, 3, 129, 3, 3, 3, 1646, 2187, 223, 3, 3, 3, 241, + 3, 3, 1691, 3, 3, 1676, 3, 3, 3, 3, 190, 195, 3, 3, 3, 3, 3, 3, 3, 58, 73, 3, 3, 3, 3, 2042, 3, + 3, 2103, 3, 3, 3, 1416, 1713, 1720, 3, 3, 1610, 1588, 3, 1959, 2089, 3, 3, 2107, 3, 208, 3, 3, + 3, 198, 216, 3, 3, 1610, 1960, 3, 1760, 3, 3, 1768, 2917, 1325, 3, 228, 3, 1328, 1494, 3, 3, 3, + 217, 3, 195, 218, 3, 3, 231, 3, 3, 3, 345, 3, 255, 1717, 3, 3, 3, 3, 352, 3, 3, 3, 3, 3, 3, + 238, 240, 3, 3, 3, 3, 1801, 3, 3, 3, 245, 195, 3, 3, 3, 3, 250, 253, 1771, 1788, 1833, 1836, + 1844, 3, 3, 3, 3, 3, 3, 3, 3, 220, 1841, 3, 210, 281, 1872, 256, 195, 3, 3, 229, 3, 3, 3, 242, + 3, 3369, 3440, 3, 3, 3527, 3, 964, 609, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 964, 3, 3, 2134, 1926, 3, 3, 3, 3, 3, 3, 3, 1798, 3, 1955, 3, 3607, 3, 3, 3, + 3, 1523, 2000, 2013, 3, 3, 3, 3667, 3, 3, 3, 3, 3, 259, 3, 3, 3, 3, 2074, 2227, 3, 2172, 3, + 3687, 3, 3, 265, 1951, 3, 3, 234, 227, 3, 3, 3, 3, 1963, 2449, 266, 3, 264, 3, 1877, 3008, 3, + 365, 293, 3, 3, 375, 2064, 3, 2128, 2145, 2179, 2214, 3, 3, 2124, 3, 278, 2142, 3, 427, 3, 3, + 351, 399, 2223, 3, 3, 2078, 888, 2111, 273, 289, 3, 3707, 282, 3, 3, 3, 246, 3, 3, 3, 2276, 3, + 2286, 3, 3, 3, 3737, 2167, 3, 3767, 3799, 3, 3, 2814, 2657, 3, 2159, 2308, 3, 263, 3, 3, 3, 3, + 2880, 2775, 3, 279, 2817, 3, 2325, 2888, 3, 2177, 3, 2231, 3, 3, 3, 3, 3819, 3839, 3, 2367, + 2742, 3, 2477, 2428, 3, 2474, 2290, 3, 2507, 2532, 3, 2329, 4010, 3, 2619, 3, 2826, 3, 2911, 3, + 2929, 3, 2938, 3, 3, 3, 2988, 3, 3, 3, 3, 2221, 3, 3, 2585, 2837, 3, 3020, 2766, 3, 2132, 3044, + 3060, 2849, 2773, 2915, 2948, 2960, 3, 3, 3, 284, 323, 3028, 262, 406, 3, 3, 3, 1036, 3976, + 4064, 3, 3, 964, 479, 4135, 4222, 3, 387, 397, 3, 759, 4293, 4380, 4438, 4591, 4649, 4788, + 4877, 5015, 5152, 5210, 5297, 5355, 5492, 404, 441, 261, 964, 3, 3, 964, 5550, 964, 964, 5637, + 3277, 5724, 452, 5795, 964, 5882, 5969, 6040, 6127, 3, 659, 6198, 3, 6283, 6354, 549, 3, 6441, + 555, 129, 3, 3, 492, 596, 698, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 6499, 3, 2679, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 517, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 2568, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 6586, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 6644, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 6731, 3, 3, 3, 6789, 3, 3, 3, 3, 3, 3, 6876, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 744, 586, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 6934, 3, 7021, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 7079, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 7166, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 7224, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 7311, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 7369, 7456, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 7514, 7601, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 4737, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 7659, 589, 3, 3, 3, + 618, 630, 964, 3, 617, 7731, 742, 7798, 7935, 3, 3, 129, 8072, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 569, 571, 3, 712, 721, 3, 723, 628, 3, 3, 2969, 3, 3, 3, 3, 4148, 3, 2690, 3, 2577, 2945, 2931, + 3, 3, 3390, 3, 287, 2764, 1174, 3, 3, 2472, 3076, 794, 797, 3, 3, 3, 3024, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 633, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 283, 3148, 906, 6499, 3, + 517, 2568, 6876, 744, 586, 7021, 3, 7311, 3, 8130, 3, 3, 3, 861, 3378, 3138, 3, 3, 3, 3, 3, + 3144, 3, 3, 3, 8218, 3, 3, 3, 3, 3, 3, 3, 964, 8276, 8363, 3, 832, 964, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3073, 267, 3214, 2632, 285, 3408, 3, 3, 2470, 3, 3438, 3, 3, 2512, 3111, 3141, 3, 3, 3, 3, + 4815, 3, 3, 3, 7894, 8420, 3, 3, 3, 3, 1098, 2885, 3, 3181, 3269, 3274, 3299, 3343, 3, 3335, 3, + 3382, 3394, 3, 3, 3, 3, 3, 4191, 3, 3782, 3, 3880, 3, 3, 3, 3427, 3, 3, 3, 3463, 3, 3, 3465, + 3495, 3497, 8451, 3, 3507, 3514, 3, 3, 3, 3, 3, 3524, 332, 3876, 3, 4957, 3808, 3985, 3829, + 3918, 3, 5044, 3236, 3595, 1492, 3816, 305, 195, 3, 3, 3, 3, 3, 3658, 3, 3597, 3, 3, 3, 3, + 3754, 3, 3, 3, 3, 3, 1610, 3, 3, 3, 3, 3, 3, 3756, 4030, 3731, 1415, 3, 3052, 3735, 286, 3, 3, + 3, 583, 3, 3, 3, 5579, 3, 3827, 3775, 3127, 3843, 3, 3890, 3993, 4038, 2777, 3, 3, 3, 4061, + 4077, 3, 3, 3, 3266, 3, 3, 4501, 4082, 4122, 257, 4282, 3, 3, 3, 4149, 3, 3, 3, 4152, 394, 3, + 3, 3, 3, 3, 3290, 326, 195, 3, 3, 4201, 4220, 3, 3, 4236, 4337, 4247, 3, 3, 302, 4243, 4301, + 4350, 3, 3, 3, 4394, 3, 3, 3, 405, 3, 1784, 3, 4399, 4353, 3, 3, 4407, 2279, 3, 4415, 294, 3, + 4429, 4447, 4455, 3, 3, 3, 4486, 4494, 3375, 3, 3, 3, 1558, 3, 3, 3, 3, 3, 4092, 4496, 2085, + 4451, 4512, 2188, 3, 3, 4544, 4570, 3, 3, 3, 3, 4559, 4578, 4625, 1448, 4719, 3, 4723, 4639, + 296, 4642, 4730, 3, 3, 4741, 1810, 3773, 3873, 4781, 4785, 4797, 4807, 4715, 4847, 3, 3, 3, + 312, 3, 3, 321, 3456, 318, 2941, 3017, 661, 4812, 4857, 4870, 680, 4967, 4874, 290, 3, 3, 3, 3, + 4947, 294, 3, 2119, 4951, 4963, 4980, 3, 3, 3, 3, 3, 3, 3, 1146, 1183, 3, 1229, 8590, 8648, + 8735, 3, 3, 3, 8793, 3, 929, 3, 3, 1128, 3, 1175, 4516, 1253, 1371, 3, 3, 3, 1439, 1465, 1469, + 3, 1510, 1540, 1603, 4885, 276, 3, 3, 315, 304, 8880, 7964, 4978, 3, 3, 3, 3, 3, 247, 4042, + 4994, 270, 2362, 3, 5939, 3, 314, 3, 4996, 3, 3974, 370, 3, 300, 3, 314, 3307, 311, 2174, 4160, + 3, 3, 3, 3, 3, 3, 3, 5008, 3, 3, 3, 5052, 6208, 3, 3, 697, 343, 350, 392, 418, 3, 5019, 465, 3, + 3, 314, 3, 3, 3, 231, 3, 4805, 8496, 5056, 3, 322, 301, 3, 3, 469, 708, 3, 3, 3, 9081, 3, 468, + 3, 8937, 5490, 5583, 3, 3, 3, 3, 3, 1612, 5012, 3, 3, 3, 3, 337, 3, 3, 348, 1459, 347, 3, 363, + 3, 3, 3, 5121, 3, 5066, 5125, 5144, 5160, 710, 3, 3, 1372, 3, 1418, 1423, 3, 3, 1429, 3, 3, 3, + 1436, 3, 1442, 3, 3, 1453, 3, 3, 351, 3, 3, 3, 3, 3, 3, 3, 3797, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 5218, 3, 3, 3550, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5398, 3, 5481, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 9102, 1248, 3, 964, 3, 9173, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 5328, 783, 9022, 261, 1252, 3, 3, 801, 791, 3, 964, 3, 3, 3, 807, 3, 964, 825, 3, 964, + 827, 3, 3, 3, 3, 853, 9260, 3, 964, 964, 3, 964, 3, 3, 3, 9408, 9493, 9564, 3, 882, 3, 9649, 3, + 3, 3, 964, 3, 3, 964, 9720, 9807, 9878, 9965, 964, 3, 3, 3, 3, 3, 3, 4596, 922, 964, 3, 3, + 10036, 4939, 964, 10123, 3, 3, 3, 964, 3, 3, 3, 3, 10194, 10279, 3, 964, 964, 964, 964, 964, + 10427, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 938, 3, 3, 3, 3, 842, 964, 964, 964, 964, 964, 901, + 10485, 1178, 10572, 3, 5063, 964, 964, 964, 10630, 964, 964, 3, 964, 3, 3, 3, 1063, 3, 952, + 10717, 3, 3, 3, 4034, 3, 3, 3, 9033, 10842, 3, 3, 5222, 3, 1059, 3, 5322, 4073, 5353, 5507, 3, + 1023, 3, 3, 1505, 10875, 1105, 3, 1490, 3, 3, 3, 936, 1062, 3, 3, 1079, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 9342, 3, 3, 5117, 562, 3, 3, 3, 3, 3, 5568, 1685, 3, 3, 5275, 5265, 10659, + 5401, 3, 5697, 5721, 10904, 5471, 5284, 3, 3, 4085, 1198, 1256, 1266, 3, 3, 1192, 1220, 3, + 1600, 1086, 1444, 8443, 3, 3, 3, 3, 3, 3, 5662, 964, 3, 3, 3, 3, 3, 3, 11012, 3, 3, 2001, 1478, + 1315, 1382, 3, 3, 1273, 3, 3, 3, 3, 3, 11070, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 11142, + 1269, 3, 7522, 1359, 1378, 3, 3239, 11193, 3, 4346, 1311, 3, 3, 1180, 3, 3, 3, 3, 3, 11467, + 1848, 3, 11224, 3, 11282, 3, 1098, 11373, 3, 3, 414, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 5542, 5738, 3, 5558, 3, 3, 11433, 1759, 1650, 3, 1892, 3, 3, 3, 3, 964, 3, 3, 3, 3, 3, 5319, + 5587, 3, 5817, 3, 3, 11333, 3, 3, 5485, 5504, 3, 3, 3, 11393, 3, 3, 3, 5655, 3, 3, 3, 5894, 3, + 1727, 1741, 2184, 5594, 5624, 5711, 3, 3, 3, 3, 3, 3, 3, 3, 11525, 3, 3, 3, 3, 3, 3, 11571, 3, + 3, 1816, 5749, 3, 3, 3, 1803, 3, 3, 1722, 2259, 1734, 3, 2905, 3, 3, 3, 3, 3, 3, 3, 3, 1966, 3, + 1973, 5782, 5809, 5812, 5826, 3, 3, 3, 3, 3, 3, 3, 3, 6288, 5947, 6301, 3, 3, 3, 1806, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 4419, 3, 3, 3, 3, 3, 3, 5935, 5869, 2655, 5943, 5966, 5982, 3, 3, 3, + 11605, 11632, 3, 3, 3, 3, 3, 3, 5261, 3, 5990, 1754, 3, 3, 3, 3, 1869, 3, 6037, 1893, 1896, + 1929, 3, 3, 3, 3, 3, 3, 3, 3, 1292, 3, 6093, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 195, 3, 231, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1678, 1693, 3, 3, 3, 1725, 3, 1645, 195, 3, 3, 2012, + 2082, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2086, 11659, 3, 1393, + 1729, 3, 2108, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 6027, 3, 1758, 195, 3, 3, 3, 3, 6054, 6125, 3, 3, + 3, 8735, 3, 3, 3, 964, 964, 11800, 3, 3, 964, 3, 3, 3, 3, 3, 11712, 3, 5793, 3, 3, 3, 1874, + 6153, 6195, 3, 3, 3, 6212, 3, 3, 3, 3, 3, 2068, 2199, 3, 3, 3, 964, 3, 1891, 5831, 3, 11892, + 2719, 3, 401, 3, 6061, 6258, 6106, 3, 1727, 1984, 5336, 5585, 3, 3, 3, 3, 3, 3, 5700, 6145, 3, + 6260, 1473, 3, 3, 3, 3, 5994, 2066, 3, 1993, 1857, 3, 3, 2203, 3008, 3, 3, 2033, 3, 1791, + 11957, 3, 3, 3, 21, 6366, 2190, 3, 3, 3, 3, 2554, 3, 3, 3, 3, 6341, 3, 6701, 6136, 6453, 6399, + 2109, 3, 5579, 2193, 6292, 6403, 2126, 2230, 3, 3, 6767, 2157, 3, 3, 6573, 3, 3, 3, 3, 2180, 3, + 3, 3, 3, 1975, 6578, 11762, 1946, 3, 2030, 3778, 3, 3, 2162, 1911, 6411, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 6777, 3, 11986, 3, 3, 3, 3, 3, 3, 2319, 3, 2322, 3, 2327, 3, 3, 3, 3, 6434, 3, 6486, + 6491, 3, 3, 5904, 3, 3, 3, 3, 3, 3, 3, 3, 3, 6656, 3, 3, 3, 3805, 3339, 6449, 2055, 3, 3, 6539, + 2063, 3, 2081, 3, 6863, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1733, 3, 964, 12044, 3, 3, 12124, 3, 964, + 3, 3, 12184, 3, 12271, 3, 3, 3, 3, 3, 3, 3, 3, 1900, 1703, 3, 3, 12329, 3, 1706, 3, 1688, + 12466, 12524, 12661, 3, 3, 3, 12719, 3, 1718, 1724, 12807, 3, 3, 12865, 3, 3, 3, 452, 964, + 1772, 3, 12952, 3, 13010, 3, 3, 3, 882, 882, 13097, 13168, 13253, 13324, 13409, 13480, 3, + 13565, 13636, 13721, 13792, 3, 13877, 13948, 14033, 14104, 12358, 14189, 882, 3, 3, 14260, + 14347, 14405, 3, 3, 12553, 3, 3, 3, 3, 14492, 3, 3, 3, 3, 14550, 3, 6593, 14687, 3, 6763, 3, + 1817, 964, 1757, 14745, 882, 882, 14832, 3, 14890, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1756, 3, + 3, 14977, 15048, 15133, 964, 3, 964, 15204, 3, 964, 15360, 3, 1964, 3, 3, 15431, 15518, 3915, + 3, 3, 15576, 6221, 4727, 6642, 6787, 5222, 1059, 3, 3, 15713, 4133, 3, 3, 3, 15787, 3, 1932, 3, + 15831, 1935, 1943, 1945, 3, 1949, 4203, 3, 3, 3, 3, 3, 3, 3, 129, 964, 3, 1980, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 7153, 2224, 3, 6739, 3, 3, 3, 3, 2397, 3, 3, 3, 3, 3, 2025, 2037, 2040, + 2051, 3, 6511, 6743, 6801, 2073, 2077, 157, 3, 3, 3, 3, 3, 7871, 3, 3, 3, 2291, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 15867, 2148, 3, 3, 3, 1978, 3, 3, 3, 3, 2161, 3, 1059, 3, 3, 4505, 2059, + 16004, 452, 3, 414, 3, 3, 3, 15291, 3, 3, 3, 2330, 3, 3, 2346, 964, 3, 2403, 6631, 3, 6694, 3, + 3, 3, 3, 3, 3, 3, 3, 2391, 3, 3, 6722, 6776, 3, 3, 3, 2292, 195, 3, 3, 3, 3, 3, 3, 6834, 3, 3, + 3, 6838, 964, 3, 286, 3, 3, 8858, 7014, 4291, 7181, 2440, 6888, 7448, 2403, 4390, 3, 2635, + 2403, 3, 3, 3, 2617, 2669, 3779, 3, 2624, 3, 3, 3, 3, 6921, 3, 4458, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 7421, 3, 3, 3, 6946, 6973, 3, 6979, 16092, 3, 3, 3, 6983, 3, 3, 2313, 195, 3, 3, 3, 3, 3, + 3, 3, 3, 2505, 2806, 3, 3, 3, 3, 3, 3, 7010, 3, 16161, 3, 7066, 3, 3, 2488, 7091, 2572, 4552, + 3, 3, 3, 3, 2587, 2005, 1989, 3, 3, 3, 2038, 3, 2053, 7124, 7128, 7178, 7211, 2707, 3, 3, 3, 3, + 3, 7236, 7269, 7273, 7281, 3, 3, 3, 3, 3, 7323, 7356, 3, 3, 3, 7029, 7381, 7414, 7319, 7464, + 7526, 7559, 7609, 7613, 7635, 7638, 3, 3, 2693, 3, 3, 3, 3, 5077, 3, 7701, 2058, 3, 2537, 7712, + 7724, 7728, 7740, 3, 3, 3, 3, 3, 2578, 3, 3, 3, 2581, 3, 3, 3, 3, 2601, 3, 3, 2769, 3, 3003, + 7900, 2543, 3, 6845, 3, 3, 58, 3, 3, 73, 3, 3, 3, 3, 3, 3, 3, 7033, 7742, 16182, 3, 2684, 3, 3, + 3, 3, 6831, 2680, 3, 3, 3, 2566, 5742, 2629, 3, 3, 3, 3, 3, 3, 2695, 2692, 8064, 2740, 3, 7788, + 7908, 3, 3, 15668, 3, 2793, 3, 2656, 2666, 3, 7697, 3008, 7121, 2935, 3, 3, 964, 8503, 16305, + 2536, 3, 3, 3, 3, 3, 6932, 2717, 7984, 3, 2992, 3, 351, 2443, 3, 2760, 8037, 3048, 2815, 3, + 2856, 3, 2784, 3, 7970, 7933, 2779, 2863, 2219, 7856, 2623, 16337, 2708, 3, 3, 16374, 3, 16478, + 16536, 3, 3, 3, 3, 5686, 3, 3, 3, 3, 16623, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 7471, 7468, 2723, + 7977, 3, 3, 2747, 2515, 3, 3, 7860, 3, 7975, 3, 2954, 3, 3, 2957, 7705, 8082, 8140, 8143, 8181, + 8191, 3, 3159, 3, 3, 3, 7915, 3, 2674, 3, 6987, 3, 3, 3, 3, 3, 3, 7987, 3, 3, 3, 16681, 964, 3, + 3, 3, 964, 964, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 16769, 2303, 3359, 3, 3, 3, 3, 3, 2309, 2311, + 5483, 3, 5723, 3, 3, 964, 964, 16827, 3, 3, 882, 882, 882, 882, 882, 3, 3, 3, 882, 882, 882, + 882, 882, 882, 882, 882, 3, 882, 964, 964, 964, 3, 3, 3, 3, 3, 16964, 3, 3, 2347, 17022, 3, 3, + 3, 3, 3, 3, 17109, 3, 17167, 2388, 11735, 3, 3, 964, 17254, 17312, 964, 3, 964, 17399, 3, 3, + 964, 882, 882, 17457, 17544, 964, 3, 17602, 964, 3, 17689, 3, 3, 964, 2383, 3, 3, 3, 3, 3, 3, + 6352, 9270, 3, 2402, 3, 8205, 1059, 17765, 3, 3, 2609, 3, 17813, 3, 3, 17852, 7568, 3, 7284, 3, + 8230, 3, 2509, 17992, 2400, 2334, 3, 3, 3, 3, 3038, 2756, 2818, 2861, 2922, 2990, 3, 3040, + 3056, 3072, 3084, 3095, 8050, 8085, 8178, 8233, 3, 3, 3, 2527, 2535, 2368, 3, 7874, 3, 3, 3, 3, + 3, 3, 3, 964, 18050, 3, 5167, 8488, 452, 8576, 2618, 3, 18187, 5890, 3, 3, 2642, 964, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 8560, 3, 2886, 3, 3, 3, 3, 3, 3115, 3, 16856, 8034, 8312, 8377, 3, 3, + 3, 8380, 8387, 8399, 8406, 3, 3, 8413, 8431, 3, 2906, 7174, 18245, 3, 3, 3, 2975, 5260, 3, 3, + 3, 2403, 3, 3, 3, 3, 5164, 3, 2959, 3360, 3051, 3, 3, 3, 3, 3166, 3, 3, 3075, 3, 3531, 3, 3, 3, + 3, 3027, 3, 17631, 3182, 3183, 3, 3, 3, 3, 3, 3, 3, 3, 3, 8438, 8493, 8515, 8577, 8602, 8314, + 8635, 8660, 2510, 2538, 17849, 3, 3, 2544, 2550, 3, 3, 8598, 8697, 8705, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 18332, 3, 3, 3, 3, 3, 3, 18390, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 8725, 8728, + 3, 3, 3, 3, 3, 3, 3, 8845, 8848, 7139, 8855, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 7277, 3, 3, + 2559, 2563, 18079, 3251, 3296, 3, 3, 3, 3, 3, 3, 3, 3, 3177, 3, 3232, 3297, 3380, 3, 3241, 3, + 3316, 3, 3, 2403, 3, 3, 3, 18477, 3, 3223, 882, 3, 3, 3, 3, 3, 3, 3, 2983, 3218, 2986, 3, 3, + 8785, 3, 3, 3, 270, 9397, 9641, 3, 3, 3, 3, 3, 3273, 3, 3, 3, 8117, 3, 3, 3, 3, 3, 3, 3, 8743, + 3145, 3352, 3, 3, 3, 8837, 9579, 3, 3, 3, 3, 3, 2670, 3, 3, 3, 3327, 3, 8774, 10840, 7979, 3, + 3253, 3315, 3, 3, 3, 3, 3306, 3, 3284, 3, 3355, 3, 3, 3, 3295, 3011, 3, 3, 3300, 3, 3, 3, 3, 3, + 3, 8910, 3, 964, 964, 2721, 8951, 3208, 18419, 3, 3103, 964, 8914, 3071, 3, 3238, 3, 3301, + 3464, 3, 3, 3478, 3484, 3, 8918, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 964, 3, 8927, 3, 3, 3, + 3, 3, 3, 3, 3, 18564, 3672, 3, 3, 3, 3, 2807, 2819, 3, 3, 18622, 964, 3, 18709, 3, 3, 18767, + 18854, 18912, 3, 3, 3, 3, 3, 3, 3, 3, 2876, 3, 3, 3, 964, 3, 964, 3, 3, 2893, 964, 964, 964, + 18999, 19057, 964, 964, 19144, 964, 3, 3, 964, 3, 3, 3, 3140, 19202, 3, 3, 3, 2962, 19339, 3, + 8941, 3, 1059, 19374, 3, 3, 1059, 19492, 3372, 3, 3, 9121, 3, 11659, 19554, 964, 6281, 3219, 3, + 3, 3, 9068, 3, 3535, 3, 3, 3, 3, 3, 3, 3433, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2927, 2936, 3, 3059, 3, + 3, 9130, 3, 3, 3116, 3, 3, 9418, 3, 3, 9430, 3, 19641, 3, 3, 3, 9426, 3, 9502, 2403, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3092, 2403, 3, 964, 10817, 3479, 9196, 8041, 3, 9078, 3, 3, + 3498, 3547, 3, 3, 3586, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3571, 3, 3, 19723, 9236, 9006, 3, 3, 3, + 3, 3, 3, 3, 3, 9239, 9663, 3, 3441, 3, 3, 3458, 3, 3, 3, 9037, 964, 3, 964, 3, 3224, 9181, + 9278, 3, 3, 3, 3288, 3325, 3336, 3, 3, 9312, 3, 3, 3, 3677, 3, 3, 9323, 3, 3553, 3, 3, 3, 3, + 9555, 3, 3700, 3897, 3077, 9712, 3442, 3445, 964, 3, 3, 3, 3, 3685, 3719, 3715, 3, 6692, 3626, + 3, 3, 3, 3, 8934, 3746, 3749, 9094, 9363, 3, 9467, 3, 9840, 3, 3657, 3008, 3, 11046, 3, 3695, + 3, 3, 9480, 3, 9506, 3736, 3, 3796, 9170, 3, 3758, 9734, 3, 3, 2719, 6991, 3761, 3953, 3, 9628, + 3, 3, 3, 9998, 3, 8389, 9674, 12121, 3669, 3, 19294, 3, 3, 3, 3, 3, 3, 20365, 3349, 3, 3, 3, + 3963, 3679, 9865, 3946, 3, 3, 3, 3, 3, 3, 9677, 3, 3, 3, 3, 3, 20280, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3245, 3766, 964, 3, 882, 20351, 964, 964, 964, 20491, 20562, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 964, 964, 964, 3, 20649, 3291, 8947, 10052, 3366, 3, 3, 20720, 3, 3, 882, 8188, 3, 3, + 964, 9805, 1059, 3, 20807, 3, 3, 3, 3, 3, 2317, 3, 3, 3, 3, 3, 3, 3, 964, 3, 3, 3, 4326, 3633, + 3, 3, 3, 3, 3, 3437, 3, 3, 3, 3, 3, 9737, 3, 3, 4595, 3, 3460, 3467, 964, 3654, 3668, 3972, 3, + 9786, 3, 3, 3789, 3, 3, 3638, 3, 3, 3, 3702, 3937, 9519, 3674, 3698, 2719, 3, 3, 3, 20865, + 3970, 3, 3, 3574, 9835, 19533, 3, 3895, 3837, 3, 19698, 19865, 3, 3, 3, 20952, 3, 3, 3, 3, 3, + 21023, 21110, 7818, 3, 3, 9826, 8454, 9962, 9335, 9897, 3, 4090, 3, 3, 3, 3, 10925, 3, 3, 3692, + 3424, 3705, 3, 3, 3, 3711, 3742, 3, 3584, 3, 3809, 3, 3, 3, 4076, 4040, 21168, 3, 3, 3, 4376, + 3, 3, 3, 9938, 3965, 9319, 3, 4094, 4114, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4046, 9895, + 3967, 4180, 3833, 3, 9576, 3, 3, 21240, 4074, 10196, 3813, 3, 4137, 4249, 4151, 4143, 3, 4167, + 3, 4144, 4156, 3, 3, 3, 3, 3, 3, 3, 4136, 3, 3982, 3, 9670, 4054, 3, 7877, 8306, 19885, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 4244, 3, 4080, 4081, 4083, 3, 3, 10131, 3, 3, 4132, 21307, 8701, 964, + 3, 3, 3, 3, 3, 3, 3631, 3, 3, 21396, 882, 3, 3, 3, 3, 3, 3, 3, 21534, 21623, 21712, 3, 9984, + 3647, 3, 3, 10098, 882, 21783, 3, 9249, 3, 3, 20091, 3, 3, 3, 3, 21870, 3, 3, 21941, 22081, + 7367, 3691, 10051, 4320, 3, 3, 9993, 3, 10325, 11809, 3768, 3, 3, 3, 3, 3, 3, 3, 22139, 3, 3, + 3, 3, 3, 3, 10049, 3, 10121, 4202, 10252, 4028, 4031, 4239, 4224, 4237, 4204, 964, 22226, 3, 3, + 3, 3, 3, 3, 4101, 4118, 3, 3, 964, 10149, 3, 3, 3, 3, 3676, 3, 3958, 3, 3, 3, 3, 10025, 3, 3, + 11020, 3, 3, 3, 3, 3689, 3, 3693, 3, 10138, 10192, 3709, 3713, 3, 3, 3, 3, 3, 3, 4332, 3, 964, + 3, 3, 3, 3, 3, 3, 4287, 4316, 3, 3, 3, 3, 3, 3, 4402, 3, 3, 4279, 9463, 3, 3, 3, 3, 10221, 3, + 3, 4055, 4338, 4406, 4361, 4440, 4389, 2719, 12476, 4379, 4408, 3, 3, 3, 3, 3, 3, 3, 4225, 3, + 2403, 3, 4211, 3, 3, 4157, 3, 3, 3, 3, 3, 4126, 3, 4343, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 4487, 3, 3, 964, 3, 3, 3, 22284, 3, 3, 964, 3931, 3, 3940, 3944, 3, 3, 3, 3, 3, 22371, + 3, 9346, 3, 3, 4029, 4032, 4025, 3, 22511, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 10333, 3, 964, + 4119, 4110, 10563, 4138, 3, 4488, 3, 3, 4299, 4500, 4396, 4403, 3, 3, 964, 10233, 10329, 3, 3, + 3, 3, 3, 3, 3, 3, 4154, 3, 3, 7076, 3, 3, 9745, 3, 3, 3, 3, 3, 3, 10272, 3, 3, 3, 3, 3, 3, 3, + 231, 3, 10243, 4524, 4526, 3, 3, 3, 3, 3, 3, 3, 10259, 3, 3, 3, 4436, 10561, 12722, 4462, 3, 3, + 4521, 4523, 4584, 4525, 22569, 3, 3, 4352, 4791, 3, 4536, 3, 3, 12281, 3, 4573, 3, 3, 3, 3, + 20093, 10679, 10695, 9788, 3, 3, 3, 22656, 4453, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4186, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 4087, 3, 3, 22727, 22812, 3, 3, 22883, 4125, 3, 7222, 3, 3, 3, 3, 3, + 3, 10638, 10693, 7668, 4139, 3, 3, 3, 3, 3, 3, 3, 4227, 3, 4718, 3, 3, 4497, 3, 3, 5244, 2403, + 2403, 4261, 3, 10061, 3, 3, 3, 3, 11127, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4564, 10276, + 3, 4344, 3, 4634, 4638, 4644, 3, 964, 12486, 3, 10796, 10831, 4656, 3, 12307, 4738, 3, 20432, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 964, 10394, 3, 3, 3, 3, 3, 3, 22971, 3, 3, 3, 3, 8274, + 3, 882, 882, 3, 882, 3, 3, 23029, 3, 3, 3, 3, 3, 3, 3, 3, 10424, 3, 3, 9886, 4347, 3, 3, 3, + 2403, 4580, 3, 3, 23116, 3, 3, 4703, 4716, 3, 4655, 3, 4725, 4702, 4734, 4556, 3, 3, 3, 3, + 4561, 3, 3, 4743, 4654, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4303, 3, 3, 21476, 10290, + 964, 7802, 7888, 18018, 8489, 3, 3, 3, 3, 23187, 2403, 3, 3, 3, 3, 4759, 3, 4772, 10879, 4804, + 12930, 3, 4345, 3, 3, 20643, 3, 3, 11231, 3, 3, 3, 3, 4209, 10283, 4699, 3, 4373, 3, 3, 3, 3, + 3, 268, 3, 3, 4427, 4439, 3, 3, 3, 4775, 3, 4862, 3, 3, 4708, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 4364, 4245, 4275, 4388, 3, 23274, 22314, 4498, 3, 3, 3, 3, 4837, 10477, 3, 3, 11059, 3, + 10647, 3, 3, 5386, 3, 4292, 4305, 4480, 3, 3, 4423, 3, 10853, 11121, 3, 3, 10326, 3, 5330, + 4309, 3, 8563, 4517, 3, 11295, 3, 3, 3, 3, 3, 5432, 2334, 3, 3, 3, 10386, 3, 3, 3, 3, 3, +]; #[rustfmt::skip] -pub(crate) const RULES: &[Rule; 3295] = &[Rule {name:"parse_toplevel",len:1,},Rule {name:"parse_toplevel",len:2,},Rule {name:"parse_toplevel",len:2,},Rule {name:"parse_toplevel",len:2,},Rule {name:"parse_toplevel",len:2,},Rule {name:"parse_toplevel",len:2,},Rule {name:"stmtmulti",len:3,},Rule {name:"stmtmulti",len:1,},Rule {name:"toplevel_stmt",len:1,},Rule {name:"toplevel_stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:0,},Rule {name:"opt_single_name",len:1,},Rule {name:"opt_single_name",len:0,},Rule {name:"opt_qualified_name",len:1,},Rule {name:"opt_qualified_name",len:0,},Rule {name:"opt_concurrently",len:1,},Rule {name:"opt_concurrently",len:0,},Rule {name:"opt_drop_behavior",len:1,},Rule {name:"opt_drop_behavior",len:1,},Rule {name:"opt_drop_behavior",len:0,},Rule {name:"CallStmt",len:2,},Rule {name:"CreateRoleStmt",len:5,},Rule {name:"opt_with",len:1,},Rule {name:"opt_with",len:1,},Rule {name:"opt_with",len:0,},Rule {name:"OptRoleList",len:2,},Rule {name:"OptRoleList",len:0,},Rule {name:"AlterOptRoleList",len:2,},Rule {name:"AlterOptRoleList",len:0,},Rule {name:"AlterOptRoleElem",len:2,},Rule {name:"AlterOptRoleElem",len:2,},Rule {name:"AlterOptRoleElem",len:2,},Rule {name:"AlterOptRoleElem",len:3,},Rule {name:"AlterOptRoleElem",len:3,},Rule {name:"AlterOptRoleElem",len:3,},Rule {name:"AlterOptRoleElem",len:1,},Rule {name:"AlterOptRoleElem",len:3,},Rule {name:"AlterOptRoleElem",len:3,},Rule {name:"AlterOptRoleElem",len:2,},Rule {name:"AlterOptRoleElem",len:1,},Rule {name:"CreateOptRoleElem",len:1,},Rule {name:"CreateOptRoleElem",len:2,},Rule {name:"CreateOptRoleElem",len:2,},Rule {name:"CreateOptRoleElem",len:2,},Rule {name:"CreateOptRoleElem",len:3,},Rule {name:"CreateOptRoleElem",len:3,},Rule {name:"CreateUserStmt",len:5,},Rule {name:"AlterRoleStmt",len:5,},Rule {name:"AlterRoleStmt",len:5,},Rule {name:"opt_in_database",len:0,},Rule {name:"opt_in_database",len:3,},Rule {name:"AlterRoleSetStmt",len:5,},Rule {name:"AlterRoleSetStmt",len:5,},Rule {name:"AlterRoleSetStmt",len:5,},Rule {name:"AlterRoleSetStmt",len:5,},Rule {name:"DropRoleStmt",len:3,},Rule {name:"DropRoleStmt",len:5,},Rule {name:"DropRoleStmt",len:3,},Rule {name:"DropRoleStmt",len:5,},Rule {name:"DropRoleStmt",len:3,},Rule {name:"DropRoleStmt",len:5,},Rule {name:"CreateGroupStmt",len:5,},Rule {name:"AlterGroupStmt",len:6,},Rule {name:"add_drop",len:1,},Rule {name:"add_drop",len:1,},Rule {name:"CreateSchemaStmt",len:6,},Rule {name:"CreateSchemaStmt",len:4,},Rule {name:"CreateSchemaStmt",len:9,},Rule {name:"CreateSchemaStmt",len:7,},Rule {name:"OptSchemaEltList",len:2,},Rule {name:"OptSchemaEltList",len:0,},Rule {name:"schema_stmt",len:1,},Rule {name:"schema_stmt",len:1,},Rule {name:"schema_stmt",len:1,},Rule {name:"schema_stmt",len:1,},Rule {name:"schema_stmt",len:1,},Rule {name:"schema_stmt",len:1,},Rule {name:"VariableSetStmt",len:2,},Rule {name:"VariableSetStmt",len:3,},Rule {name:"VariableSetStmt",len:3,},Rule {name:"set_rest",len:2,},Rule {name:"set_rest",len:5,},Rule {name:"set_rest",len:1,},Rule {name:"generic_set",len:3,},Rule {name:"generic_set",len:3,},Rule {name:"generic_set",len:3,},Rule {name:"generic_set",len:3,},Rule {name:"set_rest_more",len:1,},Rule {name:"set_rest_more",len:3,},Rule {name:"set_rest_more",len:3,},Rule {name:"set_rest_more",len:2,},Rule {name:"set_rest_more",len:2,},Rule {name:"set_rest_more",len:2,},Rule {name:"set_rest_more",len:2,},Rule {name:"set_rest_more",len:2,},Rule {name:"set_rest_more",len:2,},Rule {name:"set_rest_more",len:3,},Rule {name:"set_rest_more",len:3,},Rule {name:"set_rest_more",len:3,},Rule {name:"set_rest_more",len:3,},Rule {name:"set_rest_more",len:3,},Rule {name:"var_name",len:1,},Rule {name:"var_name",len:3,},Rule {name:"var_list",len:1,},Rule {name:"var_list",len:3,},Rule {name:"var_value",len:1,},Rule {name:"var_value",len:1,},Rule {name:"var_value",len:1,},Rule {name:"iso_level",len:2,},Rule {name:"iso_level",len:2,},Rule {name:"iso_level",len:2,},Rule {name:"iso_level",len:1,},Rule {name:"opt_boolean_or_string",len:1,},Rule {name:"opt_boolean_or_string",len:1,},Rule {name:"opt_boolean_or_string",len:1,},Rule {name:"opt_boolean_or_string",len:1,},Rule {name:"zone_value",len:1,},Rule {name:"zone_value",len:1,},Rule {name:"zone_value",len:1,},Rule {name:"zone_value",len:3,},Rule {name:"zone_value",len:5,},Rule {name:"zone_value",len:1,},Rule {name:"zone_value",len:1,},Rule {name:"zone_value",len:1,},Rule {name:"opt_encoding",len:1,},Rule {name:"opt_encoding",len:1,},Rule {name:"opt_encoding",len:0,},Rule {name:"NonReservedWord_or_Sconst",len:1,},Rule {name:"NonReservedWord_or_Sconst",len:1,},Rule {name:"VariableResetStmt",len:2,},Rule {name:"reset_rest",len:1,},Rule {name:"reset_rest",len:2,},Rule {name:"reset_rest",len:3,},Rule {name:"reset_rest",len:2,},Rule {name:"generic_reset",len:1,},Rule {name:"generic_reset",len:1,},Rule {name:"SetResetClause",len:2,},Rule {name:"SetResetClause",len:1,},Rule {name:"FunctionSetResetClause",len:2,},Rule {name:"FunctionSetResetClause",len:1,},Rule {name:"VariableShowStmt",len:2,},Rule {name:"VariableShowStmt",len:3,},Rule {name:"VariableShowStmt",len:4,},Rule {name:"VariableShowStmt",len:3,},Rule {name:"VariableShowStmt",len:2,},Rule {name:"ConstraintsSetStmt",len:4,},Rule {name:"constraints_set_list",len:1,},Rule {name:"constraints_set_list",len:1,},Rule {name:"constraints_set_mode",len:1,},Rule {name:"constraints_set_mode",len:1,},Rule {name:"CheckPointStmt",len:1,},Rule {name:"DiscardStmt",len:2,},Rule {name:"DiscardStmt",len:2,},Rule {name:"DiscardStmt",len:2,},Rule {name:"DiscardStmt",len:2,},Rule {name:"DiscardStmt",len:2,},Rule {name:"AlterTableStmt",len:4,},Rule {name:"AlterTableStmt",len:6,},Rule {name:"AlterTableStmt",len:4,},Rule {name:"AlterTableStmt",len:6,},Rule {name:"AlterTableStmt",len:10,},Rule {name:"AlterTableStmt",len:13,},Rule {name:"AlterTableStmt",len:4,},Rule {name:"AlterTableStmt",len:6,},Rule {name:"AlterTableStmt",len:4,},Rule {name:"AlterTableStmt",len:10,},Rule {name:"AlterTableStmt",len:13,},Rule {name:"AlterTableStmt",len:4,},Rule {name:"AlterTableStmt",len:6,},Rule {name:"AlterTableStmt",len:4,},Rule {name:"AlterTableStmt",len:6,},Rule {name:"AlterTableStmt",len:5,},Rule {name:"AlterTableStmt",len:7,},Rule {name:"AlterTableStmt",len:11,},Rule {name:"AlterTableStmt",len:14,},Rule {name:"AlterTableStmt",len:5,},Rule {name:"AlterTableStmt",len:7,},Rule {name:"alter_table_cmds",len:1,},Rule {name:"alter_table_cmds",len:3,},Rule {name:"partition_cmd",len:4,},Rule {name:"partition_cmd",len:4,},Rule {name:"partition_cmd",len:4,},Rule {name:"index_partition_cmd",len:3,},Rule {name:"alter_table_cmd",len:2,},Rule {name:"alter_table_cmd",len:5,},Rule {name:"alter_table_cmd",len:3,},Rule {name:"alter_table_cmd",len:6,},Rule {name:"alter_table_cmd",len:4,},Rule {name:"alter_table_cmd",len:6,},Rule {name:"alter_table_cmd",len:6,},Rule {name:"alter_table_cmd",len:5,},Rule {name:"alter_table_cmd",len:7,},Rule {name:"alter_table_cmd",len:6,},Rule {name:"alter_table_cmd",len:6,},Rule {name:"alter_table_cmd",len:5,},Rule {name:"alter_table_cmd",len:5,},Rule {name:"alter_table_cmd",len:5,},Rule {name:"alter_table_cmd",len:5,},Rule {name:"alter_table_cmd",len:9,},Rule {name:"alter_table_cmd",len:4,},Rule {name:"alter_table_cmd",len:5,},Rule {name:"alter_table_cmd",len:7,},Rule {name:"alter_table_cmd",len:6,},Rule {name:"alter_table_cmd",len:4,},Rule {name:"alter_table_cmd",len:8,},Rule {name:"alter_table_cmd",len:4,},Rule {name:"alter_table_cmd",len:2,},Rule {name:"alter_table_cmd",len:4,},Rule {name:"alter_table_cmd",len:3,},Rule {name:"alter_table_cmd",len:6,},Rule {name:"alter_table_cmd",len:4,},Rule {name:"alter_table_cmd",len:3,},Rule {name:"alter_table_cmd",len:3,},Rule {name:"alter_table_cmd",len:3,},Rule {name:"alter_table_cmd",len:2,},Rule {name:"alter_table_cmd",len:2,},Rule {name:"alter_table_cmd",len:3,},Rule {name:"alter_table_cmd",len:4,},Rule {name:"alter_table_cmd",len:4,},Rule {name:"alter_table_cmd",len:3,},Rule {name:"alter_table_cmd",len:3,},Rule {name:"alter_table_cmd",len:3,},Rule {name:"alter_table_cmd",len:3,},Rule {name:"alter_table_cmd",len:3,},Rule {name:"alter_table_cmd",len:3,},Rule {name:"alter_table_cmd",len:4,},Rule {name:"alter_table_cmd",len:4,},Rule {name:"alter_table_cmd",len:3,},Rule {name:"alter_table_cmd",len:2,},Rule {name:"alter_table_cmd",len:3,},Rule {name:"alter_table_cmd",len:2,},Rule {name:"alter_table_cmd",len:2,},Rule {name:"alter_table_cmd",len:3,},Rule {name:"alter_table_cmd",len:4,},Rule {name:"alter_table_cmd",len:3,},Rule {name:"alter_table_cmd",len:2,},Rule {name:"alter_table_cmd",len:2,},Rule {name:"alter_table_cmd",len:3,},Rule {name:"alter_table_cmd",len:4,},Rule {name:"alter_table_cmd",len:4,},Rule {name:"alter_table_cmd",len:4,},Rule {name:"alter_table_cmd",len:5,},Rule {name:"alter_table_cmd",len:1,},Rule {name:"alter_column_default",len:3,},Rule {name:"alter_column_default",len:2,},Rule {name:"opt_collate_clause",len:2,},Rule {name:"opt_collate_clause",len:0,},Rule {name:"alter_using",len:2,},Rule {name:"alter_using",len:0,},Rule {name:"replica_identity",len:1,},Rule {name:"replica_identity",len:1,},Rule {name:"replica_identity",len:1,},Rule {name:"replica_identity",len:3,},Rule {name:"reloptions",len:3,},Rule {name:"opt_reloptions",len:2,},Rule {name:"opt_reloptions",len:0,},Rule {name:"reloption_list",len:1,},Rule {name:"reloption_list",len:3,},Rule {name:"reloption_elem",len:3,},Rule {name:"reloption_elem",len:1,},Rule {name:"reloption_elem",len:5,},Rule {name:"reloption_elem",len:3,},Rule {name:"alter_identity_column_option_list",len:1,},Rule {name:"alter_identity_column_option_list",len:2,},Rule {name:"alter_identity_column_option",len:1,},Rule {name:"alter_identity_column_option",len:3,},Rule {name:"alter_identity_column_option",len:2,},Rule {name:"alter_identity_column_option",len:3,},Rule {name:"PartitionBoundSpec",len:6,},Rule {name:"PartitionBoundSpec",len:6,},Rule {name:"PartitionBoundSpec",len:10,},Rule {name:"PartitionBoundSpec",len:1,},Rule {name:"hash_partbound_elem",len:2,},Rule {name:"hash_partbound",len:1,},Rule {name:"hash_partbound",len:3,},Rule {name:"AlterCompositeTypeStmt",len:4,},Rule {name:"alter_type_cmds",len:1,},Rule {name:"alter_type_cmds",len:3,},Rule {name:"alter_type_cmd",len:4,},Rule {name:"alter_type_cmd",len:6,},Rule {name:"alter_type_cmd",len:4,},Rule {name:"alter_type_cmd",len:8,},Rule {name:"ClosePortalStmt",len:2,},Rule {name:"ClosePortalStmt",len:2,},Rule {name:"CopyStmt",len:11,},Rule {name:"CopyStmt",len:9,},Rule {name:"copy_from",len:1,},Rule {name:"copy_from",len:1,},Rule {name:"opt_program",len:1,},Rule {name:"opt_program",len:0,},Rule {name:"copy_file_name",len:1,},Rule {name:"copy_file_name",len:1,},Rule {name:"copy_file_name",len:1,},Rule {name:"copy_options",len:1,},Rule {name:"copy_options",len:3,},Rule {name:"copy_opt_list",len:2,},Rule {name:"copy_opt_list",len:0,},Rule {name:"copy_opt_item",len:1,},Rule {name:"copy_opt_item",len:1,},Rule {name:"copy_opt_item",len:3,},Rule {name:"copy_opt_item",len:3,},Rule {name:"copy_opt_item",len:1,},Rule {name:"copy_opt_item",len:1,},Rule {name:"copy_opt_item",len:3,},Rule {name:"copy_opt_item",len:3,},Rule {name:"copy_opt_item",len:3,},Rule {name:"copy_opt_item",len:3,},Rule {name:"copy_opt_item",len:4,},Rule {name:"copy_opt_item",len:3,},Rule {name:"copy_opt_item",len:2,},Rule {name:"opt_binary",len:1,},Rule {name:"opt_binary",len:0,},Rule {name:"copy_delimiter",len:3,},Rule {name:"copy_delimiter",len:0,},Rule {name:"opt_using",len:1,},Rule {name:"opt_using",len:0,},Rule {name:"copy_generic_opt_list",len:1,},Rule {name:"copy_generic_opt_list",len:3,},Rule {name:"copy_generic_opt_elem",len:2,},Rule {name:"copy_generic_opt_arg",len:1,},Rule {name:"copy_generic_opt_arg",len:1,},Rule {name:"copy_generic_opt_arg",len:1,},Rule {name:"copy_generic_opt_arg",len:3,},Rule {name:"copy_generic_opt_arg",len:0,},Rule {name:"copy_generic_opt_arg_list",len:1,},Rule {name:"copy_generic_opt_arg_list",len:3,},Rule {name:"copy_generic_opt_arg_list_item",len:1,},Rule {name:"CreateStmt",len:13,},Rule {name:"CreateStmt",len:16,},Rule {name:"CreateStmt",len:12,},Rule {name:"CreateStmt",len:15,},Rule {name:"CreateStmt",len:14,},Rule {name:"CreateStmt",len:17,},Rule {name:"OptTemp",len:1,},Rule {name:"OptTemp",len:1,},Rule {name:"OptTemp",len:2,},Rule {name:"OptTemp",len:2,},Rule {name:"OptTemp",len:2,},Rule {name:"OptTemp",len:2,},Rule {name:"OptTemp",len:1,},Rule {name:"OptTemp",len:0,},Rule {name:"OptTableElementList",len:1,},Rule {name:"OptTableElementList",len:0,},Rule {name:"OptTypedTableElementList",len:3,},Rule {name:"OptTypedTableElementList",len:0,},Rule {name:"TableElementList",len:1,},Rule {name:"TableElementList",len:3,},Rule {name:"TypedTableElementList",len:1,},Rule {name:"TypedTableElementList",len:3,},Rule {name:"TableElement",len:1,},Rule {name:"TableElement",len:1,},Rule {name:"TableElement",len:1,},Rule {name:"TypedTableElement",len:1,},Rule {name:"TypedTableElement",len:1,},Rule {name:"columnDef",len:6,},Rule {name:"columnOptions",len:2,},Rule {name:"columnOptions",len:4,},Rule {name:"column_compression",len:2,},Rule {name:"column_compression",len:2,},Rule {name:"opt_column_compression",len:1,},Rule {name:"opt_column_compression",len:0,},Rule {name:"column_storage",len:2,},Rule {name:"column_storage",len:2,},Rule {name:"opt_column_storage",len:1,},Rule {name:"opt_column_storage",len:0,},Rule {name:"ColQualList",len:2,},Rule {name:"ColQualList",len:0,},Rule {name:"ColConstraint",len:3,},Rule {name:"ColConstraint",len:1,},Rule {name:"ColConstraint",len:1,},Rule {name:"ColConstraint",len:2,},Rule {name:"ColConstraintElem",len:2,},Rule {name:"ColConstraintElem",len:1,},Rule {name:"ColConstraintElem",len:4,},Rule {name:"ColConstraintElem",len:4,},Rule {name:"ColConstraintElem",len:5,},Rule {name:"ColConstraintElem",len:2,},Rule {name:"ColConstraintElem",len:5,},Rule {name:"ColConstraintElem",len:7,},Rule {name:"ColConstraintElem",len:5,},Rule {name:"opt_unique_null_treatment",len:2,},Rule {name:"opt_unique_null_treatment",len:3,},Rule {name:"opt_unique_null_treatment",len:0,},Rule {name:"generated_when",len:1,},Rule {name:"generated_when",len:2,},Rule {name:"ConstraintAttr",len:1,},Rule {name:"ConstraintAttr",len:2,},Rule {name:"ConstraintAttr",len:2,},Rule {name:"ConstraintAttr",len:2,},Rule {name:"TableLikeClause",len:3,},Rule {name:"TableLikeOptionList",len:3,},Rule {name:"TableLikeOptionList",len:3,},Rule {name:"TableLikeOptionList",len:0,},Rule {name:"TableLikeOption",len:1,},Rule {name:"TableLikeOption",len:1,},Rule {name:"TableLikeOption",len:1,},Rule {name:"TableLikeOption",len:1,},Rule {name:"TableLikeOption",len:1,},Rule {name:"TableLikeOption",len:1,},Rule {name:"TableLikeOption",len:1,},Rule {name:"TableLikeOption",len:1,},Rule {name:"TableLikeOption",len:1,},Rule {name:"TableLikeOption",len:1,},Rule {name:"TableConstraint",len:3,},Rule {name:"TableConstraint",len:1,},Rule {name:"ConstraintElem",len:5,},Rule {name:"ConstraintElem",len:9,},Rule {name:"ConstraintElem",len:3,},Rule {name:"ConstraintElem",len:9,},Rule {name:"ConstraintElem",len:4,},Rule {name:"ConstraintElem",len:10,},Rule {name:"ConstraintElem",len:11,},Rule {name:"opt_no_inherit",len:2,},Rule {name:"opt_no_inherit",len:0,},Rule {name:"opt_column_list",len:3,},Rule {name:"opt_column_list",len:0,},Rule {name:"columnList",len:1,},Rule {name:"columnList",len:3,},Rule {name:"columnElem",len:1,},Rule {name:"opt_c_include",len:4,},Rule {name:"opt_c_include",len:0,},Rule {name:"key_match",len:2,},Rule {name:"key_match",len:2,},Rule {name:"key_match",len:2,},Rule {name:"key_match",len:0,},Rule {name:"ExclusionConstraintList",len:1,},Rule {name:"ExclusionConstraintList",len:3,},Rule {name:"ExclusionConstraintElem",len:3,},Rule {name:"ExclusionConstraintElem",len:6,},Rule {name:"OptWhereClause",len:4,},Rule {name:"OptWhereClause",len:0,},Rule {name:"key_actions",len:1,},Rule {name:"key_actions",len:1,},Rule {name:"key_actions",len:2,},Rule {name:"key_actions",len:2,},Rule {name:"key_actions",len:0,},Rule {name:"key_update",len:3,},Rule {name:"key_delete",len:3,},Rule {name:"key_action",len:2,},Rule {name:"key_action",len:1,},Rule {name:"key_action",len:1,},Rule {name:"key_action",len:3,},Rule {name:"key_action",len:3,},Rule {name:"OptInherit",len:4,},Rule {name:"OptInherit",len:0,},Rule {name:"OptPartitionSpec",len:1,},Rule {name:"OptPartitionSpec",len:0,},Rule {name:"PartitionSpec",len:6,},Rule {name:"part_params",len:1,},Rule {name:"part_params",len:3,},Rule {name:"part_elem",len:3,},Rule {name:"part_elem",len:3,},Rule {name:"part_elem",len:5,},Rule {name:"table_access_method_clause",len:2,},Rule {name:"table_access_method_clause",len:0,},Rule {name:"OptWith",len:2,},Rule {name:"OptWith",len:2,},Rule {name:"OptWith",len:0,},Rule {name:"OnCommitOption",len:3,},Rule {name:"OnCommitOption",len:4,},Rule {name:"OnCommitOption",len:4,},Rule {name:"OnCommitOption",len:0,},Rule {name:"OptTableSpace",len:2,},Rule {name:"OptTableSpace",len:0,},Rule {name:"OptConsTableSpace",len:4,},Rule {name:"OptConsTableSpace",len:0,},Rule {name:"ExistingIndex",len:3,},Rule {name:"CreateStatsStmt",len:8,},Rule {name:"CreateStatsStmt",len:11,},Rule {name:"stats_params",len:1,},Rule {name:"stats_params",len:3,},Rule {name:"stats_param",len:1,},Rule {name:"stats_param",len:1,},Rule {name:"stats_param",len:3,},Rule {name:"AlterStatsStmt",len:6,},Rule {name:"AlterStatsStmt",len:8,},Rule {name:"CreateAsStmt",len:7,},Rule {name:"CreateAsStmt",len:10,},Rule {name:"create_as_target",len:6,},Rule {name:"opt_with_data",len:2,},Rule {name:"opt_with_data",len:3,},Rule {name:"opt_with_data",len:0,},Rule {name:"CreateMatViewStmt",len:8,},Rule {name:"CreateMatViewStmt",len:11,},Rule {name:"create_mv_target",len:5,},Rule {name:"OptNoLog",len:1,},Rule {name:"OptNoLog",len:0,},Rule {name:"RefreshMatViewStmt",len:6,},Rule {name:"CreateSeqStmt",len:5,},Rule {name:"CreateSeqStmt",len:8,},Rule {name:"AlterSeqStmt",len:4,},Rule {name:"AlterSeqStmt",len:6,},Rule {name:"OptSeqOptList",len:1,},Rule {name:"OptSeqOptList",len:0,},Rule {name:"OptParenthesizedSeqOptList",len:3,},Rule {name:"OptParenthesizedSeqOptList",len:0,},Rule {name:"SeqOptList",len:1,},Rule {name:"SeqOptList",len:2,},Rule {name:"SeqOptElem",len:2,},Rule {name:"SeqOptElem",len:2,},Rule {name:"SeqOptElem",len:1,},Rule {name:"SeqOptElem",len:2,},Rule {name:"SeqOptElem",len:3,},Rule {name:"SeqOptElem",len:2,},Rule {name:"SeqOptElem",len:2,},Rule {name:"SeqOptElem",len:2,},Rule {name:"SeqOptElem",len:2,},Rule {name:"SeqOptElem",len:3,},Rule {name:"SeqOptElem",len:3,},Rule {name:"SeqOptElem",len:3,},Rule {name:"SeqOptElem",len:1,},Rule {name:"SeqOptElem",len:3,},Rule {name:"opt_by",len:1,},Rule {name:"opt_by",len:0,},Rule {name:"NumericOnly",len:1,},Rule {name:"NumericOnly",len:2,},Rule {name:"NumericOnly",len:2,},Rule {name:"NumericOnly",len:1,},Rule {name:"NumericOnly_list",len:1,},Rule {name:"NumericOnly_list",len:3,},Rule {name:"CreatePLangStmt",len:6,},Rule {name:"CreatePLangStmt",len:10,},Rule {name:"opt_trusted",len:1,},Rule {name:"opt_trusted",len:0,},Rule {name:"handler_name",len:1,},Rule {name:"handler_name",len:2,},Rule {name:"opt_inline_handler",len:2,},Rule {name:"opt_inline_handler",len:0,},Rule {name:"validator_clause",len:2,},Rule {name:"validator_clause",len:2,},Rule {name:"opt_validator",len:1,},Rule {name:"opt_validator",len:0,},Rule {name:"opt_procedural",len:1,},Rule {name:"opt_procedural",len:0,},Rule {name:"CreateTableSpaceStmt",len:7,},Rule {name:"OptTableSpaceOwner",len:2,},Rule {name:"OptTableSpaceOwner",len:0,},Rule {name:"DropTableSpaceStmt",len:3,},Rule {name:"DropTableSpaceStmt",len:5,},Rule {name:"CreateExtensionStmt",len:5,},Rule {name:"CreateExtensionStmt",len:8,},Rule {name:"create_extension_opt_list",len:2,},Rule {name:"create_extension_opt_list",len:0,},Rule {name:"create_extension_opt_item",len:2,},Rule {name:"create_extension_opt_item",len:2,},Rule {name:"create_extension_opt_item",len:2,},Rule {name:"create_extension_opt_item",len:1,},Rule {name:"AlterExtensionStmt",len:5,},Rule {name:"alter_extension_opt_list",len:2,},Rule {name:"alter_extension_opt_list",len:0,},Rule {name:"alter_extension_opt_item",len:2,},Rule {name:"AlterExtensionContentsStmt",len:6,},Rule {name:"AlterExtensionContentsStmt",len:6,},Rule {name:"AlterExtensionContentsStmt",len:6,},Rule {name:"AlterExtensionContentsStmt",len:10,},Rule {name:"AlterExtensionContentsStmt",len:6,},Rule {name:"AlterExtensionContentsStmt",len:6,},Rule {name:"AlterExtensionContentsStmt",len:6,},Rule {name:"AlterExtensionContentsStmt",len:9,},Rule {name:"AlterExtensionContentsStmt",len:9,},Rule {name:"AlterExtensionContentsStmt",len:6,},Rule {name:"AlterExtensionContentsStmt",len:6,},Rule {name:"AlterExtensionContentsStmt",len:9,},Rule {name:"AlterExtensionContentsStmt",len:6,},Rule {name:"CreateFdwStmt",len:7,},Rule {name:"fdw_option",len:2,},Rule {name:"fdw_option",len:2,},Rule {name:"fdw_option",len:2,},Rule {name:"fdw_option",len:2,},Rule {name:"fdw_options",len:1,},Rule {name:"fdw_options",len:2,},Rule {name:"opt_fdw_options",len:1,},Rule {name:"opt_fdw_options",len:0,},Rule {name:"AlterFdwStmt",len:7,},Rule {name:"AlterFdwStmt",len:6,},Rule {name:"create_generic_options",len:4,},Rule {name:"create_generic_options",len:0,},Rule {name:"generic_option_list",len:1,},Rule {name:"generic_option_list",len:3,},Rule {name:"alter_generic_options",len:4,},Rule {name:"alter_generic_option_list",len:1,},Rule {name:"alter_generic_option_list",len:3,},Rule {name:"alter_generic_option_elem",len:1,},Rule {name:"alter_generic_option_elem",len:2,},Rule {name:"alter_generic_option_elem",len:2,},Rule {name:"alter_generic_option_elem",len:2,},Rule {name:"generic_option_elem",len:2,},Rule {name:"generic_option_name",len:1,},Rule {name:"generic_option_arg",len:1,},Rule {name:"CreateForeignServerStmt",len:10,},Rule {name:"CreateForeignServerStmt",len:13,},Rule {name:"opt_type",len:2,},Rule {name:"opt_type",len:0,},Rule {name:"foreign_server_version",len:2,},Rule {name:"foreign_server_version",len:2,},Rule {name:"opt_foreign_server_version",len:1,},Rule {name:"opt_foreign_server_version",len:0,},Rule {name:"AlterForeignServerStmt",len:5,},Rule {name:"AlterForeignServerStmt",len:4,},Rule {name:"AlterForeignServerStmt",len:4,},Rule {name:"CreateForeignTableStmt",len:11,},Rule {name:"CreateForeignTableStmt",len:14,},Rule {name:"CreateForeignTableStmt",len:12,},Rule {name:"CreateForeignTableStmt",len:15,},Rule {name:"ImportForeignSchemaStmt",len:11,},Rule {name:"import_qualification_type",len:2,},Rule {name:"import_qualification_type",len:1,},Rule {name:"import_qualification",len:4,},Rule {name:"import_qualification",len:0,},Rule {name:"CreateUserMappingStmt",len:8,},Rule {name:"CreateUserMappingStmt",len:11,},Rule {name:"auth_ident",len:1,},Rule {name:"auth_ident",len:1,},Rule {name:"DropUserMappingStmt",len:7,},Rule {name:"DropUserMappingStmt",len:9,},Rule {name:"AlterUserMappingStmt",len:8,},Rule {name:"CreatePolicyStmt",len:10,},Rule {name:"AlterPolicyStmt",len:8,},Rule {name:"RowSecurityOptionalExpr",len:4,},Rule {name:"RowSecurityOptionalExpr",len:0,},Rule {name:"RowSecurityOptionalWithCheck",len:5,},Rule {name:"RowSecurityOptionalWithCheck",len:0,},Rule {name:"RowSecurityDefaultToRole",len:2,},Rule {name:"RowSecurityDefaultToRole",len:0,},Rule {name:"RowSecurityOptionalToRole",len:2,},Rule {name:"RowSecurityOptionalToRole",len:0,},Rule {name:"RowSecurityDefaultPermissive",len:2,},Rule {name:"RowSecurityDefaultPermissive",len:0,},Rule {name:"RowSecurityDefaultForCmd",len:2,},Rule {name:"RowSecurityDefaultForCmd",len:0,},Rule {name:"row_security_cmd",len:1,},Rule {name:"row_security_cmd",len:1,},Rule {name:"row_security_cmd",len:1,},Rule {name:"row_security_cmd",len:1,},Rule {name:"row_security_cmd",len:1,},Rule {name:"CreateAmStmt",len:8,},Rule {name:"am_type",len:1,},Rule {name:"am_type",len:1,},Rule {name:"CreateTrigStmt",len:17,},Rule {name:"CreateTrigStmt",len:21,},Rule {name:"TriggerActionTime",len:1,},Rule {name:"TriggerActionTime",len:1,},Rule {name:"TriggerActionTime",len:2,},Rule {name:"TriggerEvents",len:1,},Rule {name:"TriggerEvents",len:3,},Rule {name:"TriggerOneEvent",len:1,},Rule {name:"TriggerOneEvent",len:1,},Rule {name:"TriggerOneEvent",len:1,},Rule {name:"TriggerOneEvent",len:3,},Rule {name:"TriggerOneEvent",len:1,},Rule {name:"TriggerReferencing",len:2,},Rule {name:"TriggerReferencing",len:0,},Rule {name:"TriggerTransitions",len:1,},Rule {name:"TriggerTransitions",len:2,},Rule {name:"TriggerTransition",len:4,},Rule {name:"TransitionOldOrNew",len:1,},Rule {name:"TransitionOldOrNew",len:1,},Rule {name:"TransitionRowOrTable",len:1,},Rule {name:"TransitionRowOrTable",len:1,},Rule {name:"TransitionRelName",len:1,},Rule {name:"TriggerForSpec",len:3,},Rule {name:"TriggerForSpec",len:0,},Rule {name:"TriggerForOptEach",len:1,},Rule {name:"TriggerForOptEach",len:0,},Rule {name:"TriggerForType",len:1,},Rule {name:"TriggerForType",len:1,},Rule {name:"TriggerWhen",len:4,},Rule {name:"TriggerWhen",len:0,},Rule {name:"FUNCTION_or_PROCEDURE",len:1,},Rule {name:"FUNCTION_or_PROCEDURE",len:1,},Rule {name:"TriggerFuncArgs",len:1,},Rule {name:"TriggerFuncArgs",len:3,},Rule {name:"TriggerFuncArgs",len:0,},Rule {name:"TriggerFuncArg",len:1,},Rule {name:"TriggerFuncArg",len:1,},Rule {name:"TriggerFuncArg",len:1,},Rule {name:"TriggerFuncArg",len:1,},Rule {name:"OptConstrFromTable",len:2,},Rule {name:"OptConstrFromTable",len:0,},Rule {name:"ConstraintAttributeSpec",len:0,},Rule {name:"ConstraintAttributeSpec",len:2,},Rule {name:"ConstraintAttributeElem",len:2,},Rule {name:"ConstraintAttributeElem",len:1,},Rule {name:"ConstraintAttributeElem",len:2,},Rule {name:"ConstraintAttributeElem",len:2,},Rule {name:"ConstraintAttributeElem",len:2,},Rule {name:"ConstraintAttributeElem",len:2,},Rule {name:"CreateEventTrigStmt",len:11,},Rule {name:"CreateEventTrigStmt",len:13,},Rule {name:"event_trigger_when_list",len:1,},Rule {name:"event_trigger_when_list",len:3,},Rule {name:"event_trigger_when_item",len:5,},Rule {name:"event_trigger_value_list",len:1,},Rule {name:"event_trigger_value_list",len:3,},Rule {name:"AlterEventTrigStmt",len:5,},Rule {name:"enable_trigger",len:1,},Rule {name:"enable_trigger",len:2,},Rule {name:"enable_trigger",len:2,},Rule {name:"enable_trigger",len:1,},Rule {name:"CreateAssertionStmt",len:8,},Rule {name:"DefineStmt",len:6,},Rule {name:"DefineStmt",len:5,},Rule {name:"DefineStmt",len:4,},Rule {name:"DefineStmt",len:4,},Rule {name:"DefineStmt",len:3,},Rule {name:"DefineStmt",len:7,},Rule {name:"DefineStmt",len:8,},Rule {name:"DefineStmt",len:6,},Rule {name:"DefineStmt",len:6,},Rule {name:"DefineStmt",len:6,},Rule {name:"DefineStmt",len:6,},Rule {name:"DefineStmt",len:6,},Rule {name:"DefineStmt",len:4,},Rule {name:"DefineStmt",len:7,},Rule {name:"DefineStmt",len:5,},Rule {name:"DefineStmt",len:8,},Rule {name:"definition",len:3,},Rule {name:"def_list",len:1,},Rule {name:"def_list",len:3,},Rule {name:"def_elem",len:3,},Rule {name:"def_elem",len:1,},Rule {name:"def_arg",len:1,},Rule {name:"def_arg",len:1,},Rule {name:"def_arg",len:1,},Rule {name:"def_arg",len:1,},Rule {name:"def_arg",len:1,},Rule {name:"def_arg",len:1,},Rule {name:"old_aggr_definition",len:3,},Rule {name:"old_aggr_list",len:1,},Rule {name:"old_aggr_list",len:3,},Rule {name:"old_aggr_elem",len:3,},Rule {name:"opt_enum_val_list",len:1,},Rule {name:"opt_enum_val_list",len:0,},Rule {name:"enum_val_list",len:1,},Rule {name:"enum_val_list",len:3,},Rule {name:"AlterEnumStmt",len:7,},Rule {name:"AlterEnumStmt",len:9,},Rule {name:"AlterEnumStmt",len:9,},Rule {name:"AlterEnumStmt",len:8,},Rule {name:"opt_if_not_exists",len:3,},Rule {name:"opt_if_not_exists",len:0,},Rule {name:"CreateOpClassStmt",len:13,},Rule {name:"opclass_item_list",len:1,},Rule {name:"opclass_item_list",len:3,},Rule {name:"opclass_item",len:5,},Rule {name:"opclass_item",len:5,},Rule {name:"opclass_item",len:3,},Rule {name:"opclass_item",len:6,},Rule {name:"opclass_item",len:2,},Rule {name:"opt_default",len:1,},Rule {name:"opt_default",len:0,},Rule {name:"opt_opfamily",len:2,},Rule {name:"opt_opfamily",len:0,},Rule {name:"opclass_purpose",len:2,},Rule {name:"opclass_purpose",len:4,},Rule {name:"opclass_purpose",len:0,},Rule {name:"opt_recheck",len:1,},Rule {name:"opt_recheck",len:0,},Rule {name:"CreateOpFamilyStmt",len:6,},Rule {name:"AlterOpFamilyStmt",len:8,},Rule {name:"AlterOpFamilyStmt",len:8,},Rule {name:"opclass_drop_list",len:1,},Rule {name:"opclass_drop_list",len:3,},Rule {name:"opclass_drop",len:5,},Rule {name:"opclass_drop",len:5,},Rule {name:"DropOpClassStmt",len:7,},Rule {name:"DropOpClassStmt",len:9,},Rule {name:"DropOpFamilyStmt",len:7,},Rule {name:"DropOpFamilyStmt",len:9,},Rule {name:"DropOwnedStmt",len:5,},Rule {name:"ReassignOwnedStmt",len:6,},Rule {name:"DropStmt",len:6,},Rule {name:"DropStmt",len:4,},Rule {name:"DropStmt",len:6,},Rule {name:"DropStmt",len:4,},Rule {name:"DropStmt",len:6,},Rule {name:"DropStmt",len:8,},Rule {name:"DropStmt",len:4,},Rule {name:"DropStmt",len:6,},Rule {name:"DropStmt",len:4,},Rule {name:"DropStmt",len:6,},Rule {name:"DropStmt",len:5,},Rule {name:"DropStmt",len:7,},Rule {name:"object_type_any_name",len:1,},Rule {name:"object_type_any_name",len:1,},Rule {name:"object_type_any_name",len:1,},Rule {name:"object_type_any_name",len:2,},Rule {name:"object_type_any_name",len:1,},Rule {name:"object_type_any_name",len:2,},Rule {name:"object_type_any_name",len:1,},Rule {name:"object_type_any_name",len:1,},Rule {name:"object_type_any_name",len:1,},Rule {name:"object_type_any_name",len:3,},Rule {name:"object_type_any_name",len:3,},Rule {name:"object_type_any_name",len:3,},Rule {name:"object_type_any_name",len:3,},Rule {name:"object_type_name",len:1,},Rule {name:"object_type_name",len:1,},Rule {name:"object_type_name",len:1,},Rule {name:"object_type_name",len:1,},Rule {name:"object_type_name",len:1,},Rule {name:"drop_type_name",len:2,},Rule {name:"drop_type_name",len:2,},Rule {name:"drop_type_name",len:1,},Rule {name:"drop_type_name",len:3,},Rule {name:"drop_type_name",len:2,},Rule {name:"drop_type_name",len:1,},Rule {name:"drop_type_name",len:1,},Rule {name:"drop_type_name",len:1,},Rule {name:"object_type_name_on_any_name",len:1,},Rule {name:"object_type_name_on_any_name",len:1,},Rule {name:"object_type_name_on_any_name",len:1,},Rule {name:"any_name_list",len:1,},Rule {name:"any_name_list",len:3,},Rule {name:"any_name",len:1,},Rule {name:"any_name",len:2,},Rule {name:"attrs",len:2,},Rule {name:"attrs",len:3,},Rule {name:"type_name_list",len:1,},Rule {name:"type_name_list",len:3,},Rule {name:"TruncateStmt",len:5,},Rule {name:"opt_restart_seqs",len:2,},Rule {name:"opt_restart_seqs",len:2,},Rule {name:"opt_restart_seqs",len:0,},Rule {name:"CommentStmt",len:6,},Rule {name:"CommentStmt",len:6,},Rule {name:"CommentStmt",len:6,},Rule {name:"CommentStmt",len:6,},Rule {name:"CommentStmt",len:6,},Rule {name:"CommentStmt",len:6,},Rule {name:"CommentStmt",len:6,},Rule {name:"CommentStmt",len:6,},Rule {name:"CommentStmt",len:8,},Rule {name:"CommentStmt",len:9,},Rule {name:"CommentStmt",len:8,},Rule {name:"CommentStmt",len:6,},Rule {name:"CommentStmt",len:6,},Rule {name:"CommentStmt",len:9,},Rule {name:"CommentStmt",len:9,},Rule {name:"CommentStmt",len:9,},Rule {name:"CommentStmt",len:7,},Rule {name:"CommentStmt",len:10,},Rule {name:"comment_text",len:1,},Rule {name:"comment_text",len:1,},Rule {name:"SecLabelStmt",len:8,},Rule {name:"SecLabelStmt",len:8,},Rule {name:"SecLabelStmt",len:8,},Rule {name:"SecLabelStmt",len:8,},Rule {name:"SecLabelStmt",len:8,},Rule {name:"SecLabelStmt",len:8,},Rule {name:"SecLabelStmt",len:8,},Rule {name:"SecLabelStmt",len:9,},Rule {name:"SecLabelStmt",len:8,},Rule {name:"SecLabelStmt",len:8,},Rule {name:"opt_provider",len:2,},Rule {name:"opt_provider",len:0,},Rule {name:"security_label",len:1,},Rule {name:"security_label",len:1,},Rule {name:"FetchStmt",len:2,},Rule {name:"FetchStmt",len:2,},Rule {name:"fetch_args",len:1,},Rule {name:"fetch_args",len:2,},Rule {name:"fetch_args",len:3,},Rule {name:"fetch_args",len:3,},Rule {name:"fetch_args",len:3,},Rule {name:"fetch_args",len:3,},Rule {name:"fetch_args",len:4,},Rule {name:"fetch_args",len:4,},Rule {name:"fetch_args",len:3,},Rule {name:"fetch_args",len:3,},Rule {name:"fetch_args",len:3,},Rule {name:"fetch_args",len:4,},Rule {name:"fetch_args",len:4,},Rule {name:"fetch_args",len:3,},Rule {name:"fetch_args",len:4,},Rule {name:"fetch_args",len:4,},Rule {name:"from_in",len:1,},Rule {name:"from_in",len:1,},Rule {name:"opt_from_in",len:1,},Rule {name:"opt_from_in",len:0,},Rule {name:"GrantStmt",len:8,},Rule {name:"RevokeStmt",len:8,},Rule {name:"RevokeStmt",len:11,},Rule {name:"privileges",len:1,},Rule {name:"privileges",len:1,},Rule {name:"privileges",len:2,},Rule {name:"privileges",len:4,},Rule {name:"privileges",len:5,},Rule {name:"privilege_list",len:1,},Rule {name:"privilege_list",len:3,},Rule {name:"privilege",len:2,},Rule {name:"privilege",len:2,},Rule {name:"privilege",len:2,},Rule {name:"privilege",len:2,},Rule {name:"privilege",len:2,},Rule {name:"parameter_name_list",len:1,},Rule {name:"parameter_name_list",len:3,},Rule {name:"parameter_name",len:1,},Rule {name:"parameter_name",len:3,},Rule {name:"privilege_target",len:1,},Rule {name:"privilege_target",len:2,},Rule {name:"privilege_target",len:2,},Rule {name:"privilege_target",len:4,},Rule {name:"privilege_target",len:3,},Rule {name:"privilege_target",len:2,},Rule {name:"privilege_target",len:2,},Rule {name:"privilege_target",len:2,},Rule {name:"privilege_target",len:2,},Rule {name:"privilege_target",len:2,},Rule {name:"privilege_target",len:2,},Rule {name:"privilege_target",len:3,},Rule {name:"privilege_target",len:2,},Rule {name:"privilege_target",len:2,},Rule {name:"privilege_target",len:2,},Rule {name:"privilege_target",len:2,},Rule {name:"privilege_target",len:5,},Rule {name:"privilege_target",len:5,},Rule {name:"privilege_target",len:5,},Rule {name:"privilege_target",len:5,},Rule {name:"privilege_target",len:5,},Rule {name:"grantee_list",len:1,},Rule {name:"grantee_list",len:3,},Rule {name:"grantee",len:1,},Rule {name:"grantee",len:2,},Rule {name:"opt_grant_grant_option",len:3,},Rule {name:"opt_grant_grant_option",len:0,},Rule {name:"GrantRoleStmt",len:5,},Rule {name:"GrantRoleStmt",len:7,},Rule {name:"RevokeRoleStmt",len:6,},Rule {name:"RevokeRoleStmt",len:9,},Rule {name:"grant_role_opt_list",len:3,},Rule {name:"grant_role_opt_list",len:1,},Rule {name:"grant_role_opt",len:2,},Rule {name:"grant_role_opt_value",len:1,},Rule {name:"grant_role_opt_value",len:1,},Rule {name:"grant_role_opt_value",len:1,},Rule {name:"opt_granted_by",len:3,},Rule {name:"opt_granted_by",len:0,},Rule {name:"AlterDefaultPrivilegesStmt",len:5,},Rule {name:"DefACLOptionList",len:2,},Rule {name:"DefACLOptionList",len:0,},Rule {name:"DefACLOption",len:3,},Rule {name:"DefACLOption",len:3,},Rule {name:"DefACLOption",len:3,},Rule {name:"DefACLAction",len:7,},Rule {name:"DefACLAction",len:7,},Rule {name:"DefACLAction",len:10,},Rule {name:"defacl_privilege_target",len:1,},Rule {name:"defacl_privilege_target",len:1,},Rule {name:"defacl_privilege_target",len:1,},Rule {name:"defacl_privilege_target",len:1,},Rule {name:"defacl_privilege_target",len:1,},Rule {name:"defacl_privilege_target",len:1,},Rule {name:"IndexStmt",len:16,},Rule {name:"IndexStmt",len:19,},Rule {name:"opt_unique",len:1,},Rule {name:"opt_unique",len:0,},Rule {name:"access_method_clause",len:2,},Rule {name:"access_method_clause",len:0,},Rule {name:"index_params",len:1,},Rule {name:"index_params",len:3,},Rule {name:"index_elem_options",len:4,},Rule {name:"index_elem_options",len:5,},Rule {name:"index_elem",len:2,},Rule {name:"index_elem",len:2,},Rule {name:"index_elem",len:4,},Rule {name:"opt_include",len:4,},Rule {name:"opt_include",len:0,},Rule {name:"index_including_params",len:1,},Rule {name:"index_including_params",len:3,},Rule {name:"opt_collate",len:2,},Rule {name:"opt_collate",len:0,},Rule {name:"opt_asc_desc",len:1,},Rule {name:"opt_asc_desc",len:1,},Rule {name:"opt_asc_desc",len:0,},Rule {name:"opt_nulls_order",len:2,},Rule {name:"opt_nulls_order",len:2,},Rule {name:"opt_nulls_order",len:0,},Rule {name:"CreateFunctionStmt",len:9,},Rule {name:"CreateFunctionStmt",len:12,},Rule {name:"CreateFunctionStmt",len:7,},Rule {name:"CreateFunctionStmt",len:7,},Rule {name:"opt_or_replace",len:2,},Rule {name:"opt_or_replace",len:0,},Rule {name:"func_args",len:3,},Rule {name:"func_args",len:2,},Rule {name:"func_args_list",len:1,},Rule {name:"func_args_list",len:3,},Rule {name:"function_with_argtypes_list",len:1,},Rule {name:"function_with_argtypes_list",len:3,},Rule {name:"function_with_argtypes",len:2,},Rule {name:"function_with_argtypes",len:1,},Rule {name:"function_with_argtypes",len:1,},Rule {name:"function_with_argtypes",len:2,},Rule {name:"func_args_with_defaults",len:3,},Rule {name:"func_args_with_defaults",len:2,},Rule {name:"func_args_with_defaults_list",len:1,},Rule {name:"func_args_with_defaults_list",len:3,},Rule {name:"func_arg",len:3,},Rule {name:"func_arg",len:3,},Rule {name:"func_arg",len:2,},Rule {name:"func_arg",len:2,},Rule {name:"func_arg",len:1,},Rule {name:"arg_class",len:1,},Rule {name:"arg_class",len:1,},Rule {name:"arg_class",len:1,},Rule {name:"arg_class",len:2,},Rule {name:"arg_class",len:1,},Rule {name:"param_name",len:1,},Rule {name:"func_return",len:1,},Rule {name:"func_type",len:1,},Rule {name:"func_type",len:4,},Rule {name:"func_type",len:5,},Rule {name:"func_arg_with_default",len:1,},Rule {name:"func_arg_with_default",len:3,},Rule {name:"func_arg_with_default",len:3,},Rule {name:"aggr_arg",len:1,},Rule {name:"aggr_args",len:3,},Rule {name:"aggr_args",len:3,},Rule {name:"aggr_args",len:5,},Rule {name:"aggr_args",len:6,},Rule {name:"aggr_args_list",len:1,},Rule {name:"aggr_args_list",len:3,},Rule {name:"aggregate_with_argtypes",len:2,},Rule {name:"aggregate_with_argtypes_list",len:1,},Rule {name:"aggregate_with_argtypes_list",len:3,},Rule {name:"opt_createfunc_opt_list",len:1,},Rule {name:"opt_createfunc_opt_list",len:0,},Rule {name:"createfunc_opt_list",len:1,},Rule {name:"createfunc_opt_list",len:2,},Rule {name:"common_func_opt_item",len:4,},Rule {name:"common_func_opt_item",len:5,},Rule {name:"common_func_opt_item",len:1,},Rule {name:"common_func_opt_item",len:1,},Rule {name:"common_func_opt_item",len:1,},Rule {name:"common_func_opt_item",len:1,},Rule {name:"common_func_opt_item",len:3,},Rule {name:"common_func_opt_item",len:3,},Rule {name:"common_func_opt_item",len:2,},Rule {name:"common_func_opt_item",len:2,},Rule {name:"common_func_opt_item",len:1,},Rule {name:"common_func_opt_item",len:2,},Rule {name:"common_func_opt_item",len:2,},Rule {name:"common_func_opt_item",len:2,},Rule {name:"common_func_opt_item",len:2,},Rule {name:"common_func_opt_item",len:1,},Rule {name:"common_func_opt_item",len:2,},Rule {name:"createfunc_opt_item",len:2,},Rule {name:"createfunc_opt_item",len:2,},Rule {name:"createfunc_opt_item",len:2,},Rule {name:"createfunc_opt_item",len:1,},Rule {name:"createfunc_opt_item",len:1,},Rule {name:"func_as",len:1,},Rule {name:"func_as",len:3,},Rule {name:"ReturnStmt",len:2,},Rule {name:"opt_routine_body",len:1,},Rule {name:"opt_routine_body",len:4,},Rule {name:"opt_routine_body",len:0,},Rule {name:"routine_body_stmt_list",len:3,},Rule {name:"routine_body_stmt_list",len:0,},Rule {name:"routine_body_stmt",len:1,},Rule {name:"routine_body_stmt",len:1,},Rule {name:"transform_type_list",len:3,},Rule {name:"transform_type_list",len:5,},Rule {name:"opt_definition",len:2,},Rule {name:"opt_definition",len:0,},Rule {name:"table_func_column",len:2,},Rule {name:"table_func_column_list",len:1,},Rule {name:"table_func_column_list",len:3,},Rule {name:"AlterFunctionStmt",len:5,},Rule {name:"AlterFunctionStmt",len:5,},Rule {name:"AlterFunctionStmt",len:5,},Rule {name:"alterfunc_opt_list",len:1,},Rule {name:"alterfunc_opt_list",len:2,},Rule {name:"opt_restrict",len:1,},Rule {name:"opt_restrict",len:0,},Rule {name:"RemoveFuncStmt",len:4,},Rule {name:"RemoveFuncStmt",len:6,},Rule {name:"RemoveFuncStmt",len:4,},Rule {name:"RemoveFuncStmt",len:6,},Rule {name:"RemoveFuncStmt",len:4,},Rule {name:"RemoveFuncStmt",len:6,},Rule {name:"RemoveAggrStmt",len:4,},Rule {name:"RemoveAggrStmt",len:6,},Rule {name:"RemoveOperStmt",len:4,},Rule {name:"RemoveOperStmt",len:6,},Rule {name:"oper_argtypes",len:3,},Rule {name:"oper_argtypes",len:5,},Rule {name:"oper_argtypes",len:5,},Rule {name:"oper_argtypes",len:5,},Rule {name:"any_operator",len:1,},Rule {name:"any_operator",len:3,},Rule {name:"operator_with_argtypes_list",len:1,},Rule {name:"operator_with_argtypes_list",len:3,},Rule {name:"operator_with_argtypes",len:2,},Rule {name:"DoStmt",len:2,},Rule {name:"dostmt_opt_list",len:1,},Rule {name:"dostmt_opt_list",len:2,},Rule {name:"dostmt_opt_item",len:1,},Rule {name:"dostmt_opt_item",len:2,},Rule {name:"CreateCastStmt",len:11,},Rule {name:"CreateCastStmt",len:10,},Rule {name:"CreateCastStmt",len:10,},Rule {name:"cast_context",len:2,},Rule {name:"cast_context",len:2,},Rule {name:"cast_context",len:0,},Rule {name:"DropCastStmt",len:9,},Rule {name:"opt_if_exists",len:2,},Rule {name:"opt_if_exists",len:0,},Rule {name:"CreateTransformStmt",len:10,},Rule {name:"transform_element_list",len:11,},Rule {name:"transform_element_list",len:11,},Rule {name:"transform_element_list",len:5,},Rule {name:"transform_element_list",len:5,},Rule {name:"DropTransformStmt",len:8,},Rule {name:"ReindexStmt",len:5,},Rule {name:"ReindexStmt",len:5,},Rule {name:"ReindexStmt",len:5,},Rule {name:"reindex_target_relation",len:1,},Rule {name:"reindex_target_relation",len:1,},Rule {name:"reindex_target_all",len:1,},Rule {name:"reindex_target_all",len:1,},Rule {name:"opt_reindex_option_list",len:3,},Rule {name:"opt_reindex_option_list",len:0,},Rule {name:"AlterTblSpcStmt",len:5,},Rule {name:"AlterTblSpcStmt",len:5,},Rule {name:"RenameStmt",len:6,},Rule {name:"RenameStmt",len:6,},Rule {name:"RenameStmt",len:6,},Rule {name:"RenameStmt",len:6,},Rule {name:"RenameStmt",len:6,},Rule {name:"RenameStmt",len:8,},Rule {name:"RenameStmt",len:8,},Rule {name:"RenameStmt",len:6,},Rule {name:"RenameStmt",len:6,},Rule {name:"RenameStmt",len:7,},Rule {name:"RenameStmt",len:9,},Rule {name:"RenameStmt",len:9,},Rule {name:"RenameStmt",len:8,},Rule {name:"RenameStmt",len:10,},Rule {name:"RenameStmt",len:6,},Rule {name:"RenameStmt",len:6,},Rule {name:"RenameStmt",len:6,},Rule {name:"RenameStmt",len:6,},Rule {name:"RenameStmt",len:6,},Rule {name:"RenameStmt",len:6,},Rule {name:"RenameStmt",len:6,},Rule {name:"RenameStmt",len:8,},Rule {name:"RenameStmt",len:6,},Rule {name:"RenameStmt",len:8,},Rule {name:"RenameStmt",len:6,},Rule {name:"RenameStmt",len:8,},Rule {name:"RenameStmt",len:7,},Rule {name:"RenameStmt",len:9,},Rule {name:"RenameStmt",len:6,},Rule {name:"RenameStmt",len:8,},Rule {name:"RenameStmt",len:7,},Rule {name:"RenameStmt",len:9,},Rule {name:"RenameStmt",len:8,},Rule {name:"RenameStmt",len:10,},Rule {name:"RenameStmt",len:8,},Rule {name:"RenameStmt",len:10,},Rule {name:"RenameStmt",len:9,},Rule {name:"RenameStmt",len:11,},Rule {name:"RenameStmt",len:8,},Rule {name:"RenameStmt",len:10,},Rule {name:"RenameStmt",len:9,},Rule {name:"RenameStmt",len:11,},Rule {name:"RenameStmt",len:8,},Rule {name:"RenameStmt",len:8,},Rule {name:"RenameStmt",len:7,},Rule {name:"RenameStmt",len:6,},Rule {name:"RenameStmt",len:6,},Rule {name:"RenameStmt",len:6,},Rule {name:"RenameStmt",len:6,},Rule {name:"RenameStmt",len:8,},Rule {name:"RenameStmt",len:8,},Rule {name:"RenameStmt",len:8,},Rule {name:"RenameStmt",len:8,},Rule {name:"RenameStmt",len:6,},Rule {name:"RenameStmt",len:9,},Rule {name:"opt_column",len:1,},Rule {name:"opt_column",len:0,},Rule {name:"opt_set_data",len:2,},Rule {name:"opt_set_data",len:0,},Rule {name:"AlterObjectDependsStmt",len:8,},Rule {name:"AlterObjectDependsStmt",len:8,},Rule {name:"AlterObjectDependsStmt",len:8,},Rule {name:"AlterObjectDependsStmt",len:10,},Rule {name:"AlterObjectDependsStmt",len:9,},Rule {name:"AlterObjectDependsStmt",len:8,},Rule {name:"opt_no",len:1,},Rule {name:"opt_no",len:0,},Rule {name:"AlterObjectSchemaStmt",len:6,},Rule {name:"AlterObjectSchemaStmt",len:6,},Rule {name:"AlterObjectSchemaStmt",len:6,},Rule {name:"AlterObjectSchemaStmt",len:6,},Rule {name:"AlterObjectSchemaStmt",len:6,},Rule {name:"AlterObjectSchemaStmt",len:6,},Rule {name:"AlterObjectSchemaStmt",len:6,},Rule {name:"AlterObjectSchemaStmt",len:9,},Rule {name:"AlterObjectSchemaStmt",len:9,},Rule {name:"AlterObjectSchemaStmt",len:6,},Rule {name:"AlterObjectSchemaStmt",len:6,},Rule {name:"AlterObjectSchemaStmt",len:6,},Rule {name:"AlterObjectSchemaStmt",len:8,},Rule {name:"AlterObjectSchemaStmt",len:6,},Rule {name:"AlterObjectSchemaStmt",len:8,},Rule {name:"AlterObjectSchemaStmt",len:8,},Rule {name:"AlterObjectSchemaStmt",len:8,},Rule {name:"AlterObjectSchemaStmt",len:8,},Rule {name:"AlterObjectSchemaStmt",len:6,},Rule {name:"AlterObjectSchemaStmt",len:8,},Rule {name:"AlterObjectSchemaStmt",len:6,},Rule {name:"AlterObjectSchemaStmt",len:8,},Rule {name:"AlterObjectSchemaStmt",len:7,},Rule {name:"AlterObjectSchemaStmt",len:9,},Rule {name:"AlterObjectSchemaStmt",len:7,},Rule {name:"AlterObjectSchemaStmt",len:9,},Rule {name:"AlterObjectSchemaStmt",len:6,},Rule {name:"AlterOperatorStmt",len:7,},Rule {name:"operator_def_list",len:1,},Rule {name:"operator_def_list",len:3,},Rule {name:"operator_def_elem",len:3,},Rule {name:"operator_def_elem",len:3,},Rule {name:"operator_def_arg",len:1,},Rule {name:"operator_def_arg",len:1,},Rule {name:"operator_def_arg",len:1,},Rule {name:"operator_def_arg",len:1,},Rule {name:"operator_def_arg",len:1,},Rule {name:"AlterTypeStmt",len:7,},Rule {name:"AlterOwnerStmt",len:6,},Rule {name:"AlterOwnerStmt",len:6,},Rule {name:"AlterOwnerStmt",len:6,},Rule {name:"AlterOwnerStmt",len:6,},Rule {name:"AlterOwnerStmt",len:6,},Rule {name:"AlterOwnerStmt",len:6,},Rule {name:"AlterOwnerStmt",len:7,},Rule {name:"AlterOwnerStmt",len:7,},Rule {name:"AlterOwnerStmt",len:6,},Rule {name:"AlterOwnerStmt",len:9,},Rule {name:"AlterOwnerStmt",len:9,},Rule {name:"AlterOwnerStmt",len:6,},Rule {name:"AlterOwnerStmt",len:6,},Rule {name:"AlterOwnerStmt",len:6,},Rule {name:"AlterOwnerStmt",len:6,},Rule {name:"AlterOwnerStmt",len:6,},Rule {name:"AlterOwnerStmt",len:6,},Rule {name:"AlterOwnerStmt",len:8,},Rule {name:"AlterOwnerStmt",len:8,},Rule {name:"AlterOwnerStmt",len:8,},Rule {name:"AlterOwnerStmt",len:6,},Rule {name:"AlterOwnerStmt",len:7,},Rule {name:"AlterOwnerStmt",len:6,},Rule {name:"AlterOwnerStmt",len:6,},Rule {name:"CreatePublicationStmt",len:4,},Rule {name:"CreatePublicationStmt",len:7,},Rule {name:"CreatePublicationStmt",len:6,},Rule {name:"PublicationObjSpec",len:4,},Rule {name:"PublicationObjSpec",len:4,},Rule {name:"PublicationObjSpec",len:4,},Rule {name:"PublicationObjSpec",len:3,},Rule {name:"PublicationObjSpec",len:4,},Rule {name:"PublicationObjSpec",len:3,},Rule {name:"PublicationObjSpec",len:1,},Rule {name:"pub_obj_list",len:1,},Rule {name:"pub_obj_list",len:3,},Rule {name:"AlterPublicationStmt",len:5,},Rule {name:"AlterPublicationStmt",len:5,},Rule {name:"AlterPublicationStmt",len:5,},Rule {name:"AlterPublicationStmt",len:5,},Rule {name:"CreateSubscriptionStmt",len:8,},Rule {name:"AlterSubscriptionStmt",len:5,},Rule {name:"AlterSubscriptionStmt",len:5,},Rule {name:"AlterSubscriptionStmt",len:6,},Rule {name:"AlterSubscriptionStmt",len:7,},Rule {name:"AlterSubscriptionStmt",len:7,},Rule {name:"AlterSubscriptionStmt",len:7,},Rule {name:"AlterSubscriptionStmt",len:4,},Rule {name:"AlterSubscriptionStmt",len:4,},Rule {name:"AlterSubscriptionStmt",len:5,},Rule {name:"DropSubscriptionStmt",len:4,},Rule {name:"DropSubscriptionStmt",len:6,},Rule {name:"RuleStmt",len:13,},Rule {name:"RuleActionList",len:1,},Rule {name:"RuleActionList",len:1,},Rule {name:"RuleActionList",len:3,},Rule {name:"RuleActionMulti",len:3,},Rule {name:"RuleActionMulti",len:1,},Rule {name:"RuleActionStmt",len:1,},Rule {name:"RuleActionStmt",len:1,},Rule {name:"RuleActionStmt",len:1,},Rule {name:"RuleActionStmt",len:1,},Rule {name:"RuleActionStmt",len:1,},Rule {name:"RuleActionStmtOrEmpty",len:1,},Rule {name:"RuleActionStmtOrEmpty",len:0,},Rule {name:"event",len:1,},Rule {name:"event",len:1,},Rule {name:"event",len:1,},Rule {name:"event",len:1,},Rule {name:"opt_instead",len:1,},Rule {name:"opt_instead",len:1,},Rule {name:"opt_instead",len:0,},Rule {name:"NotifyStmt",len:3,},Rule {name:"notify_payload",len:2,},Rule {name:"notify_payload",len:0,},Rule {name:"ListenStmt",len:2,},Rule {name:"UnlistenStmt",len:2,},Rule {name:"UnlistenStmt",len:2,},Rule {name:"TransactionStmt",len:3,},Rule {name:"TransactionStmt",len:3,},Rule {name:"TransactionStmt",len:3,},Rule {name:"TransactionStmt",len:3,},Rule {name:"TransactionStmt",len:2,},Rule {name:"TransactionStmt",len:3,},Rule {name:"TransactionStmt",len:2,},Rule {name:"TransactionStmt",len:5,},Rule {name:"TransactionStmt",len:4,},Rule {name:"TransactionStmt",len:3,},Rule {name:"TransactionStmt",len:3,},Rule {name:"TransactionStmt",len:3,},Rule {name:"TransactionStmtLegacy",len:3,},Rule {name:"TransactionStmtLegacy",len:3,},Rule {name:"opt_transaction",len:1,},Rule {name:"opt_transaction",len:1,},Rule {name:"opt_transaction",len:0,},Rule {name:"transaction_mode_item",len:3,},Rule {name:"transaction_mode_item",len:2,},Rule {name:"transaction_mode_item",len:2,},Rule {name:"transaction_mode_item",len:1,},Rule {name:"transaction_mode_item",len:2,},Rule {name:"transaction_mode_list",len:1,},Rule {name:"transaction_mode_list",len:3,},Rule {name:"transaction_mode_list",len:2,},Rule {name:"transaction_mode_list_or_empty",len:1,},Rule {name:"transaction_mode_list_or_empty",len:0,},Rule {name:"opt_transaction_chain",len:2,},Rule {name:"opt_transaction_chain",len:3,},Rule {name:"opt_transaction_chain",len:0,},Rule {name:"ViewStmt",len:9,},Rule {name:"ViewStmt",len:11,},Rule {name:"ViewStmt",len:12,},Rule {name:"ViewStmt",len:14,},Rule {name:"opt_check_option",len:3,},Rule {name:"opt_check_option",len:4,},Rule {name:"opt_check_option",len:4,},Rule {name:"opt_check_option",len:0,},Rule {name:"LoadStmt",len:2,},Rule {name:"CreatedbStmt",len:5,},Rule {name:"createdb_opt_list",len:1,},Rule {name:"createdb_opt_list",len:0,},Rule {name:"createdb_opt_items",len:1,},Rule {name:"createdb_opt_items",len:2,},Rule {name:"createdb_opt_item",len:3,},Rule {name:"createdb_opt_item",len:3,},Rule {name:"createdb_opt_item",len:3,},Rule {name:"createdb_opt_name",len:1,},Rule {name:"createdb_opt_name",len:2,},Rule {name:"createdb_opt_name",len:1,},Rule {name:"createdb_opt_name",len:1,},Rule {name:"createdb_opt_name",len:1,},Rule {name:"createdb_opt_name",len:1,},Rule {name:"createdb_opt_name",len:1,},Rule {name:"opt_equal",len:1,},Rule {name:"opt_equal",len:0,},Rule {name:"AlterDatabaseStmt",len:5,},Rule {name:"AlterDatabaseStmt",len:4,},Rule {name:"AlterDatabaseStmt",len:6,},Rule {name:"AlterDatabaseStmt",len:6,},Rule {name:"AlterDatabaseSetStmt",len:4,},Rule {name:"DropdbStmt",len:3,},Rule {name:"DropdbStmt",len:5,},Rule {name:"DropdbStmt",len:7,},Rule {name:"DropdbStmt",len:9,},Rule {name:"drop_option_list",len:1,},Rule {name:"drop_option_list",len:3,},Rule {name:"drop_option",len:1,},Rule {name:"AlterCollationStmt",len:5,},Rule {name:"AlterSystemStmt",len:4,},Rule {name:"AlterSystemStmt",len:4,},Rule {name:"CreateDomainStmt",len:6,},Rule {name:"AlterDomainStmt",len:4,},Rule {name:"AlterDomainStmt",len:6,},Rule {name:"AlterDomainStmt",len:6,},Rule {name:"AlterDomainStmt",len:5,},Rule {name:"AlterDomainStmt",len:7,},Rule {name:"AlterDomainStmt",len:9,},Rule {name:"AlterDomainStmt",len:6,},Rule {name:"opt_as",len:1,},Rule {name:"opt_as",len:0,},Rule {name:"AlterTSDictionaryStmt",len:6,},Rule {name:"AlterTSConfigurationStmt",len:11,},Rule {name:"AlterTSConfigurationStmt",len:11,},Rule {name:"AlterTSConfigurationStmt",len:11,},Rule {name:"AlterTSConfigurationStmt",len:13,},Rule {name:"AlterTSConfigurationStmt",len:9,},Rule {name:"AlterTSConfigurationStmt",len:11,},Rule {name:"any_with",len:1,},Rule {name:"any_with",len:1,},Rule {name:"CreateConversionStmt",len:10,},Rule {name:"ClusterStmt",len:4,},Rule {name:"ClusterStmt",len:6,},Rule {name:"ClusterStmt",len:2,},Rule {name:"ClusterStmt",len:5,},Rule {name:"cluster_index_specification",len:2,},Rule {name:"cluster_index_specification",len:0,},Rule {name:"VacuumStmt",len:6,},Rule {name:"VacuumStmt",len:5,},Rule {name:"AnalyzeStmt",len:3,},Rule {name:"AnalyzeStmt",len:5,},Rule {name:"utility_option_list",len:1,},Rule {name:"utility_option_list",len:3,},Rule {name:"analyze_keyword",len:1,},Rule {name:"analyze_keyword",len:1,},Rule {name:"utility_option_elem",len:2,},Rule {name:"utility_option_name",len:1,},Rule {name:"utility_option_name",len:1,},Rule {name:"utility_option_name",len:1,},Rule {name:"utility_option_arg",len:1,},Rule {name:"utility_option_arg",len:1,},Rule {name:"utility_option_arg",len:0,},Rule {name:"opt_analyze",len:1,},Rule {name:"opt_analyze",len:0,},Rule {name:"opt_verbose",len:1,},Rule {name:"opt_verbose",len:0,},Rule {name:"opt_full",len:1,},Rule {name:"opt_full",len:0,},Rule {name:"opt_freeze",len:1,},Rule {name:"opt_freeze",len:0,},Rule {name:"opt_name_list",len:3,},Rule {name:"opt_name_list",len:0,},Rule {name:"vacuum_relation",len:2,},Rule {name:"vacuum_relation_list",len:1,},Rule {name:"vacuum_relation_list",len:3,},Rule {name:"opt_vacuum_relation_list",len:1,},Rule {name:"opt_vacuum_relation_list",len:0,},Rule {name:"ExplainStmt",len:2,},Rule {name:"ExplainStmt",len:4,},Rule {name:"ExplainStmt",len:3,},Rule {name:"ExplainStmt",len:5,},Rule {name:"ExplainableStmt",len:1,},Rule {name:"ExplainableStmt",len:1,},Rule {name:"ExplainableStmt",len:1,},Rule {name:"ExplainableStmt",len:1,},Rule {name:"ExplainableStmt",len:1,},Rule {name:"ExplainableStmt",len:1,},Rule {name:"ExplainableStmt",len:1,},Rule {name:"ExplainableStmt",len:1,},Rule {name:"ExplainableStmt",len:1,},Rule {name:"ExplainableStmt",len:1,},Rule {name:"PrepareStmt",len:5,},Rule {name:"prep_type_clause",len:3,},Rule {name:"prep_type_clause",len:0,},Rule {name:"PreparableStmt",len:1,},Rule {name:"PreparableStmt",len:1,},Rule {name:"PreparableStmt",len:1,},Rule {name:"PreparableStmt",len:1,},Rule {name:"PreparableStmt",len:1,},Rule {name:"ExecuteStmt",len:3,},Rule {name:"ExecuteStmt",len:9,},Rule {name:"ExecuteStmt",len:12,},Rule {name:"execute_param_clause",len:3,},Rule {name:"execute_param_clause",len:0,},Rule {name:"DeallocateStmt",len:2,},Rule {name:"DeallocateStmt",len:3,},Rule {name:"DeallocateStmt",len:2,},Rule {name:"DeallocateStmt",len:3,},Rule {name:"InsertStmt",len:7,},Rule {name:"insert_target",len:1,},Rule {name:"insert_target",len:3,},Rule {name:"insert_rest",len:1,},Rule {name:"insert_rest",len:4,},Rule {name:"insert_rest",len:4,},Rule {name:"insert_rest",len:7,},Rule {name:"insert_rest",len:2,},Rule {name:"override_kind",len:1,},Rule {name:"override_kind",len:1,},Rule {name:"insert_column_list",len:1,},Rule {name:"insert_column_list",len:3,},Rule {name:"insert_column_item",len:2,},Rule {name:"opt_on_conflict",len:8,},Rule {name:"opt_on_conflict",len:5,},Rule {name:"opt_on_conflict",len:0,},Rule {name:"opt_conf_expr",len:4,},Rule {name:"opt_conf_expr",len:3,},Rule {name:"opt_conf_expr",len:0,},Rule {name:"returning_clause",len:2,},Rule {name:"returning_clause",len:0,},Rule {name:"DeleteStmt",len:7,},Rule {name:"using_clause",len:2,},Rule {name:"using_clause",len:0,},Rule {name:"LockStmt",len:5,},Rule {name:"opt_lock",len:3,},Rule {name:"opt_lock",len:0,},Rule {name:"lock_type",len:2,},Rule {name:"lock_type",len:2,},Rule {name:"lock_type",len:2,},Rule {name:"lock_type",len:3,},Rule {name:"lock_type",len:1,},Rule {name:"lock_type",len:3,},Rule {name:"lock_type",len:1,},Rule {name:"lock_type",len:2,},Rule {name:"opt_nowait",len:1,},Rule {name:"opt_nowait",len:0,},Rule {name:"opt_nowait_or_skip",len:1,},Rule {name:"opt_nowait_or_skip",len:2,},Rule {name:"opt_nowait_or_skip",len:0,},Rule {name:"UpdateStmt",len:8,},Rule {name:"set_clause_list",len:1,},Rule {name:"set_clause_list",len:3,},Rule {name:"set_clause",len:3,},Rule {name:"set_clause",len:5,},Rule {name:"set_target",len:2,},Rule {name:"set_target_list",len:1,},Rule {name:"set_target_list",len:3,},Rule {name:"MergeStmt",len:9,},Rule {name:"merge_when_list",len:1,},Rule {name:"merge_when_list",len:2,},Rule {name:"merge_when_clause",len:5,},Rule {name:"merge_when_clause",len:5,},Rule {name:"merge_when_clause",len:6,},Rule {name:"merge_when_clause",len:6,},Rule {name:"merge_when_clause",len:7,},Rule {name:"opt_merge_when_condition",len:2,},Rule {name:"opt_merge_when_condition",len:0,},Rule {name:"merge_update",len:3,},Rule {name:"merge_delete",len:1,},Rule {name:"merge_insert",len:2,},Rule {name:"merge_insert",len:5,},Rule {name:"merge_insert",len:5,},Rule {name:"merge_insert",len:8,},Rule {name:"merge_insert",len:3,},Rule {name:"merge_values_clause",len:4,},Rule {name:"DeclareCursorStmt",len:7,},Rule {name:"cursor_name",len:1,},Rule {name:"cursor_options",len:0,},Rule {name:"cursor_options",len:3,},Rule {name:"cursor_options",len:2,},Rule {name:"cursor_options",len:2,},Rule {name:"cursor_options",len:2,},Rule {name:"cursor_options",len:2,},Rule {name:"opt_hold",len:0,},Rule {name:"opt_hold",len:2,},Rule {name:"opt_hold",len:2,},Rule {name:"SelectStmt",len:1,},Rule {name:"SelectStmt",len:1,},Rule {name:"select_with_parens",len:3,},Rule {name:"select_with_parens",len:3,},Rule {name:"select_no_parens",len:1,},Rule {name:"select_no_parens",len:2,},Rule {name:"select_no_parens",len:4,},Rule {name:"select_no_parens",len:4,},Rule {name:"select_no_parens",len:2,},Rule {name:"select_no_parens",len:3,},Rule {name:"select_no_parens",len:5,},Rule {name:"select_no_parens",len:5,},Rule {name:"select_clause",len:1,},Rule {name:"select_clause",len:1,},Rule {name:"simple_select",len:9,},Rule {name:"simple_select",len:9,},Rule {name:"simple_select",len:1,},Rule {name:"simple_select",len:2,},Rule {name:"simple_select",len:4,},Rule {name:"simple_select",len:4,},Rule {name:"simple_select",len:4,},Rule {name:"with_clause",len:2,},Rule {name:"with_clause",len:2,},Rule {name:"with_clause",len:3,},Rule {name:"cte_list",len:1,},Rule {name:"cte_list",len:3,},Rule {name:"common_table_expr",len:9,},Rule {name:"opt_materialized",len:1,},Rule {name:"opt_materialized",len:2,},Rule {name:"opt_materialized",len:0,},Rule {name:"opt_search_clause",len:7,},Rule {name:"opt_search_clause",len:7,},Rule {name:"opt_search_clause",len:0,},Rule {name:"opt_cycle_clause",len:10,},Rule {name:"opt_cycle_clause",len:6,},Rule {name:"opt_cycle_clause",len:0,},Rule {name:"opt_with_clause",len:1,},Rule {name:"opt_with_clause",len:0,},Rule {name:"into_clause",len:2,},Rule {name:"into_clause",len:0,},Rule {name:"OptTempTableName",len:3,},Rule {name:"OptTempTableName",len:3,},Rule {name:"OptTempTableName",len:4,},Rule {name:"OptTempTableName",len:4,},Rule {name:"OptTempTableName",len:4,},Rule {name:"OptTempTableName",len:4,},Rule {name:"OptTempTableName",len:3,},Rule {name:"OptTempTableName",len:2,},Rule {name:"OptTempTableName",len:1,},Rule {name:"opt_table",len:1,},Rule {name:"opt_table",len:0,},Rule {name:"set_quantifier",len:1,},Rule {name:"set_quantifier",len:1,},Rule {name:"set_quantifier",len:0,},Rule {name:"distinct_clause",len:1,},Rule {name:"distinct_clause",len:5,},Rule {name:"opt_all_clause",len:1,},Rule {name:"opt_all_clause",len:0,},Rule {name:"opt_distinct_clause",len:1,},Rule {name:"opt_distinct_clause",len:1,},Rule {name:"opt_sort_clause",len:1,},Rule {name:"opt_sort_clause",len:0,},Rule {name:"sort_clause",len:3,},Rule {name:"sortby_list",len:1,},Rule {name:"sortby_list",len:3,},Rule {name:"sortby",len:4,},Rule {name:"sortby",len:3,},Rule {name:"select_limit",len:2,},Rule {name:"select_limit",len:2,},Rule {name:"select_limit",len:1,},Rule {name:"select_limit",len:1,},Rule {name:"opt_select_limit",len:1,},Rule {name:"opt_select_limit",len:0,},Rule {name:"limit_clause",len:2,},Rule {name:"limit_clause",len:4,},Rule {name:"limit_clause",len:5,},Rule {name:"limit_clause",len:6,},Rule {name:"limit_clause",len:4,},Rule {name:"limit_clause",len:5,},Rule {name:"offset_clause",len:2,},Rule {name:"offset_clause",len:3,},Rule {name:"select_limit_value",len:1,},Rule {name:"select_limit_value",len:1,},Rule {name:"select_offset_value",len:1,},Rule {name:"select_fetch_first_value",len:1,},Rule {name:"select_fetch_first_value",len:2,},Rule {name:"select_fetch_first_value",len:2,},Rule {name:"I_or_F_const",len:1,},Rule {name:"I_or_F_const",len:1,},Rule {name:"row_or_rows",len:1,},Rule {name:"row_or_rows",len:1,},Rule {name:"first_or_next",len:1,},Rule {name:"first_or_next",len:1,},Rule {name:"group_clause",len:4,},Rule {name:"group_clause",len:0,},Rule {name:"group_by_list",len:1,},Rule {name:"group_by_list",len:3,},Rule {name:"group_by_item",len:1,},Rule {name:"group_by_item",len:1,},Rule {name:"group_by_item",len:1,},Rule {name:"group_by_item",len:1,},Rule {name:"group_by_item",len:1,},Rule {name:"empty_grouping_set",len:2,},Rule {name:"rollup_clause",len:4,},Rule {name:"cube_clause",len:4,},Rule {name:"grouping_sets_clause",len:5,},Rule {name:"having_clause",len:2,},Rule {name:"having_clause",len:0,},Rule {name:"for_locking_clause",len:1,},Rule {name:"for_locking_clause",len:3,},Rule {name:"opt_for_locking_clause",len:1,},Rule {name:"opt_for_locking_clause",len:0,},Rule {name:"for_locking_items",len:1,},Rule {name:"for_locking_items",len:2,},Rule {name:"for_locking_item",len:3,},Rule {name:"for_locking_strength",len:2,},Rule {name:"for_locking_strength",len:4,},Rule {name:"for_locking_strength",len:2,},Rule {name:"for_locking_strength",len:3,},Rule {name:"locked_rels_list",len:2,},Rule {name:"locked_rels_list",len:0,},Rule {name:"values_clause",len:4,},Rule {name:"values_clause",len:5,},Rule {name:"from_clause",len:2,},Rule {name:"from_clause",len:0,},Rule {name:"from_list",len:1,},Rule {name:"from_list",len:3,},Rule {name:"table_ref",len:2,},Rule {name:"table_ref",len:3,},Rule {name:"table_ref",len:2,},Rule {name:"table_ref",len:3,},Rule {name:"table_ref",len:2,},Rule {name:"table_ref",len:3,},Rule {name:"table_ref",len:2,},Rule {name:"table_ref",len:3,},Rule {name:"table_ref",len:1,},Rule {name:"table_ref",len:4,},Rule {name:"joined_table",len:3,},Rule {name:"joined_table",len:4,},Rule {name:"joined_table",len:5,},Rule {name:"joined_table",len:4,},Rule {name:"joined_table",len:5,},Rule {name:"joined_table",len:4,},Rule {name:"alias_clause",len:5,},Rule {name:"alias_clause",len:2,},Rule {name:"alias_clause",len:4,},Rule {name:"alias_clause",len:1,},Rule {name:"opt_alias_clause",len:1,},Rule {name:"opt_alias_clause",len:0,},Rule {name:"opt_alias_clause_for_join_using",len:2,},Rule {name:"opt_alias_clause_for_join_using",len:0,},Rule {name:"func_alias_clause",len:1,},Rule {name:"func_alias_clause",len:4,},Rule {name:"func_alias_clause",len:5,},Rule {name:"func_alias_clause",len:4,},Rule {name:"func_alias_clause",len:0,},Rule {name:"join_type",len:2,},Rule {name:"join_type",len:2,},Rule {name:"join_type",len:2,},Rule {name:"join_type",len:1,},Rule {name:"opt_outer",len:1,},Rule {name:"opt_outer",len:0,},Rule {name:"join_qual",len:5,},Rule {name:"join_qual",len:2,},Rule {name:"relation_expr",len:1,},Rule {name:"relation_expr",len:1,},Rule {name:"extended_relation_expr",len:2,},Rule {name:"extended_relation_expr",len:2,},Rule {name:"extended_relation_expr",len:4,},Rule {name:"relation_expr_list",len:1,},Rule {name:"relation_expr_list",len:3,},Rule {name:"relation_expr_opt_alias",len:1,},Rule {name:"relation_expr_opt_alias",len:2,},Rule {name:"relation_expr_opt_alias",len:3,},Rule {name:"tablesample_clause",len:6,},Rule {name:"opt_repeatable_clause",len:4,},Rule {name:"opt_repeatable_clause",len:0,},Rule {name:"func_table",len:2,},Rule {name:"func_table",len:6,},Rule {name:"rowsfrom_item",len:2,},Rule {name:"rowsfrom_list",len:1,},Rule {name:"rowsfrom_list",len:3,},Rule {name:"opt_col_def_list",len:4,},Rule {name:"opt_col_def_list",len:0,},Rule {name:"opt_ordinality",len:2,},Rule {name:"opt_ordinality",len:0,},Rule {name:"where_clause",len:2,},Rule {name:"where_clause",len:0,},Rule {name:"where_or_current_clause",len:2,},Rule {name:"where_or_current_clause",len:4,},Rule {name:"where_or_current_clause",len:0,},Rule {name:"OptTableFuncElementList",len:1,},Rule {name:"OptTableFuncElementList",len:0,},Rule {name:"TableFuncElementList",len:1,},Rule {name:"TableFuncElementList",len:3,},Rule {name:"TableFuncElement",len:3,},Rule {name:"xmltable",len:7,},Rule {name:"xmltable",len:12,},Rule {name:"xmltable_column_list",len:1,},Rule {name:"xmltable_column_list",len:3,},Rule {name:"xmltable_column_el",len:2,},Rule {name:"xmltable_column_el",len:3,},Rule {name:"xmltable_column_el",len:3,},Rule {name:"xmltable_column_option_list",len:1,},Rule {name:"xmltable_column_option_list",len:2,},Rule {name:"xmltable_column_option_el",len:2,},Rule {name:"xmltable_column_option_el",len:2,},Rule {name:"xmltable_column_option_el",len:2,},Rule {name:"xmltable_column_option_el",len:1,},Rule {name:"xml_namespace_list",len:1,},Rule {name:"xml_namespace_list",len:3,},Rule {name:"xml_namespace_el",len:3,},Rule {name:"xml_namespace_el",len:2,},Rule {name:"Typename",len:2,},Rule {name:"Typename",len:3,},Rule {name:"Typename",len:5,},Rule {name:"Typename",len:6,},Rule {name:"Typename",len:2,},Rule {name:"Typename",len:3,},Rule {name:"opt_array_bounds",len:3,},Rule {name:"opt_array_bounds",len:4,},Rule {name:"opt_array_bounds",len:0,},Rule {name:"SimpleTypename",len:1,},Rule {name:"SimpleTypename",len:1,},Rule {name:"SimpleTypename",len:1,},Rule {name:"SimpleTypename",len:1,},Rule {name:"SimpleTypename",len:1,},Rule {name:"SimpleTypename",len:2,},Rule {name:"SimpleTypename",len:4,},Rule {name:"ConstTypename",len:1,},Rule {name:"ConstTypename",len:1,},Rule {name:"ConstTypename",len:1,},Rule {name:"ConstTypename",len:1,},Rule {name:"GenericType",len:2,},Rule {name:"GenericType",len:3,},Rule {name:"opt_type_modifiers",len:3,},Rule {name:"opt_type_modifiers",len:0,},Rule {name:"Numeric",len:1,},Rule {name:"Numeric",len:1,},Rule {name:"Numeric",len:1,},Rule {name:"Numeric",len:1,},Rule {name:"Numeric",len:1,},Rule {name:"Numeric",len:2,},Rule {name:"Numeric",len:2,},Rule {name:"Numeric",len:2,},Rule {name:"Numeric",len:2,},Rule {name:"Numeric",len:2,},Rule {name:"Numeric",len:1,},Rule {name:"opt_float",len:3,},Rule {name:"opt_float",len:0,},Rule {name:"Bit",len:1,},Rule {name:"Bit",len:1,},Rule {name:"ConstBit",len:1,},Rule {name:"ConstBit",len:1,},Rule {name:"BitWithLength",len:5,},Rule {name:"BitWithoutLength",len:2,},Rule {name:"Character",len:1,},Rule {name:"Character",len:1,},Rule {name:"ConstCharacter",len:1,},Rule {name:"ConstCharacter",len:1,},Rule {name:"CharacterWithLength",len:4,},Rule {name:"CharacterWithoutLength",len:1,},Rule {name:"character",len:2,},Rule {name:"character",len:2,},Rule {name:"character",len:1,},Rule {name:"character",len:3,},Rule {name:"character",len:3,},Rule {name:"character",len:2,},Rule {name:"opt_varying",len:1,},Rule {name:"opt_varying",len:0,},Rule {name:"ConstDatetime",len:5,},Rule {name:"ConstDatetime",len:2,},Rule {name:"ConstDatetime",len:5,},Rule {name:"ConstDatetime",len:2,},Rule {name:"ConstInterval",len:1,},Rule {name:"opt_timezone",len:3,},Rule {name:"opt_timezone",len:3,},Rule {name:"opt_timezone",len:0,},Rule {name:"opt_interval",len:1,},Rule {name:"opt_interval",len:1,},Rule {name:"opt_interval",len:1,},Rule {name:"opt_interval",len:1,},Rule {name:"opt_interval",len:1,},Rule {name:"opt_interval",len:1,},Rule {name:"opt_interval",len:3,},Rule {name:"opt_interval",len:3,},Rule {name:"opt_interval",len:3,},Rule {name:"opt_interval",len:3,},Rule {name:"opt_interval",len:3,},Rule {name:"opt_interval",len:3,},Rule {name:"opt_interval",len:3,},Rule {name:"opt_interval",len:0,},Rule {name:"interval_second",len:1,},Rule {name:"interval_second",len:4,},Rule {name:"a_expr",len:1,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:5,},Rule {name:"a_expr",len:2,},Rule {name:"a_expr",len:2,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:2,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:2,},Rule {name:"a_expr",len:2,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:5,},Rule {name:"a_expr",len:4,},Rule {name:"a_expr",len:6,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:5,},Rule {name:"a_expr",len:4,},Rule {name:"a_expr",len:6,},Rule {name:"a_expr",len:4,},Rule {name:"a_expr",len:6,},Rule {name:"a_expr",len:5,},Rule {name:"a_expr",len:7,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:2,},Rule {name:"a_expr",len:4,},Rule {name:"a_expr",len:2,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:4,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:4,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:4,},Rule {name:"a_expr",len:5,},Rule {name:"a_expr",len:6,},Rule {name:"a_expr",len:6,},Rule {name:"a_expr",len:7,},Rule {name:"a_expr",len:6,},Rule {name:"a_expr",len:7,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:4,},Rule {name:"a_expr",len:4,},Rule {name:"a_expr",len:6,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:4,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:4,},Rule {name:"a_expr",len:4,},Rule {name:"a_expr",len:5,},Rule {name:"a_expr",len:4,},Rule {name:"a_expr",len:5,},Rule {name:"a_expr",len:1,},Rule {name:"b_expr",len:1,},Rule {name:"b_expr",len:3,},Rule {name:"b_expr",len:2,},Rule {name:"b_expr",len:2,},Rule {name:"b_expr",len:3,},Rule {name:"b_expr",len:3,},Rule {name:"b_expr",len:3,},Rule {name:"b_expr",len:3,},Rule {name:"b_expr",len:3,},Rule {name:"b_expr",len:3,},Rule {name:"b_expr",len:3,},Rule {name:"b_expr",len:3,},Rule {name:"b_expr",len:3,},Rule {name:"b_expr",len:3,},Rule {name:"b_expr",len:3,},Rule {name:"b_expr",len:3,},Rule {name:"b_expr",len:3,},Rule {name:"b_expr",len:2,},Rule {name:"b_expr",len:5,},Rule {name:"b_expr",len:6,},Rule {name:"b_expr",len:3,},Rule {name:"b_expr",len:4,},Rule {name:"c_expr",len:1,},Rule {name:"c_expr",len:1,},Rule {name:"c_expr",len:2,},Rule {name:"c_expr",len:4,},Rule {name:"c_expr",len:1,},Rule {name:"c_expr",len:1,},Rule {name:"c_expr",len:1,},Rule {name:"c_expr",len:2,},Rule {name:"c_expr",len:2,},Rule {name:"c_expr",len:2,},Rule {name:"c_expr",len:2,},Rule {name:"c_expr",len:1,},Rule {name:"c_expr",len:1,},Rule {name:"c_expr",len:4,},Rule {name:"func_application",len:3,},Rule {name:"func_application",len:5,},Rule {name:"func_application",len:6,},Rule {name:"func_application",len:8,},Rule {name:"func_application",len:6,},Rule {name:"func_application",len:6,},Rule {name:"func_application",len:4,},Rule {name:"func_expr",len:4,},Rule {name:"func_expr",len:3,},Rule {name:"func_expr",len:1,},Rule {name:"func_expr_windowless",len:1,},Rule {name:"func_expr_windowless",len:1,},Rule {name:"func_expr_windowless",len:1,},Rule {name:"func_expr_common_subexpr",len:5,},Rule {name:"func_expr_common_subexpr",len:1,},Rule {name:"func_expr_common_subexpr",len:1,},Rule {name:"func_expr_common_subexpr",len:4,},Rule {name:"func_expr_common_subexpr",len:1,},Rule {name:"func_expr_common_subexpr",len:4,},Rule {name:"func_expr_common_subexpr",len:1,},Rule {name:"func_expr_common_subexpr",len:4,},Rule {name:"func_expr_common_subexpr",len:1,},Rule {name:"func_expr_common_subexpr",len:4,},Rule {name:"func_expr_common_subexpr",len:1,},Rule {name:"func_expr_common_subexpr",len:1,},Rule {name:"func_expr_common_subexpr",len:1,},Rule {name:"func_expr_common_subexpr",len:1,},Rule {name:"func_expr_common_subexpr",len:1,},Rule {name:"func_expr_common_subexpr",len:1,},Rule {name:"func_expr_common_subexpr",len:1,},Rule {name:"func_expr_common_subexpr",len:6,},Rule {name:"func_expr_common_subexpr",len:4,},Rule {name:"func_expr_common_subexpr",len:4,},Rule {name:"func_expr_common_subexpr",len:6,},Rule {name:"func_expr_common_subexpr",len:4,},Rule {name:"func_expr_common_subexpr",len:4,},Rule {name:"func_expr_common_subexpr",len:4,},Rule {name:"func_expr_common_subexpr",len:4,},Rule {name:"func_expr_common_subexpr",len:4,},Rule {name:"func_expr_common_subexpr",len:6,},Rule {name:"func_expr_common_subexpr",len:5,},Rule {name:"func_expr_common_subexpr",len:5,},Rule {name:"func_expr_common_subexpr",len:5,},Rule {name:"func_expr_common_subexpr",len:4,},Rule {name:"func_expr_common_subexpr",len:6,},Rule {name:"func_expr_common_subexpr",len:4,},Rule {name:"func_expr_common_subexpr",len:4,},Rule {name:"func_expr_common_subexpr",len:4,},Rule {name:"func_expr_common_subexpr",len:4,},Rule {name:"func_expr_common_subexpr",len:5,},Rule {name:"func_expr_common_subexpr",len:7,},Rule {name:"func_expr_common_subexpr",len:7,},Rule {name:"func_expr_common_subexpr",len:9,},Rule {name:"func_expr_common_subexpr",len:5,},Rule {name:"func_expr_common_subexpr",len:4,},Rule {name:"func_expr_common_subexpr",len:6,},Rule {name:"func_expr_common_subexpr",len:5,},Rule {name:"func_expr_common_subexpr",len:7,},Rule {name:"func_expr_common_subexpr",len:7,},Rule {name:"func_expr_common_subexpr",len:8,},Rule {name:"func_expr_common_subexpr",len:4,},Rule {name:"func_expr_common_subexpr",len:7,},Rule {name:"func_expr_common_subexpr",len:4,},Rule {name:"func_expr_common_subexpr",len:6,},Rule {name:"func_expr_common_subexpr",len:6,},Rule {name:"func_expr_common_subexpr",len:4,},Rule {name:"xml_root_version",len:2,},Rule {name:"xml_root_version",len:3,},Rule {name:"opt_xml_root_standalone",len:3,},Rule {name:"opt_xml_root_standalone",len:3,},Rule {name:"opt_xml_root_standalone",len:4,},Rule {name:"opt_xml_root_standalone",len:0,},Rule {name:"xml_attributes",len:4,},Rule {name:"xml_attribute_list",len:1,},Rule {name:"xml_attribute_list",len:3,},Rule {name:"xml_attribute_el",len:3,},Rule {name:"xml_attribute_el",len:1,},Rule {name:"document_or_content",len:1,},Rule {name:"document_or_content",len:1,},Rule {name:"xml_indent_option",len:1,},Rule {name:"xml_indent_option",len:2,},Rule {name:"xml_indent_option",len:0,},Rule {name:"xml_whitespace_option",len:2,},Rule {name:"xml_whitespace_option",len:2,},Rule {name:"xml_whitespace_option",len:0,},Rule {name:"xmlexists_argument",len:2,},Rule {name:"xmlexists_argument",len:3,},Rule {name:"xmlexists_argument",len:3,},Rule {name:"xmlexists_argument",len:4,},Rule {name:"xml_passing_mech",len:2,},Rule {name:"xml_passing_mech",len:2,},Rule {name:"within_group_clause",len:5,},Rule {name:"within_group_clause",len:0,},Rule {name:"filter_clause",len:5,},Rule {name:"filter_clause",len:0,},Rule {name:"window_clause",len:2,},Rule {name:"window_clause",len:0,},Rule {name:"window_definition_list",len:1,},Rule {name:"window_definition_list",len:3,},Rule {name:"window_definition",len:3,},Rule {name:"over_clause",len:2,},Rule {name:"over_clause",len:2,},Rule {name:"over_clause",len:0,},Rule {name:"window_specification",len:6,},Rule {name:"opt_existing_window_name",len:1,},Rule {name:"opt_existing_window_name",len:0,},Rule {name:"opt_partition_clause",len:3,},Rule {name:"opt_partition_clause",len:0,},Rule {name:"opt_frame_clause",len:3,},Rule {name:"opt_frame_clause",len:3,},Rule {name:"opt_frame_clause",len:3,},Rule {name:"opt_frame_clause",len:0,},Rule {name:"frame_extent",len:1,},Rule {name:"frame_extent",len:4,},Rule {name:"frame_bound",len:2,},Rule {name:"frame_bound",len:2,},Rule {name:"frame_bound",len:2,},Rule {name:"frame_bound",len:2,},Rule {name:"frame_bound",len:2,},Rule {name:"opt_window_exclusion_clause",len:3,},Rule {name:"opt_window_exclusion_clause",len:2,},Rule {name:"opt_window_exclusion_clause",len:2,},Rule {name:"opt_window_exclusion_clause",len:3,},Rule {name:"opt_window_exclusion_clause",len:0,},Rule {name:"row",len:4,},Rule {name:"row",len:3,},Rule {name:"row",len:5,},Rule {name:"explicit_row",len:4,},Rule {name:"explicit_row",len:3,},Rule {name:"implicit_row",len:5,},Rule {name:"sub_type",len:1,},Rule {name:"sub_type",len:1,},Rule {name:"sub_type",len:1,},Rule {name:"all_Op",len:1,},Rule {name:"all_Op",len:1,},Rule {name:"MathOp",len:1,},Rule {name:"MathOp",len:1,},Rule {name:"MathOp",len:1,},Rule {name:"MathOp",len:1,},Rule {name:"MathOp",len:1,},Rule {name:"MathOp",len:1,},Rule {name:"MathOp",len:1,},Rule {name:"MathOp",len:1,},Rule {name:"MathOp",len:1,},Rule {name:"MathOp",len:1,},Rule {name:"MathOp",len:1,},Rule {name:"MathOp",len:1,},Rule {name:"qual_Op",len:1,},Rule {name:"qual_Op",len:4,},Rule {name:"qual_all_Op",len:1,},Rule {name:"qual_all_Op",len:4,},Rule {name:"subquery_Op",len:1,},Rule {name:"subquery_Op",len:4,},Rule {name:"subquery_Op",len:1,},Rule {name:"subquery_Op",len:2,},Rule {name:"subquery_Op",len:1,},Rule {name:"subquery_Op",len:2,},Rule {name:"expr_list",len:1,},Rule {name:"expr_list",len:3,},Rule {name:"func_arg_list",len:1,},Rule {name:"func_arg_list",len:3,},Rule {name:"func_arg_expr",len:1,},Rule {name:"func_arg_expr",len:3,},Rule {name:"func_arg_expr",len:3,},Rule {name:"func_arg_list_opt",len:1,},Rule {name:"func_arg_list_opt",len:0,},Rule {name:"type_list",len:1,},Rule {name:"type_list",len:3,},Rule {name:"array_expr",len:3,},Rule {name:"array_expr",len:3,},Rule {name:"array_expr",len:2,},Rule {name:"array_expr_list",len:1,},Rule {name:"array_expr_list",len:3,},Rule {name:"extract_list",len:3,},Rule {name:"extract_list",len:3,},Rule {name:"extract_arg",len:1,},Rule {name:"extract_arg",len:1,},Rule {name:"extract_arg",len:1,},Rule {name:"extract_arg",len:1,},Rule {name:"extract_arg",len:1,},Rule {name:"extract_arg",len:1,},Rule {name:"extract_arg",len:1,},Rule {name:"extract_arg",len:1,},Rule {name:"unicode_normal_form",len:1,},Rule {name:"unicode_normal_form",len:1,},Rule {name:"unicode_normal_form",len:1,},Rule {name:"unicode_normal_form",len:1,},Rule {name:"overlay_list",len:7,},Rule {name:"overlay_list",len:5,},Rule {name:"position_list",len:3,},Rule {name:"substr_list",len:5,},Rule {name:"substr_list",len:5,},Rule {name:"substr_list",len:3,},Rule {name:"substr_list",len:3,},Rule {name:"substr_list",len:5,},Rule {name:"trim_list",len:3,},Rule {name:"trim_list",len:2,},Rule {name:"trim_list",len:1,},Rule {name:"in_expr",len:1,},Rule {name:"in_expr",len:3,},Rule {name:"case_expr",len:5,},Rule {name:"when_clause_list",len:1,},Rule {name:"when_clause_list",len:2,},Rule {name:"when_clause",len:4,},Rule {name:"case_default",len:2,},Rule {name:"case_default",len:0,},Rule {name:"case_arg",len:1,},Rule {name:"case_arg",len:0,},Rule {name:"columnref",len:1,},Rule {name:"columnref",len:2,},Rule {name:"indirection_el",len:2,},Rule {name:"indirection_el",len:2,},Rule {name:"indirection_el",len:3,},Rule {name:"indirection_el",len:5,},Rule {name:"opt_slice_bound",len:1,},Rule {name:"opt_slice_bound",len:0,},Rule {name:"indirection",len:1,},Rule {name:"indirection",len:2,},Rule {name:"opt_indirection",len:0,},Rule {name:"opt_indirection",len:2,},Rule {name:"opt_asymmetric",len:1,},Rule {name:"opt_asymmetric",len:0,},Rule {name:"json_value_expr",len:2,},Rule {name:"json_format_clause_opt",len:3,},Rule {name:"json_format_clause_opt",len:0,},Rule {name:"json_encoding_clause_opt",len:2,},Rule {name:"json_encoding_clause_opt",len:0,},Rule {name:"json_output_clause_opt",len:3,},Rule {name:"json_output_clause_opt",len:0,},Rule {name:"json_predicate_type_constraint",len:1,},Rule {name:"json_predicate_type_constraint",len:2,},Rule {name:"json_predicate_type_constraint",len:2,},Rule {name:"json_predicate_type_constraint",len:2,},Rule {name:"json_predicate_type_constraint",len:2,},Rule {name:"json_key_uniqueness_constraint_opt",len:3,},Rule {name:"json_key_uniqueness_constraint_opt",len:2,},Rule {name:"json_key_uniqueness_constraint_opt",len:3,},Rule {name:"json_key_uniqueness_constraint_opt",len:2,},Rule {name:"json_key_uniqueness_constraint_opt",len:0,},Rule {name:"json_name_and_value_list",len:1,},Rule {name:"json_name_and_value_list",len:3,},Rule {name:"json_name_and_value",len:3,},Rule {name:"json_name_and_value",len:3,},Rule {name:"json_object_constructor_null_clause_opt",len:3,},Rule {name:"json_object_constructor_null_clause_opt",len:3,},Rule {name:"json_object_constructor_null_clause_opt",len:0,},Rule {name:"json_array_constructor_null_clause_opt",len:3,},Rule {name:"json_array_constructor_null_clause_opt",len:3,},Rule {name:"json_array_constructor_null_clause_opt",len:0,},Rule {name:"json_value_expr_list",len:1,},Rule {name:"json_value_expr_list",len:3,},Rule {name:"json_aggregate_func",len:7,},Rule {name:"json_aggregate_func",len:7,},Rule {name:"json_array_aggregate_order_by_clause_opt",len:3,},Rule {name:"json_array_aggregate_order_by_clause_opt",len:0,},Rule {name:"opt_target_list",len:1,},Rule {name:"opt_target_list",len:0,},Rule {name:"target_list",len:1,},Rule {name:"target_list",len:3,},Rule {name:"target_el",len:3,},Rule {name:"target_el",len:2,},Rule {name:"target_el",len:1,},Rule {name:"target_el",len:1,},Rule {name:"qualified_name_list",len:1,},Rule {name:"qualified_name_list",len:3,},Rule {name:"qualified_name",len:1,},Rule {name:"qualified_name",len:2,},Rule {name:"name_list",len:1,},Rule {name:"name_list",len:3,},Rule {name:"name",len:1,},Rule {name:"attr_name",len:1,},Rule {name:"file_name",len:1,},Rule {name:"func_name",len:1,},Rule {name:"func_name",len:2,},Rule {name:"AexprConst",len:1,},Rule {name:"AexprConst",len:1,},Rule {name:"AexprConst",len:1,},Rule {name:"AexprConst",len:1,},Rule {name:"AexprConst",len:1,},Rule {name:"AexprConst",len:2,},Rule {name:"AexprConst",len:6,},Rule {name:"AexprConst",len:2,},Rule {name:"AexprConst",len:6,},Rule {name:"AexprConst",len:2,},Rule {name:"AexprConst",len:3,},Rule {name:"AexprConst",len:5,},Rule {name:"AexprConst",len:2,},Rule {name:"AexprConst",len:3,},Rule {name:"AexprConst",len:5,},Rule {name:"AexprConst",len:1,},Rule {name:"AexprConst",len:1,},Rule {name:"AexprConst",len:1,},Rule {name:"Iconst",len:1,},Rule {name:"Sconst",len:1,},Rule {name:"SignedIconst",len:1,},Rule {name:"SignedIconst",len:2,},Rule {name:"SignedIconst",len:2,},Rule {name:"RoleId",len:1,},Rule {name:"RoleSpec",len:1,},Rule {name:"RoleSpec",len:1,},Rule {name:"RoleSpec",len:1,},Rule {name:"RoleSpec",len:1,},Rule {name:"role_list",len:1,},Rule {name:"role_list",len:3,},Rule {name:"PLpgSQL_Expr",len:10,},Rule {name:"PLAssignStmt",len:4,},Rule {name:"plassign_target",len:1,},Rule {name:"plassign_target",len:1,},Rule {name:"plassign_equals",len:1,},Rule {name:"plassign_equals",len:1,},Rule {name:"ColId",len:1,},Rule {name:"ColId",len:1,},Rule {name:"ColId",len:1,},Rule {name:"type_function_name",len:1,},Rule {name:"type_function_name",len:1,},Rule {name:"type_function_name",len:1,},Rule {name:"NonReservedWord",len:1,},Rule {name:"NonReservedWord",len:1,},Rule {name:"NonReservedWord",len:1,},Rule {name:"NonReservedWord",len:1,},Rule {name:"ColLabel",len:1,},Rule {name:"ColLabel",len:1,},Rule {name:"ColLabel",len:1,},Rule {name:"ColLabel",len:1,},Rule {name:"ColLabel",len:1,},Rule {name:"BareColLabel",len:1,},Rule {name:"BareColLabel",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"type_func_name_keyword",len:1,},Rule {name:"type_func_name_keyword",len:1,},Rule {name:"type_func_name_keyword",len:1,},Rule {name:"type_func_name_keyword",len:1,},Rule {name:"type_func_name_keyword",len:1,},Rule {name:"type_func_name_keyword",len:1,},Rule {name:"type_func_name_keyword",len:1,},Rule {name:"type_func_name_keyword",len:1,},Rule {name:"type_func_name_keyword",len:1,},Rule {name:"type_func_name_keyword",len:1,},Rule {name:"type_func_name_keyword",len:1,},Rule {name:"type_func_name_keyword",len:1,},Rule {name:"type_func_name_keyword",len:1,},Rule {name:"type_func_name_keyword",len:1,},Rule {name:"type_func_name_keyword",len:1,},Rule {name:"type_func_name_keyword",len:1,},Rule {name:"type_func_name_keyword",len:1,},Rule {name:"type_func_name_keyword",len:1,},Rule {name:"type_func_name_keyword",len:1,},Rule {name:"type_func_name_keyword",len:1,},Rule {name:"type_func_name_keyword",len:1,},Rule {name:"type_func_name_keyword",len:1,},Rule {name:"type_func_name_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},]; +pub(crate) static RULES: [Rule; 3420] = [Rule {name:"parse_toplevel",len:1,},Rule {name:"parse_toplevel",len:2,},Rule {name:"parse_toplevel",len:2,},Rule {name:"parse_toplevel",len:2,},Rule {name:"parse_toplevel",len:2,},Rule {name:"parse_toplevel",len:2,},Rule {name:"stmtmulti",len:3,},Rule {name:"stmtmulti",len:1,},Rule {name:"toplevel_stmt",len:1,},Rule {name:"toplevel_stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:1,},Rule {name:"stmt",len:0,},Rule {name:"opt_single_name",len:1,},Rule {name:"opt_single_name",len:0,},Rule {name:"opt_qualified_name",len:1,},Rule {name:"opt_qualified_name",len:0,},Rule {name:"opt_concurrently",len:1,},Rule {name:"opt_concurrently",len:0,},Rule {name:"opt_drop_behavior",len:1,},Rule {name:"opt_drop_behavior",len:1,},Rule {name:"opt_drop_behavior",len:0,},Rule {name:"CallStmt",len:2,},Rule {name:"CreateRoleStmt",len:5,},Rule {name:"opt_with",len:1,},Rule {name:"opt_with",len:1,},Rule {name:"opt_with",len:0,},Rule {name:"OptRoleList",len:2,},Rule {name:"OptRoleList",len:0,},Rule {name:"AlterOptRoleList",len:2,},Rule {name:"AlterOptRoleList",len:0,},Rule {name:"AlterOptRoleElem",len:2,},Rule {name:"AlterOptRoleElem",len:2,},Rule {name:"AlterOptRoleElem",len:2,},Rule {name:"AlterOptRoleElem",len:3,},Rule {name:"AlterOptRoleElem",len:3,},Rule {name:"AlterOptRoleElem",len:3,},Rule {name:"AlterOptRoleElem",len:1,},Rule {name:"AlterOptRoleElem",len:3,},Rule {name:"AlterOptRoleElem",len:3,},Rule {name:"AlterOptRoleElem",len:2,},Rule {name:"AlterOptRoleElem",len:1,},Rule {name:"CreateOptRoleElem",len:1,},Rule {name:"CreateOptRoleElem",len:2,},Rule {name:"CreateOptRoleElem",len:2,},Rule {name:"CreateOptRoleElem",len:2,},Rule {name:"CreateOptRoleElem",len:3,},Rule {name:"CreateOptRoleElem",len:3,},Rule {name:"CreateUserStmt",len:5,},Rule {name:"AlterRoleStmt",len:5,},Rule {name:"AlterRoleStmt",len:5,},Rule {name:"opt_in_database",len:0,},Rule {name:"opt_in_database",len:3,},Rule {name:"AlterRoleSetStmt",len:5,},Rule {name:"AlterRoleSetStmt",len:5,},Rule {name:"AlterRoleSetStmt",len:5,},Rule {name:"AlterRoleSetStmt",len:5,},Rule {name:"DropRoleStmt",len:3,},Rule {name:"DropRoleStmt",len:5,},Rule {name:"DropRoleStmt",len:3,},Rule {name:"DropRoleStmt",len:5,},Rule {name:"DropRoleStmt",len:3,},Rule {name:"DropRoleStmt",len:5,},Rule {name:"CreateGroupStmt",len:5,},Rule {name:"AlterGroupStmt",len:6,},Rule {name:"add_drop",len:1,},Rule {name:"add_drop",len:1,},Rule {name:"CreateSchemaStmt",len:6,},Rule {name:"CreateSchemaStmt",len:4,},Rule {name:"CreateSchemaStmt",len:9,},Rule {name:"CreateSchemaStmt",len:7,},Rule {name:"OptSchemaEltList",len:2,},Rule {name:"OptSchemaEltList",len:0,},Rule {name:"schema_stmt",len:1,},Rule {name:"schema_stmt",len:1,},Rule {name:"schema_stmt",len:1,},Rule {name:"schema_stmt",len:1,},Rule {name:"schema_stmt",len:1,},Rule {name:"schema_stmt",len:1,},Rule {name:"VariableSetStmt",len:2,},Rule {name:"VariableSetStmt",len:3,},Rule {name:"VariableSetStmt",len:3,},Rule {name:"set_rest",len:2,},Rule {name:"set_rest",len:5,},Rule {name:"set_rest",len:1,},Rule {name:"generic_set",len:3,},Rule {name:"generic_set",len:3,},Rule {name:"generic_set",len:3,},Rule {name:"generic_set",len:3,},Rule {name:"set_rest_more",len:1,},Rule {name:"set_rest_more",len:3,},Rule {name:"set_rest_more",len:3,},Rule {name:"set_rest_more",len:2,},Rule {name:"set_rest_more",len:2,},Rule {name:"set_rest_more",len:2,},Rule {name:"set_rest_more",len:2,},Rule {name:"set_rest_more",len:2,},Rule {name:"set_rest_more",len:2,},Rule {name:"set_rest_more",len:3,},Rule {name:"set_rest_more",len:3,},Rule {name:"set_rest_more",len:3,},Rule {name:"set_rest_more",len:3,},Rule {name:"set_rest_more",len:3,},Rule {name:"var_name",len:1,},Rule {name:"var_name",len:3,},Rule {name:"var_list",len:1,},Rule {name:"var_list",len:3,},Rule {name:"var_value",len:1,},Rule {name:"var_value",len:1,},Rule {name:"var_value",len:1,},Rule {name:"iso_level",len:2,},Rule {name:"iso_level",len:2,},Rule {name:"iso_level",len:2,},Rule {name:"iso_level",len:1,},Rule {name:"opt_boolean_or_string",len:1,},Rule {name:"opt_boolean_or_string",len:1,},Rule {name:"opt_boolean_or_string",len:1,},Rule {name:"opt_boolean_or_string",len:1,},Rule {name:"zone_value",len:1,},Rule {name:"zone_value",len:1,},Rule {name:"zone_value",len:1,},Rule {name:"zone_value",len:3,},Rule {name:"zone_value",len:5,},Rule {name:"zone_value",len:1,},Rule {name:"zone_value",len:1,},Rule {name:"zone_value",len:1,},Rule {name:"opt_encoding",len:1,},Rule {name:"opt_encoding",len:1,},Rule {name:"opt_encoding",len:0,},Rule {name:"NonReservedWord_or_Sconst",len:1,},Rule {name:"NonReservedWord_or_Sconst",len:1,},Rule {name:"VariableResetStmt",len:2,},Rule {name:"reset_rest",len:1,},Rule {name:"reset_rest",len:2,},Rule {name:"reset_rest",len:3,},Rule {name:"reset_rest",len:2,},Rule {name:"generic_reset",len:1,},Rule {name:"generic_reset",len:1,},Rule {name:"SetResetClause",len:2,},Rule {name:"SetResetClause",len:1,},Rule {name:"FunctionSetResetClause",len:2,},Rule {name:"FunctionSetResetClause",len:1,},Rule {name:"VariableShowStmt",len:2,},Rule {name:"VariableShowStmt",len:3,},Rule {name:"VariableShowStmt",len:4,},Rule {name:"VariableShowStmt",len:3,},Rule {name:"VariableShowStmt",len:2,},Rule {name:"ConstraintsSetStmt",len:4,},Rule {name:"constraints_set_list",len:1,},Rule {name:"constraints_set_list",len:1,},Rule {name:"constraints_set_mode",len:1,},Rule {name:"constraints_set_mode",len:1,},Rule {name:"CheckPointStmt",len:1,},Rule {name:"DiscardStmt",len:2,},Rule {name:"DiscardStmt",len:2,},Rule {name:"DiscardStmt",len:2,},Rule {name:"DiscardStmt",len:2,},Rule {name:"DiscardStmt",len:2,},Rule {name:"AlterTableStmt",len:4,},Rule {name:"AlterTableStmt",len:6,},Rule {name:"AlterTableStmt",len:4,},Rule {name:"AlterTableStmt",len:6,},Rule {name:"AlterTableStmt",len:10,},Rule {name:"AlterTableStmt",len:13,},Rule {name:"AlterTableStmt",len:4,},Rule {name:"AlterTableStmt",len:6,},Rule {name:"AlterTableStmt",len:4,},Rule {name:"AlterTableStmt",len:10,},Rule {name:"AlterTableStmt",len:13,},Rule {name:"AlterTableStmt",len:4,},Rule {name:"AlterTableStmt",len:6,},Rule {name:"AlterTableStmt",len:4,},Rule {name:"AlterTableStmt",len:6,},Rule {name:"AlterTableStmt",len:5,},Rule {name:"AlterTableStmt",len:7,},Rule {name:"AlterTableStmt",len:11,},Rule {name:"AlterTableStmt",len:14,},Rule {name:"AlterTableStmt",len:5,},Rule {name:"AlterTableStmt",len:7,},Rule {name:"alter_table_cmds",len:1,},Rule {name:"alter_table_cmds",len:3,},Rule {name:"partition_cmd",len:4,},Rule {name:"partition_cmd",len:4,},Rule {name:"partition_cmd",len:4,},Rule {name:"index_partition_cmd",len:3,},Rule {name:"alter_table_cmd",len:2,},Rule {name:"alter_table_cmd",len:5,},Rule {name:"alter_table_cmd",len:3,},Rule {name:"alter_table_cmd",len:6,},Rule {name:"alter_table_cmd",len:4,},Rule {name:"alter_table_cmd",len:6,},Rule {name:"alter_table_cmd",len:6,},Rule {name:"alter_table_cmd",len:9,},Rule {name:"alter_table_cmd",len:5,},Rule {name:"alter_table_cmd",len:7,},Rule {name:"alter_table_cmd",len:6,},Rule {name:"alter_table_cmd",len:6,},Rule {name:"alter_table_cmd",len:5,},Rule {name:"alter_table_cmd",len:5,},Rule {name:"alter_table_cmd",len:5,},Rule {name:"alter_table_cmd",len:5,},Rule {name:"alter_table_cmd",len:9,},Rule {name:"alter_table_cmd",len:4,},Rule {name:"alter_table_cmd",len:5,},Rule {name:"alter_table_cmd",len:7,},Rule {name:"alter_table_cmd",len:6,},Rule {name:"alter_table_cmd",len:4,},Rule {name:"alter_table_cmd",len:8,},Rule {name:"alter_table_cmd",len:4,},Rule {name:"alter_table_cmd",len:2,},Rule {name:"alter_table_cmd",len:4,},Rule {name:"alter_table_cmd",len:3,},Rule {name:"alter_table_cmd",len:6,},Rule {name:"alter_table_cmd",len:4,},Rule {name:"alter_table_cmd",len:3,},Rule {name:"alter_table_cmd",len:3,},Rule {name:"alter_table_cmd",len:3,},Rule {name:"alter_table_cmd",len:2,},Rule {name:"alter_table_cmd",len:2,},Rule {name:"alter_table_cmd",len:3,},Rule {name:"alter_table_cmd",len:4,},Rule {name:"alter_table_cmd",len:4,},Rule {name:"alter_table_cmd",len:3,},Rule {name:"alter_table_cmd",len:3,},Rule {name:"alter_table_cmd",len:3,},Rule {name:"alter_table_cmd",len:3,},Rule {name:"alter_table_cmd",len:3,},Rule {name:"alter_table_cmd",len:3,},Rule {name:"alter_table_cmd",len:4,},Rule {name:"alter_table_cmd",len:4,},Rule {name:"alter_table_cmd",len:3,},Rule {name:"alter_table_cmd",len:2,},Rule {name:"alter_table_cmd",len:3,},Rule {name:"alter_table_cmd",len:2,},Rule {name:"alter_table_cmd",len:2,},Rule {name:"alter_table_cmd",len:3,},Rule {name:"alter_table_cmd",len:4,},Rule {name:"alter_table_cmd",len:3,},Rule {name:"alter_table_cmd",len:2,},Rule {name:"alter_table_cmd",len:2,},Rule {name:"alter_table_cmd",len:3,},Rule {name:"alter_table_cmd",len:4,},Rule {name:"alter_table_cmd",len:4,},Rule {name:"alter_table_cmd",len:4,},Rule {name:"alter_table_cmd",len:5,},Rule {name:"alter_table_cmd",len:1,},Rule {name:"alter_column_default",len:3,},Rule {name:"alter_column_default",len:2,},Rule {name:"opt_collate_clause",len:2,},Rule {name:"opt_collate_clause",len:0,},Rule {name:"alter_using",len:2,},Rule {name:"alter_using",len:0,},Rule {name:"replica_identity",len:1,},Rule {name:"replica_identity",len:1,},Rule {name:"replica_identity",len:1,},Rule {name:"replica_identity",len:3,},Rule {name:"reloptions",len:3,},Rule {name:"opt_reloptions",len:2,},Rule {name:"opt_reloptions",len:0,},Rule {name:"reloption_list",len:1,},Rule {name:"reloption_list",len:3,},Rule {name:"reloption_elem",len:3,},Rule {name:"reloption_elem",len:1,},Rule {name:"reloption_elem",len:5,},Rule {name:"reloption_elem",len:3,},Rule {name:"alter_identity_column_option_list",len:1,},Rule {name:"alter_identity_column_option_list",len:2,},Rule {name:"alter_identity_column_option",len:1,},Rule {name:"alter_identity_column_option",len:3,},Rule {name:"alter_identity_column_option",len:2,},Rule {name:"alter_identity_column_option",len:3,},Rule {name:"set_statistics_value",len:1,},Rule {name:"set_statistics_value",len:1,},Rule {name:"set_access_method_name",len:1,},Rule {name:"set_access_method_name",len:1,},Rule {name:"PartitionBoundSpec",len:6,},Rule {name:"PartitionBoundSpec",len:6,},Rule {name:"PartitionBoundSpec",len:10,},Rule {name:"PartitionBoundSpec",len:1,},Rule {name:"hash_partbound_elem",len:2,},Rule {name:"hash_partbound",len:1,},Rule {name:"hash_partbound",len:3,},Rule {name:"AlterCompositeTypeStmt",len:4,},Rule {name:"alter_type_cmds",len:1,},Rule {name:"alter_type_cmds",len:3,},Rule {name:"alter_type_cmd",len:4,},Rule {name:"alter_type_cmd",len:6,},Rule {name:"alter_type_cmd",len:4,},Rule {name:"alter_type_cmd",len:8,},Rule {name:"ClosePortalStmt",len:2,},Rule {name:"ClosePortalStmt",len:2,},Rule {name:"CopyStmt",len:11,},Rule {name:"CopyStmt",len:9,},Rule {name:"copy_from",len:1,},Rule {name:"copy_from",len:1,},Rule {name:"opt_program",len:1,},Rule {name:"opt_program",len:0,},Rule {name:"copy_file_name",len:1,},Rule {name:"copy_file_name",len:1,},Rule {name:"copy_file_name",len:1,},Rule {name:"copy_options",len:1,},Rule {name:"copy_options",len:3,},Rule {name:"copy_opt_list",len:2,},Rule {name:"copy_opt_list",len:0,},Rule {name:"copy_opt_item",len:1,},Rule {name:"copy_opt_item",len:1,},Rule {name:"copy_opt_item",len:3,},Rule {name:"copy_opt_item",len:3,},Rule {name:"copy_opt_item",len:1,},Rule {name:"copy_opt_item",len:1,},Rule {name:"copy_opt_item",len:3,},Rule {name:"copy_opt_item",len:3,},Rule {name:"copy_opt_item",len:3,},Rule {name:"copy_opt_item",len:3,},Rule {name:"copy_opt_item",len:4,},Rule {name:"copy_opt_item",len:4,},Rule {name:"copy_opt_item",len:3,},Rule {name:"copy_opt_item",len:3,},Rule {name:"copy_opt_item",len:2,},Rule {name:"opt_binary",len:1,},Rule {name:"opt_binary",len:0,},Rule {name:"copy_delimiter",len:3,},Rule {name:"copy_delimiter",len:0,},Rule {name:"opt_using",len:1,},Rule {name:"opt_using",len:0,},Rule {name:"copy_generic_opt_list",len:1,},Rule {name:"copy_generic_opt_list",len:3,},Rule {name:"copy_generic_opt_elem",len:2,},Rule {name:"copy_generic_opt_arg",len:1,},Rule {name:"copy_generic_opt_arg",len:1,},Rule {name:"copy_generic_opt_arg",len:1,},Rule {name:"copy_generic_opt_arg",len:1,},Rule {name:"copy_generic_opt_arg",len:3,},Rule {name:"copy_generic_opt_arg",len:0,},Rule {name:"copy_generic_opt_arg_list",len:1,},Rule {name:"copy_generic_opt_arg_list",len:3,},Rule {name:"copy_generic_opt_arg_list_item",len:1,},Rule {name:"CreateStmt",len:13,},Rule {name:"CreateStmt",len:16,},Rule {name:"CreateStmt",len:12,},Rule {name:"CreateStmt",len:15,},Rule {name:"CreateStmt",len:14,},Rule {name:"CreateStmt",len:17,},Rule {name:"OptTemp",len:1,},Rule {name:"OptTemp",len:1,},Rule {name:"OptTemp",len:2,},Rule {name:"OptTemp",len:2,},Rule {name:"OptTemp",len:2,},Rule {name:"OptTemp",len:2,},Rule {name:"OptTemp",len:1,},Rule {name:"OptTemp",len:0,},Rule {name:"OptTableElementList",len:1,},Rule {name:"OptTableElementList",len:0,},Rule {name:"OptTypedTableElementList",len:3,},Rule {name:"OptTypedTableElementList",len:0,},Rule {name:"TableElementList",len:1,},Rule {name:"TableElementList",len:3,},Rule {name:"TypedTableElementList",len:1,},Rule {name:"TypedTableElementList",len:3,},Rule {name:"TableElement",len:1,},Rule {name:"TableElement",len:1,},Rule {name:"TableElement",len:1,},Rule {name:"TypedTableElement",len:1,},Rule {name:"TypedTableElement",len:1,},Rule {name:"columnDef",len:6,},Rule {name:"columnOptions",len:2,},Rule {name:"columnOptions",len:4,},Rule {name:"column_compression",len:2,},Rule {name:"column_compression",len:2,},Rule {name:"opt_column_compression",len:1,},Rule {name:"opt_column_compression",len:0,},Rule {name:"column_storage",len:2,},Rule {name:"column_storage",len:2,},Rule {name:"opt_column_storage",len:1,},Rule {name:"opt_column_storage",len:0,},Rule {name:"ColQualList",len:2,},Rule {name:"ColQualList",len:0,},Rule {name:"ColConstraint",len:3,},Rule {name:"ColConstraint",len:1,},Rule {name:"ColConstraint",len:1,},Rule {name:"ColConstraint",len:2,},Rule {name:"ColConstraintElem",len:2,},Rule {name:"ColConstraintElem",len:1,},Rule {name:"ColConstraintElem",len:4,},Rule {name:"ColConstraintElem",len:4,},Rule {name:"ColConstraintElem",len:5,},Rule {name:"ColConstraintElem",len:2,},Rule {name:"ColConstraintElem",len:5,},Rule {name:"ColConstraintElem",len:7,},Rule {name:"ColConstraintElem",len:5,},Rule {name:"opt_unique_null_treatment",len:2,},Rule {name:"opt_unique_null_treatment",len:3,},Rule {name:"opt_unique_null_treatment",len:0,},Rule {name:"generated_when",len:1,},Rule {name:"generated_when",len:2,},Rule {name:"ConstraintAttr",len:1,},Rule {name:"ConstraintAttr",len:2,},Rule {name:"ConstraintAttr",len:2,},Rule {name:"ConstraintAttr",len:2,},Rule {name:"TableLikeClause",len:3,},Rule {name:"TableLikeOptionList",len:3,},Rule {name:"TableLikeOptionList",len:3,},Rule {name:"TableLikeOptionList",len:0,},Rule {name:"TableLikeOption",len:1,},Rule {name:"TableLikeOption",len:1,},Rule {name:"TableLikeOption",len:1,},Rule {name:"TableLikeOption",len:1,},Rule {name:"TableLikeOption",len:1,},Rule {name:"TableLikeOption",len:1,},Rule {name:"TableLikeOption",len:1,},Rule {name:"TableLikeOption",len:1,},Rule {name:"TableLikeOption",len:1,},Rule {name:"TableLikeOption",len:1,},Rule {name:"TableConstraint",len:3,},Rule {name:"TableConstraint",len:1,},Rule {name:"ConstraintElem",len:5,},Rule {name:"ConstraintElem",len:9,},Rule {name:"ConstraintElem",len:3,},Rule {name:"ConstraintElem",len:9,},Rule {name:"ConstraintElem",len:4,},Rule {name:"ConstraintElem",len:10,},Rule {name:"ConstraintElem",len:11,},Rule {name:"DomainConstraint",len:3,},Rule {name:"DomainConstraint",len:1,},Rule {name:"DomainConstraintElem",len:5,},Rule {name:"DomainConstraintElem",len:3,},Rule {name:"opt_no_inherit",len:2,},Rule {name:"opt_no_inherit",len:0,},Rule {name:"opt_column_list",len:3,},Rule {name:"opt_column_list",len:0,},Rule {name:"columnList",len:1,},Rule {name:"columnList",len:3,},Rule {name:"columnElem",len:1,},Rule {name:"opt_c_include",len:4,},Rule {name:"opt_c_include",len:0,},Rule {name:"key_match",len:2,},Rule {name:"key_match",len:2,},Rule {name:"key_match",len:2,},Rule {name:"key_match",len:0,},Rule {name:"ExclusionConstraintList",len:1,},Rule {name:"ExclusionConstraintList",len:3,},Rule {name:"ExclusionConstraintElem",len:3,},Rule {name:"ExclusionConstraintElem",len:6,},Rule {name:"OptWhereClause",len:4,},Rule {name:"OptWhereClause",len:0,},Rule {name:"key_actions",len:1,},Rule {name:"key_actions",len:1,},Rule {name:"key_actions",len:2,},Rule {name:"key_actions",len:2,},Rule {name:"key_actions",len:0,},Rule {name:"key_update",len:3,},Rule {name:"key_delete",len:3,},Rule {name:"key_action",len:2,},Rule {name:"key_action",len:1,},Rule {name:"key_action",len:1,},Rule {name:"key_action",len:3,},Rule {name:"key_action",len:3,},Rule {name:"OptInherit",len:4,},Rule {name:"OptInherit",len:0,},Rule {name:"OptPartitionSpec",len:1,},Rule {name:"OptPartitionSpec",len:0,},Rule {name:"PartitionSpec",len:6,},Rule {name:"part_params",len:1,},Rule {name:"part_params",len:3,},Rule {name:"part_elem",len:3,},Rule {name:"part_elem",len:3,},Rule {name:"part_elem",len:5,},Rule {name:"table_access_method_clause",len:2,},Rule {name:"table_access_method_clause",len:0,},Rule {name:"OptWith",len:2,},Rule {name:"OptWith",len:2,},Rule {name:"OptWith",len:0,},Rule {name:"OnCommitOption",len:3,},Rule {name:"OnCommitOption",len:4,},Rule {name:"OnCommitOption",len:4,},Rule {name:"OnCommitOption",len:0,},Rule {name:"OptTableSpace",len:2,},Rule {name:"OptTableSpace",len:0,},Rule {name:"OptConsTableSpace",len:4,},Rule {name:"OptConsTableSpace",len:0,},Rule {name:"ExistingIndex",len:3,},Rule {name:"CreateStatsStmt",len:8,},Rule {name:"CreateStatsStmt",len:11,},Rule {name:"stats_params",len:1,},Rule {name:"stats_params",len:3,},Rule {name:"stats_param",len:1,},Rule {name:"stats_param",len:1,},Rule {name:"stats_param",len:3,},Rule {name:"AlterStatsStmt",len:6,},Rule {name:"AlterStatsStmt",len:8,},Rule {name:"CreateAsStmt",len:7,},Rule {name:"CreateAsStmt",len:10,},Rule {name:"create_as_target",len:6,},Rule {name:"opt_with_data",len:2,},Rule {name:"opt_with_data",len:3,},Rule {name:"opt_with_data",len:0,},Rule {name:"CreateMatViewStmt",len:8,},Rule {name:"CreateMatViewStmt",len:11,},Rule {name:"create_mv_target",len:5,},Rule {name:"OptNoLog",len:1,},Rule {name:"OptNoLog",len:0,},Rule {name:"RefreshMatViewStmt",len:6,},Rule {name:"CreateSeqStmt",len:5,},Rule {name:"CreateSeqStmt",len:8,},Rule {name:"AlterSeqStmt",len:4,},Rule {name:"AlterSeqStmt",len:6,},Rule {name:"OptSeqOptList",len:1,},Rule {name:"OptSeqOptList",len:0,},Rule {name:"OptParenthesizedSeqOptList",len:3,},Rule {name:"OptParenthesizedSeqOptList",len:0,},Rule {name:"SeqOptList",len:1,},Rule {name:"SeqOptList",len:2,},Rule {name:"SeqOptElem",len:2,},Rule {name:"SeqOptElem",len:2,},Rule {name:"SeqOptElem",len:1,},Rule {name:"SeqOptElem",len:2,},Rule {name:"SeqOptElem",len:3,},Rule {name:"SeqOptElem",len:1,},Rule {name:"SeqOptElem",len:2,},Rule {name:"SeqOptElem",len:2,},Rule {name:"SeqOptElem",len:2,},Rule {name:"SeqOptElem",len:2,},Rule {name:"SeqOptElem",len:3,},Rule {name:"SeqOptElem",len:3,},Rule {name:"SeqOptElem",len:3,},Rule {name:"SeqOptElem",len:1,},Rule {name:"SeqOptElem",len:3,},Rule {name:"SeqOptElem",len:1,},Rule {name:"opt_by",len:1,},Rule {name:"opt_by",len:0,},Rule {name:"NumericOnly",len:1,},Rule {name:"NumericOnly",len:2,},Rule {name:"NumericOnly",len:2,},Rule {name:"NumericOnly",len:1,},Rule {name:"NumericOnly_list",len:1,},Rule {name:"NumericOnly_list",len:3,},Rule {name:"CreatePLangStmt",len:6,},Rule {name:"CreatePLangStmt",len:10,},Rule {name:"opt_trusted",len:1,},Rule {name:"opt_trusted",len:0,},Rule {name:"handler_name",len:1,},Rule {name:"handler_name",len:2,},Rule {name:"opt_inline_handler",len:2,},Rule {name:"opt_inline_handler",len:0,},Rule {name:"validator_clause",len:2,},Rule {name:"validator_clause",len:2,},Rule {name:"opt_validator",len:1,},Rule {name:"opt_validator",len:0,},Rule {name:"opt_procedural",len:1,},Rule {name:"opt_procedural",len:0,},Rule {name:"CreateTableSpaceStmt",len:7,},Rule {name:"OptTableSpaceOwner",len:2,},Rule {name:"OptTableSpaceOwner",len:0,},Rule {name:"DropTableSpaceStmt",len:3,},Rule {name:"DropTableSpaceStmt",len:5,},Rule {name:"CreateExtensionStmt",len:5,},Rule {name:"CreateExtensionStmt",len:8,},Rule {name:"create_extension_opt_list",len:2,},Rule {name:"create_extension_opt_list",len:0,},Rule {name:"create_extension_opt_item",len:2,},Rule {name:"create_extension_opt_item",len:2,},Rule {name:"create_extension_opt_item",len:2,},Rule {name:"create_extension_opt_item",len:1,},Rule {name:"AlterExtensionStmt",len:5,},Rule {name:"alter_extension_opt_list",len:2,},Rule {name:"alter_extension_opt_list",len:0,},Rule {name:"alter_extension_opt_item",len:2,},Rule {name:"AlterExtensionContentsStmt",len:6,},Rule {name:"AlterExtensionContentsStmt",len:6,},Rule {name:"AlterExtensionContentsStmt",len:6,},Rule {name:"AlterExtensionContentsStmt",len:10,},Rule {name:"AlterExtensionContentsStmt",len:6,},Rule {name:"AlterExtensionContentsStmt",len:6,},Rule {name:"AlterExtensionContentsStmt",len:6,},Rule {name:"AlterExtensionContentsStmt",len:9,},Rule {name:"AlterExtensionContentsStmt",len:9,},Rule {name:"AlterExtensionContentsStmt",len:6,},Rule {name:"AlterExtensionContentsStmt",len:6,},Rule {name:"AlterExtensionContentsStmt",len:9,},Rule {name:"AlterExtensionContentsStmt",len:6,},Rule {name:"CreateFdwStmt",len:7,},Rule {name:"fdw_option",len:2,},Rule {name:"fdw_option",len:2,},Rule {name:"fdw_option",len:2,},Rule {name:"fdw_option",len:2,},Rule {name:"fdw_options",len:1,},Rule {name:"fdw_options",len:2,},Rule {name:"opt_fdw_options",len:1,},Rule {name:"opt_fdw_options",len:0,},Rule {name:"AlterFdwStmt",len:7,},Rule {name:"AlterFdwStmt",len:6,},Rule {name:"create_generic_options",len:4,},Rule {name:"create_generic_options",len:0,},Rule {name:"generic_option_list",len:1,},Rule {name:"generic_option_list",len:3,},Rule {name:"alter_generic_options",len:4,},Rule {name:"alter_generic_option_list",len:1,},Rule {name:"alter_generic_option_list",len:3,},Rule {name:"alter_generic_option_elem",len:1,},Rule {name:"alter_generic_option_elem",len:2,},Rule {name:"alter_generic_option_elem",len:2,},Rule {name:"alter_generic_option_elem",len:2,},Rule {name:"generic_option_elem",len:2,},Rule {name:"generic_option_name",len:1,},Rule {name:"generic_option_arg",len:1,},Rule {name:"CreateForeignServerStmt",len:10,},Rule {name:"CreateForeignServerStmt",len:13,},Rule {name:"opt_type",len:2,},Rule {name:"opt_type",len:0,},Rule {name:"foreign_server_version",len:2,},Rule {name:"foreign_server_version",len:2,},Rule {name:"opt_foreign_server_version",len:1,},Rule {name:"opt_foreign_server_version",len:0,},Rule {name:"AlterForeignServerStmt",len:5,},Rule {name:"AlterForeignServerStmt",len:4,},Rule {name:"AlterForeignServerStmt",len:4,},Rule {name:"CreateForeignTableStmt",len:11,},Rule {name:"CreateForeignTableStmt",len:14,},Rule {name:"CreateForeignTableStmt",len:12,},Rule {name:"CreateForeignTableStmt",len:15,},Rule {name:"ImportForeignSchemaStmt",len:11,},Rule {name:"import_qualification_type",len:2,},Rule {name:"import_qualification_type",len:1,},Rule {name:"import_qualification",len:4,},Rule {name:"import_qualification",len:0,},Rule {name:"CreateUserMappingStmt",len:8,},Rule {name:"CreateUserMappingStmt",len:11,},Rule {name:"auth_ident",len:1,},Rule {name:"auth_ident",len:1,},Rule {name:"DropUserMappingStmt",len:7,},Rule {name:"DropUserMappingStmt",len:9,},Rule {name:"AlterUserMappingStmt",len:8,},Rule {name:"CreatePolicyStmt",len:10,},Rule {name:"AlterPolicyStmt",len:8,},Rule {name:"RowSecurityOptionalExpr",len:4,},Rule {name:"RowSecurityOptionalExpr",len:0,},Rule {name:"RowSecurityOptionalWithCheck",len:5,},Rule {name:"RowSecurityOptionalWithCheck",len:0,},Rule {name:"RowSecurityDefaultToRole",len:2,},Rule {name:"RowSecurityDefaultToRole",len:0,},Rule {name:"RowSecurityOptionalToRole",len:2,},Rule {name:"RowSecurityOptionalToRole",len:0,},Rule {name:"RowSecurityDefaultPermissive",len:2,},Rule {name:"RowSecurityDefaultPermissive",len:0,},Rule {name:"RowSecurityDefaultForCmd",len:2,},Rule {name:"RowSecurityDefaultForCmd",len:0,},Rule {name:"row_security_cmd",len:1,},Rule {name:"row_security_cmd",len:1,},Rule {name:"row_security_cmd",len:1,},Rule {name:"row_security_cmd",len:1,},Rule {name:"row_security_cmd",len:1,},Rule {name:"CreateAmStmt",len:8,},Rule {name:"am_type",len:1,},Rule {name:"am_type",len:1,},Rule {name:"CreateTrigStmt",len:17,},Rule {name:"CreateTrigStmt",len:21,},Rule {name:"TriggerActionTime",len:1,},Rule {name:"TriggerActionTime",len:1,},Rule {name:"TriggerActionTime",len:2,},Rule {name:"TriggerEvents",len:1,},Rule {name:"TriggerEvents",len:3,},Rule {name:"TriggerOneEvent",len:1,},Rule {name:"TriggerOneEvent",len:1,},Rule {name:"TriggerOneEvent",len:1,},Rule {name:"TriggerOneEvent",len:3,},Rule {name:"TriggerOneEvent",len:1,},Rule {name:"TriggerReferencing",len:2,},Rule {name:"TriggerReferencing",len:0,},Rule {name:"TriggerTransitions",len:1,},Rule {name:"TriggerTransitions",len:2,},Rule {name:"TriggerTransition",len:4,},Rule {name:"TransitionOldOrNew",len:1,},Rule {name:"TransitionOldOrNew",len:1,},Rule {name:"TransitionRowOrTable",len:1,},Rule {name:"TransitionRowOrTable",len:1,},Rule {name:"TransitionRelName",len:1,},Rule {name:"TriggerForSpec",len:3,},Rule {name:"TriggerForSpec",len:0,},Rule {name:"TriggerForOptEach",len:1,},Rule {name:"TriggerForOptEach",len:0,},Rule {name:"TriggerForType",len:1,},Rule {name:"TriggerForType",len:1,},Rule {name:"TriggerWhen",len:4,},Rule {name:"TriggerWhen",len:0,},Rule {name:"FUNCTION_or_PROCEDURE",len:1,},Rule {name:"FUNCTION_or_PROCEDURE",len:1,},Rule {name:"TriggerFuncArgs",len:1,},Rule {name:"TriggerFuncArgs",len:3,},Rule {name:"TriggerFuncArgs",len:0,},Rule {name:"TriggerFuncArg",len:1,},Rule {name:"TriggerFuncArg",len:1,},Rule {name:"TriggerFuncArg",len:1,},Rule {name:"TriggerFuncArg",len:1,},Rule {name:"OptConstrFromTable",len:2,},Rule {name:"OptConstrFromTable",len:0,},Rule {name:"ConstraintAttributeSpec",len:0,},Rule {name:"ConstraintAttributeSpec",len:2,},Rule {name:"ConstraintAttributeElem",len:2,},Rule {name:"ConstraintAttributeElem",len:1,},Rule {name:"ConstraintAttributeElem",len:2,},Rule {name:"ConstraintAttributeElem",len:2,},Rule {name:"ConstraintAttributeElem",len:2,},Rule {name:"ConstraintAttributeElem",len:2,},Rule {name:"CreateEventTrigStmt",len:11,},Rule {name:"CreateEventTrigStmt",len:13,},Rule {name:"event_trigger_when_list",len:1,},Rule {name:"event_trigger_when_list",len:3,},Rule {name:"event_trigger_when_item",len:5,},Rule {name:"event_trigger_value_list",len:1,},Rule {name:"event_trigger_value_list",len:3,},Rule {name:"AlterEventTrigStmt",len:5,},Rule {name:"enable_trigger",len:1,},Rule {name:"enable_trigger",len:2,},Rule {name:"enable_trigger",len:2,},Rule {name:"enable_trigger",len:1,},Rule {name:"CreateAssertionStmt",len:8,},Rule {name:"DefineStmt",len:6,},Rule {name:"DefineStmt",len:5,},Rule {name:"DefineStmt",len:4,},Rule {name:"DefineStmt",len:4,},Rule {name:"DefineStmt",len:3,},Rule {name:"DefineStmt",len:7,},Rule {name:"DefineStmt",len:8,},Rule {name:"DefineStmt",len:6,},Rule {name:"DefineStmt",len:6,},Rule {name:"DefineStmt",len:6,},Rule {name:"DefineStmt",len:6,},Rule {name:"DefineStmt",len:6,},Rule {name:"DefineStmt",len:4,},Rule {name:"DefineStmt",len:7,},Rule {name:"DefineStmt",len:5,},Rule {name:"DefineStmt",len:8,},Rule {name:"definition",len:3,},Rule {name:"def_list",len:1,},Rule {name:"def_list",len:3,},Rule {name:"def_elem",len:3,},Rule {name:"def_elem",len:1,},Rule {name:"def_arg",len:1,},Rule {name:"def_arg",len:1,},Rule {name:"def_arg",len:1,},Rule {name:"def_arg",len:1,},Rule {name:"def_arg",len:1,},Rule {name:"def_arg",len:1,},Rule {name:"old_aggr_definition",len:3,},Rule {name:"old_aggr_list",len:1,},Rule {name:"old_aggr_list",len:3,},Rule {name:"old_aggr_elem",len:3,},Rule {name:"opt_enum_val_list",len:1,},Rule {name:"opt_enum_val_list",len:0,},Rule {name:"enum_val_list",len:1,},Rule {name:"enum_val_list",len:3,},Rule {name:"AlterEnumStmt",len:7,},Rule {name:"AlterEnumStmt",len:9,},Rule {name:"AlterEnumStmt",len:9,},Rule {name:"AlterEnumStmt",len:8,},Rule {name:"AlterEnumStmt",len:6,},Rule {name:"opt_if_not_exists",len:3,},Rule {name:"opt_if_not_exists",len:0,},Rule {name:"CreateOpClassStmt",len:13,},Rule {name:"opclass_item_list",len:1,},Rule {name:"opclass_item_list",len:3,},Rule {name:"opclass_item",len:5,},Rule {name:"opclass_item",len:5,},Rule {name:"opclass_item",len:3,},Rule {name:"opclass_item",len:6,},Rule {name:"opclass_item",len:2,},Rule {name:"opt_default",len:1,},Rule {name:"opt_default",len:0,},Rule {name:"opt_opfamily",len:2,},Rule {name:"opt_opfamily",len:0,},Rule {name:"opclass_purpose",len:2,},Rule {name:"opclass_purpose",len:4,},Rule {name:"opclass_purpose",len:0,},Rule {name:"opt_recheck",len:1,},Rule {name:"opt_recheck",len:0,},Rule {name:"CreateOpFamilyStmt",len:6,},Rule {name:"AlterOpFamilyStmt",len:8,},Rule {name:"AlterOpFamilyStmt",len:8,},Rule {name:"opclass_drop_list",len:1,},Rule {name:"opclass_drop_list",len:3,},Rule {name:"opclass_drop",len:5,},Rule {name:"opclass_drop",len:5,},Rule {name:"DropOpClassStmt",len:7,},Rule {name:"DropOpClassStmt",len:9,},Rule {name:"DropOpFamilyStmt",len:7,},Rule {name:"DropOpFamilyStmt",len:9,},Rule {name:"DropOwnedStmt",len:5,},Rule {name:"ReassignOwnedStmt",len:6,},Rule {name:"DropStmt",len:6,},Rule {name:"DropStmt",len:4,},Rule {name:"DropStmt",len:6,},Rule {name:"DropStmt",len:4,},Rule {name:"DropStmt",len:6,},Rule {name:"DropStmt",len:8,},Rule {name:"DropStmt",len:4,},Rule {name:"DropStmt",len:6,},Rule {name:"DropStmt",len:4,},Rule {name:"DropStmt",len:6,},Rule {name:"DropStmt",len:5,},Rule {name:"DropStmt",len:7,},Rule {name:"object_type_any_name",len:1,},Rule {name:"object_type_any_name",len:1,},Rule {name:"object_type_any_name",len:1,},Rule {name:"object_type_any_name",len:2,},Rule {name:"object_type_any_name",len:1,},Rule {name:"object_type_any_name",len:2,},Rule {name:"object_type_any_name",len:1,},Rule {name:"object_type_any_name",len:1,},Rule {name:"object_type_any_name",len:1,},Rule {name:"object_type_any_name",len:3,},Rule {name:"object_type_any_name",len:3,},Rule {name:"object_type_any_name",len:3,},Rule {name:"object_type_any_name",len:3,},Rule {name:"object_type_name",len:1,},Rule {name:"object_type_name",len:1,},Rule {name:"object_type_name",len:1,},Rule {name:"object_type_name",len:1,},Rule {name:"object_type_name",len:1,},Rule {name:"drop_type_name",len:2,},Rule {name:"drop_type_name",len:2,},Rule {name:"drop_type_name",len:1,},Rule {name:"drop_type_name",len:3,},Rule {name:"drop_type_name",len:2,},Rule {name:"drop_type_name",len:1,},Rule {name:"drop_type_name",len:1,},Rule {name:"drop_type_name",len:1,},Rule {name:"object_type_name_on_any_name",len:1,},Rule {name:"object_type_name_on_any_name",len:1,},Rule {name:"object_type_name_on_any_name",len:1,},Rule {name:"any_name_list",len:1,},Rule {name:"any_name_list",len:3,},Rule {name:"any_name",len:1,},Rule {name:"any_name",len:2,},Rule {name:"attrs",len:2,},Rule {name:"attrs",len:3,},Rule {name:"type_name_list",len:1,},Rule {name:"type_name_list",len:3,},Rule {name:"TruncateStmt",len:5,},Rule {name:"opt_restart_seqs",len:2,},Rule {name:"opt_restart_seqs",len:2,},Rule {name:"opt_restart_seqs",len:0,},Rule {name:"CommentStmt",len:6,},Rule {name:"CommentStmt",len:6,},Rule {name:"CommentStmt",len:6,},Rule {name:"CommentStmt",len:6,},Rule {name:"CommentStmt",len:6,},Rule {name:"CommentStmt",len:6,},Rule {name:"CommentStmt",len:6,},Rule {name:"CommentStmt",len:6,},Rule {name:"CommentStmt",len:8,},Rule {name:"CommentStmt",len:9,},Rule {name:"CommentStmt",len:8,},Rule {name:"CommentStmt",len:6,},Rule {name:"CommentStmt",len:6,},Rule {name:"CommentStmt",len:9,},Rule {name:"CommentStmt",len:9,},Rule {name:"CommentStmt",len:9,},Rule {name:"CommentStmt",len:7,},Rule {name:"CommentStmt",len:10,},Rule {name:"comment_text",len:1,},Rule {name:"comment_text",len:1,},Rule {name:"SecLabelStmt",len:8,},Rule {name:"SecLabelStmt",len:8,},Rule {name:"SecLabelStmt",len:8,},Rule {name:"SecLabelStmt",len:8,},Rule {name:"SecLabelStmt",len:8,},Rule {name:"SecLabelStmt",len:8,},Rule {name:"SecLabelStmt",len:8,},Rule {name:"SecLabelStmt",len:9,},Rule {name:"SecLabelStmt",len:8,},Rule {name:"SecLabelStmt",len:8,},Rule {name:"opt_provider",len:2,},Rule {name:"opt_provider",len:0,},Rule {name:"security_label",len:1,},Rule {name:"security_label",len:1,},Rule {name:"FetchStmt",len:2,},Rule {name:"FetchStmt",len:2,},Rule {name:"fetch_args",len:1,},Rule {name:"fetch_args",len:2,},Rule {name:"fetch_args",len:3,},Rule {name:"fetch_args",len:3,},Rule {name:"fetch_args",len:3,},Rule {name:"fetch_args",len:3,},Rule {name:"fetch_args",len:4,},Rule {name:"fetch_args",len:4,},Rule {name:"fetch_args",len:3,},Rule {name:"fetch_args",len:3,},Rule {name:"fetch_args",len:3,},Rule {name:"fetch_args",len:4,},Rule {name:"fetch_args",len:4,},Rule {name:"fetch_args",len:3,},Rule {name:"fetch_args",len:4,},Rule {name:"fetch_args",len:4,},Rule {name:"from_in",len:1,},Rule {name:"from_in",len:1,},Rule {name:"opt_from_in",len:1,},Rule {name:"opt_from_in",len:0,},Rule {name:"GrantStmt",len:8,},Rule {name:"RevokeStmt",len:8,},Rule {name:"RevokeStmt",len:11,},Rule {name:"privileges",len:1,},Rule {name:"privileges",len:1,},Rule {name:"privileges",len:2,},Rule {name:"privileges",len:4,},Rule {name:"privileges",len:5,},Rule {name:"privilege_list",len:1,},Rule {name:"privilege_list",len:3,},Rule {name:"privilege",len:2,},Rule {name:"privilege",len:2,},Rule {name:"privilege",len:2,},Rule {name:"privilege",len:2,},Rule {name:"privilege",len:2,},Rule {name:"parameter_name_list",len:1,},Rule {name:"parameter_name_list",len:3,},Rule {name:"parameter_name",len:1,},Rule {name:"parameter_name",len:3,},Rule {name:"privilege_target",len:1,},Rule {name:"privilege_target",len:2,},Rule {name:"privilege_target",len:2,},Rule {name:"privilege_target",len:4,},Rule {name:"privilege_target",len:3,},Rule {name:"privilege_target",len:2,},Rule {name:"privilege_target",len:2,},Rule {name:"privilege_target",len:2,},Rule {name:"privilege_target",len:2,},Rule {name:"privilege_target",len:2,},Rule {name:"privilege_target",len:2,},Rule {name:"privilege_target",len:3,},Rule {name:"privilege_target",len:2,},Rule {name:"privilege_target",len:2,},Rule {name:"privilege_target",len:2,},Rule {name:"privilege_target",len:2,},Rule {name:"privilege_target",len:5,},Rule {name:"privilege_target",len:5,},Rule {name:"privilege_target",len:5,},Rule {name:"privilege_target",len:5,},Rule {name:"privilege_target",len:5,},Rule {name:"grantee_list",len:1,},Rule {name:"grantee_list",len:3,},Rule {name:"grantee",len:1,},Rule {name:"grantee",len:2,},Rule {name:"opt_grant_grant_option",len:3,},Rule {name:"opt_grant_grant_option",len:0,},Rule {name:"GrantRoleStmt",len:5,},Rule {name:"GrantRoleStmt",len:7,},Rule {name:"RevokeRoleStmt",len:6,},Rule {name:"RevokeRoleStmt",len:9,},Rule {name:"grant_role_opt_list",len:3,},Rule {name:"grant_role_opt_list",len:1,},Rule {name:"grant_role_opt",len:2,},Rule {name:"grant_role_opt_value",len:1,},Rule {name:"grant_role_opt_value",len:1,},Rule {name:"grant_role_opt_value",len:1,},Rule {name:"opt_granted_by",len:3,},Rule {name:"opt_granted_by",len:0,},Rule {name:"AlterDefaultPrivilegesStmt",len:5,},Rule {name:"DefACLOptionList",len:2,},Rule {name:"DefACLOptionList",len:0,},Rule {name:"DefACLOption",len:3,},Rule {name:"DefACLOption",len:3,},Rule {name:"DefACLOption",len:3,},Rule {name:"DefACLAction",len:7,},Rule {name:"DefACLAction",len:7,},Rule {name:"DefACLAction",len:10,},Rule {name:"defacl_privilege_target",len:1,},Rule {name:"defacl_privilege_target",len:1,},Rule {name:"defacl_privilege_target",len:1,},Rule {name:"defacl_privilege_target",len:1,},Rule {name:"defacl_privilege_target",len:1,},Rule {name:"defacl_privilege_target",len:1,},Rule {name:"IndexStmt",len:16,},Rule {name:"IndexStmt",len:19,},Rule {name:"opt_unique",len:1,},Rule {name:"opt_unique",len:0,},Rule {name:"access_method_clause",len:2,},Rule {name:"access_method_clause",len:0,},Rule {name:"index_params",len:1,},Rule {name:"index_params",len:3,},Rule {name:"index_elem_options",len:4,},Rule {name:"index_elem_options",len:5,},Rule {name:"index_elem",len:2,},Rule {name:"index_elem",len:2,},Rule {name:"index_elem",len:4,},Rule {name:"opt_include",len:4,},Rule {name:"opt_include",len:0,},Rule {name:"index_including_params",len:1,},Rule {name:"index_including_params",len:3,},Rule {name:"opt_collate",len:2,},Rule {name:"opt_collate",len:0,},Rule {name:"opt_asc_desc",len:1,},Rule {name:"opt_asc_desc",len:1,},Rule {name:"opt_asc_desc",len:0,},Rule {name:"opt_nulls_order",len:2,},Rule {name:"opt_nulls_order",len:2,},Rule {name:"opt_nulls_order",len:0,},Rule {name:"CreateFunctionStmt",len:9,},Rule {name:"CreateFunctionStmt",len:12,},Rule {name:"CreateFunctionStmt",len:7,},Rule {name:"CreateFunctionStmt",len:7,},Rule {name:"opt_or_replace",len:2,},Rule {name:"opt_or_replace",len:0,},Rule {name:"func_args",len:3,},Rule {name:"func_args",len:2,},Rule {name:"func_args_list",len:1,},Rule {name:"func_args_list",len:3,},Rule {name:"function_with_argtypes_list",len:1,},Rule {name:"function_with_argtypes_list",len:3,},Rule {name:"function_with_argtypes",len:2,},Rule {name:"function_with_argtypes",len:1,},Rule {name:"function_with_argtypes",len:1,},Rule {name:"function_with_argtypes",len:2,},Rule {name:"func_args_with_defaults",len:3,},Rule {name:"func_args_with_defaults",len:2,},Rule {name:"func_args_with_defaults_list",len:1,},Rule {name:"func_args_with_defaults_list",len:3,},Rule {name:"func_arg",len:3,},Rule {name:"func_arg",len:3,},Rule {name:"func_arg",len:2,},Rule {name:"func_arg",len:2,},Rule {name:"func_arg",len:1,},Rule {name:"arg_class",len:1,},Rule {name:"arg_class",len:1,},Rule {name:"arg_class",len:1,},Rule {name:"arg_class",len:2,},Rule {name:"arg_class",len:1,},Rule {name:"param_name",len:1,},Rule {name:"func_return",len:1,},Rule {name:"func_type",len:1,},Rule {name:"func_type",len:4,},Rule {name:"func_type",len:5,},Rule {name:"func_arg_with_default",len:1,},Rule {name:"func_arg_with_default",len:3,},Rule {name:"func_arg_with_default",len:3,},Rule {name:"aggr_arg",len:1,},Rule {name:"aggr_args",len:3,},Rule {name:"aggr_args",len:3,},Rule {name:"aggr_args",len:5,},Rule {name:"aggr_args",len:6,},Rule {name:"aggr_args_list",len:1,},Rule {name:"aggr_args_list",len:3,},Rule {name:"aggregate_with_argtypes",len:2,},Rule {name:"aggregate_with_argtypes_list",len:1,},Rule {name:"aggregate_with_argtypes_list",len:3,},Rule {name:"opt_createfunc_opt_list",len:1,},Rule {name:"opt_createfunc_opt_list",len:0,},Rule {name:"createfunc_opt_list",len:1,},Rule {name:"createfunc_opt_list",len:2,},Rule {name:"common_func_opt_item",len:4,},Rule {name:"common_func_opt_item",len:5,},Rule {name:"common_func_opt_item",len:1,},Rule {name:"common_func_opt_item",len:1,},Rule {name:"common_func_opt_item",len:1,},Rule {name:"common_func_opt_item",len:1,},Rule {name:"common_func_opt_item",len:3,},Rule {name:"common_func_opt_item",len:3,},Rule {name:"common_func_opt_item",len:2,},Rule {name:"common_func_opt_item",len:2,},Rule {name:"common_func_opt_item",len:1,},Rule {name:"common_func_opt_item",len:2,},Rule {name:"common_func_opt_item",len:2,},Rule {name:"common_func_opt_item",len:2,},Rule {name:"common_func_opt_item",len:2,},Rule {name:"common_func_opt_item",len:1,},Rule {name:"common_func_opt_item",len:2,},Rule {name:"createfunc_opt_item",len:2,},Rule {name:"createfunc_opt_item",len:2,},Rule {name:"createfunc_opt_item",len:2,},Rule {name:"createfunc_opt_item",len:1,},Rule {name:"createfunc_opt_item",len:1,},Rule {name:"func_as",len:1,},Rule {name:"func_as",len:3,},Rule {name:"ReturnStmt",len:2,},Rule {name:"opt_routine_body",len:1,},Rule {name:"opt_routine_body",len:4,},Rule {name:"opt_routine_body",len:0,},Rule {name:"routine_body_stmt_list",len:3,},Rule {name:"routine_body_stmt_list",len:0,},Rule {name:"routine_body_stmt",len:1,},Rule {name:"routine_body_stmt",len:1,},Rule {name:"transform_type_list",len:3,},Rule {name:"transform_type_list",len:5,},Rule {name:"opt_definition",len:2,},Rule {name:"opt_definition",len:0,},Rule {name:"table_func_column",len:2,},Rule {name:"table_func_column_list",len:1,},Rule {name:"table_func_column_list",len:3,},Rule {name:"AlterFunctionStmt",len:5,},Rule {name:"AlterFunctionStmt",len:5,},Rule {name:"AlterFunctionStmt",len:5,},Rule {name:"alterfunc_opt_list",len:1,},Rule {name:"alterfunc_opt_list",len:2,},Rule {name:"opt_restrict",len:1,},Rule {name:"opt_restrict",len:0,},Rule {name:"RemoveFuncStmt",len:4,},Rule {name:"RemoveFuncStmt",len:6,},Rule {name:"RemoveFuncStmt",len:4,},Rule {name:"RemoveFuncStmt",len:6,},Rule {name:"RemoveFuncStmt",len:4,},Rule {name:"RemoveFuncStmt",len:6,},Rule {name:"RemoveAggrStmt",len:4,},Rule {name:"RemoveAggrStmt",len:6,},Rule {name:"RemoveOperStmt",len:4,},Rule {name:"RemoveOperStmt",len:6,},Rule {name:"oper_argtypes",len:3,},Rule {name:"oper_argtypes",len:5,},Rule {name:"oper_argtypes",len:5,},Rule {name:"oper_argtypes",len:5,},Rule {name:"any_operator",len:1,},Rule {name:"any_operator",len:3,},Rule {name:"operator_with_argtypes_list",len:1,},Rule {name:"operator_with_argtypes_list",len:3,},Rule {name:"operator_with_argtypes",len:2,},Rule {name:"DoStmt",len:2,},Rule {name:"dostmt_opt_list",len:1,},Rule {name:"dostmt_opt_list",len:2,},Rule {name:"dostmt_opt_item",len:1,},Rule {name:"dostmt_opt_item",len:2,},Rule {name:"CreateCastStmt",len:11,},Rule {name:"CreateCastStmt",len:10,},Rule {name:"CreateCastStmt",len:10,},Rule {name:"cast_context",len:2,},Rule {name:"cast_context",len:2,},Rule {name:"cast_context",len:0,},Rule {name:"DropCastStmt",len:9,},Rule {name:"opt_if_exists",len:2,},Rule {name:"opt_if_exists",len:0,},Rule {name:"CreateTransformStmt",len:10,},Rule {name:"transform_element_list",len:11,},Rule {name:"transform_element_list",len:11,},Rule {name:"transform_element_list",len:5,},Rule {name:"transform_element_list",len:5,},Rule {name:"DropTransformStmt",len:8,},Rule {name:"ReindexStmt",len:5,},Rule {name:"ReindexStmt",len:5,},Rule {name:"ReindexStmt",len:5,},Rule {name:"reindex_target_relation",len:1,},Rule {name:"reindex_target_relation",len:1,},Rule {name:"reindex_target_all",len:1,},Rule {name:"reindex_target_all",len:1,},Rule {name:"opt_reindex_option_list",len:3,},Rule {name:"opt_reindex_option_list",len:0,},Rule {name:"AlterTblSpcStmt",len:5,},Rule {name:"AlterTblSpcStmt",len:5,},Rule {name:"RenameStmt",len:6,},Rule {name:"RenameStmt",len:6,},Rule {name:"RenameStmt",len:6,},Rule {name:"RenameStmt",len:6,},Rule {name:"RenameStmt",len:6,},Rule {name:"RenameStmt",len:8,},Rule {name:"RenameStmt",len:8,},Rule {name:"RenameStmt",len:6,},Rule {name:"RenameStmt",len:6,},Rule {name:"RenameStmt",len:7,},Rule {name:"RenameStmt",len:9,},Rule {name:"RenameStmt",len:9,},Rule {name:"RenameStmt",len:8,},Rule {name:"RenameStmt",len:10,},Rule {name:"RenameStmt",len:6,},Rule {name:"RenameStmt",len:6,},Rule {name:"RenameStmt",len:6,},Rule {name:"RenameStmt",len:6,},Rule {name:"RenameStmt",len:6,},Rule {name:"RenameStmt",len:6,},Rule {name:"RenameStmt",len:6,},Rule {name:"RenameStmt",len:8,},Rule {name:"RenameStmt",len:6,},Rule {name:"RenameStmt",len:8,},Rule {name:"RenameStmt",len:6,},Rule {name:"RenameStmt",len:8,},Rule {name:"RenameStmt",len:7,},Rule {name:"RenameStmt",len:9,},Rule {name:"RenameStmt",len:6,},Rule {name:"RenameStmt",len:8,},Rule {name:"RenameStmt",len:7,},Rule {name:"RenameStmt",len:9,},Rule {name:"RenameStmt",len:8,},Rule {name:"RenameStmt",len:10,},Rule {name:"RenameStmt",len:8,},Rule {name:"RenameStmt",len:10,},Rule {name:"RenameStmt",len:9,},Rule {name:"RenameStmt",len:11,},Rule {name:"RenameStmt",len:8,},Rule {name:"RenameStmt",len:10,},Rule {name:"RenameStmt",len:9,},Rule {name:"RenameStmt",len:11,},Rule {name:"RenameStmt",len:8,},Rule {name:"RenameStmt",len:8,},Rule {name:"RenameStmt",len:7,},Rule {name:"RenameStmt",len:6,},Rule {name:"RenameStmt",len:6,},Rule {name:"RenameStmt",len:6,},Rule {name:"RenameStmt",len:6,},Rule {name:"RenameStmt",len:8,},Rule {name:"RenameStmt",len:8,},Rule {name:"RenameStmt",len:8,},Rule {name:"RenameStmt",len:8,},Rule {name:"RenameStmt",len:6,},Rule {name:"RenameStmt",len:9,},Rule {name:"opt_column",len:1,},Rule {name:"opt_column",len:0,},Rule {name:"opt_set_data",len:2,},Rule {name:"opt_set_data",len:0,},Rule {name:"AlterObjectDependsStmt",len:8,},Rule {name:"AlterObjectDependsStmt",len:8,},Rule {name:"AlterObjectDependsStmt",len:8,},Rule {name:"AlterObjectDependsStmt",len:10,},Rule {name:"AlterObjectDependsStmt",len:9,},Rule {name:"AlterObjectDependsStmt",len:8,},Rule {name:"opt_no",len:1,},Rule {name:"opt_no",len:0,},Rule {name:"AlterObjectSchemaStmt",len:6,},Rule {name:"AlterObjectSchemaStmt",len:6,},Rule {name:"AlterObjectSchemaStmt",len:6,},Rule {name:"AlterObjectSchemaStmt",len:6,},Rule {name:"AlterObjectSchemaStmt",len:6,},Rule {name:"AlterObjectSchemaStmt",len:6,},Rule {name:"AlterObjectSchemaStmt",len:6,},Rule {name:"AlterObjectSchemaStmt",len:9,},Rule {name:"AlterObjectSchemaStmt",len:9,},Rule {name:"AlterObjectSchemaStmt",len:6,},Rule {name:"AlterObjectSchemaStmt",len:6,},Rule {name:"AlterObjectSchemaStmt",len:6,},Rule {name:"AlterObjectSchemaStmt",len:8,},Rule {name:"AlterObjectSchemaStmt",len:6,},Rule {name:"AlterObjectSchemaStmt",len:8,},Rule {name:"AlterObjectSchemaStmt",len:8,},Rule {name:"AlterObjectSchemaStmt",len:8,},Rule {name:"AlterObjectSchemaStmt",len:8,},Rule {name:"AlterObjectSchemaStmt",len:6,},Rule {name:"AlterObjectSchemaStmt",len:8,},Rule {name:"AlterObjectSchemaStmt",len:6,},Rule {name:"AlterObjectSchemaStmt",len:8,},Rule {name:"AlterObjectSchemaStmt",len:7,},Rule {name:"AlterObjectSchemaStmt",len:9,},Rule {name:"AlterObjectSchemaStmt",len:7,},Rule {name:"AlterObjectSchemaStmt",len:9,},Rule {name:"AlterObjectSchemaStmt",len:6,},Rule {name:"AlterOperatorStmt",len:7,},Rule {name:"operator_def_list",len:1,},Rule {name:"operator_def_list",len:3,},Rule {name:"operator_def_elem",len:3,},Rule {name:"operator_def_elem",len:3,},Rule {name:"operator_def_elem",len:1,},Rule {name:"operator_def_arg",len:1,},Rule {name:"operator_def_arg",len:1,},Rule {name:"operator_def_arg",len:1,},Rule {name:"operator_def_arg",len:1,},Rule {name:"operator_def_arg",len:1,},Rule {name:"AlterTypeStmt",len:7,},Rule {name:"AlterOwnerStmt",len:6,},Rule {name:"AlterOwnerStmt",len:6,},Rule {name:"AlterOwnerStmt",len:6,},Rule {name:"AlterOwnerStmt",len:6,},Rule {name:"AlterOwnerStmt",len:6,},Rule {name:"AlterOwnerStmt",len:6,},Rule {name:"AlterOwnerStmt",len:7,},Rule {name:"AlterOwnerStmt",len:7,},Rule {name:"AlterOwnerStmt",len:6,},Rule {name:"AlterOwnerStmt",len:9,},Rule {name:"AlterOwnerStmt",len:9,},Rule {name:"AlterOwnerStmt",len:6,},Rule {name:"AlterOwnerStmt",len:6,},Rule {name:"AlterOwnerStmt",len:6,},Rule {name:"AlterOwnerStmt",len:6,},Rule {name:"AlterOwnerStmt",len:6,},Rule {name:"AlterOwnerStmt",len:6,},Rule {name:"AlterOwnerStmt",len:8,},Rule {name:"AlterOwnerStmt",len:8,},Rule {name:"AlterOwnerStmt",len:8,},Rule {name:"AlterOwnerStmt",len:6,},Rule {name:"AlterOwnerStmt",len:7,},Rule {name:"AlterOwnerStmt",len:6,},Rule {name:"AlterOwnerStmt",len:6,},Rule {name:"CreatePublicationStmt",len:4,},Rule {name:"CreatePublicationStmt",len:7,},Rule {name:"CreatePublicationStmt",len:6,},Rule {name:"PublicationObjSpec",len:4,},Rule {name:"PublicationObjSpec",len:4,},Rule {name:"PublicationObjSpec",len:4,},Rule {name:"PublicationObjSpec",len:3,},Rule {name:"PublicationObjSpec",len:4,},Rule {name:"PublicationObjSpec",len:3,},Rule {name:"PublicationObjSpec",len:1,},Rule {name:"pub_obj_list",len:1,},Rule {name:"pub_obj_list",len:3,},Rule {name:"AlterPublicationStmt",len:5,},Rule {name:"AlterPublicationStmt",len:5,},Rule {name:"AlterPublicationStmt",len:5,},Rule {name:"AlterPublicationStmt",len:5,},Rule {name:"CreateSubscriptionStmt",len:8,},Rule {name:"AlterSubscriptionStmt",len:5,},Rule {name:"AlterSubscriptionStmt",len:5,},Rule {name:"AlterSubscriptionStmt",len:6,},Rule {name:"AlterSubscriptionStmt",len:7,},Rule {name:"AlterSubscriptionStmt",len:7,},Rule {name:"AlterSubscriptionStmt",len:7,},Rule {name:"AlterSubscriptionStmt",len:4,},Rule {name:"AlterSubscriptionStmt",len:4,},Rule {name:"AlterSubscriptionStmt",len:5,},Rule {name:"DropSubscriptionStmt",len:4,},Rule {name:"DropSubscriptionStmt",len:6,},Rule {name:"RuleStmt",len:13,},Rule {name:"RuleActionList",len:1,},Rule {name:"RuleActionList",len:1,},Rule {name:"RuleActionList",len:3,},Rule {name:"RuleActionMulti",len:3,},Rule {name:"RuleActionMulti",len:1,},Rule {name:"RuleActionStmt",len:1,},Rule {name:"RuleActionStmt",len:1,},Rule {name:"RuleActionStmt",len:1,},Rule {name:"RuleActionStmt",len:1,},Rule {name:"RuleActionStmt",len:1,},Rule {name:"RuleActionStmtOrEmpty",len:1,},Rule {name:"RuleActionStmtOrEmpty",len:0,},Rule {name:"event",len:1,},Rule {name:"event",len:1,},Rule {name:"event",len:1,},Rule {name:"event",len:1,},Rule {name:"opt_instead",len:1,},Rule {name:"opt_instead",len:1,},Rule {name:"opt_instead",len:0,},Rule {name:"NotifyStmt",len:3,},Rule {name:"notify_payload",len:2,},Rule {name:"notify_payload",len:0,},Rule {name:"ListenStmt",len:2,},Rule {name:"UnlistenStmt",len:2,},Rule {name:"UnlistenStmt",len:2,},Rule {name:"TransactionStmt",len:3,},Rule {name:"TransactionStmt",len:3,},Rule {name:"TransactionStmt",len:3,},Rule {name:"TransactionStmt",len:3,},Rule {name:"TransactionStmt",len:2,},Rule {name:"TransactionStmt",len:3,},Rule {name:"TransactionStmt",len:2,},Rule {name:"TransactionStmt",len:5,},Rule {name:"TransactionStmt",len:4,},Rule {name:"TransactionStmt",len:3,},Rule {name:"TransactionStmt",len:3,},Rule {name:"TransactionStmt",len:3,},Rule {name:"TransactionStmtLegacy",len:3,},Rule {name:"TransactionStmtLegacy",len:3,},Rule {name:"opt_transaction",len:1,},Rule {name:"opt_transaction",len:1,},Rule {name:"opt_transaction",len:0,},Rule {name:"transaction_mode_item",len:3,},Rule {name:"transaction_mode_item",len:2,},Rule {name:"transaction_mode_item",len:2,},Rule {name:"transaction_mode_item",len:1,},Rule {name:"transaction_mode_item",len:2,},Rule {name:"transaction_mode_list",len:1,},Rule {name:"transaction_mode_list",len:3,},Rule {name:"transaction_mode_list",len:2,},Rule {name:"transaction_mode_list_or_empty",len:1,},Rule {name:"transaction_mode_list_or_empty",len:0,},Rule {name:"opt_transaction_chain",len:2,},Rule {name:"opt_transaction_chain",len:3,},Rule {name:"opt_transaction_chain",len:0,},Rule {name:"ViewStmt",len:9,},Rule {name:"ViewStmt",len:11,},Rule {name:"ViewStmt",len:12,},Rule {name:"ViewStmt",len:14,},Rule {name:"opt_check_option",len:3,},Rule {name:"opt_check_option",len:4,},Rule {name:"opt_check_option",len:4,},Rule {name:"opt_check_option",len:0,},Rule {name:"LoadStmt",len:2,},Rule {name:"CreatedbStmt",len:5,},Rule {name:"createdb_opt_list",len:1,},Rule {name:"createdb_opt_list",len:0,},Rule {name:"createdb_opt_items",len:1,},Rule {name:"createdb_opt_items",len:2,},Rule {name:"createdb_opt_item",len:3,},Rule {name:"createdb_opt_item",len:3,},Rule {name:"createdb_opt_item",len:3,},Rule {name:"createdb_opt_name",len:1,},Rule {name:"createdb_opt_name",len:2,},Rule {name:"createdb_opt_name",len:1,},Rule {name:"createdb_opt_name",len:1,},Rule {name:"createdb_opt_name",len:1,},Rule {name:"createdb_opt_name",len:1,},Rule {name:"createdb_opt_name",len:1,},Rule {name:"opt_equal",len:1,},Rule {name:"opt_equal",len:0,},Rule {name:"AlterDatabaseStmt",len:5,},Rule {name:"AlterDatabaseStmt",len:4,},Rule {name:"AlterDatabaseStmt",len:6,},Rule {name:"AlterDatabaseStmt",len:6,},Rule {name:"AlterDatabaseSetStmt",len:4,},Rule {name:"DropdbStmt",len:3,},Rule {name:"DropdbStmt",len:5,},Rule {name:"DropdbStmt",len:7,},Rule {name:"DropdbStmt",len:9,},Rule {name:"drop_option_list",len:1,},Rule {name:"drop_option_list",len:3,},Rule {name:"drop_option",len:1,},Rule {name:"AlterCollationStmt",len:5,},Rule {name:"AlterSystemStmt",len:4,},Rule {name:"AlterSystemStmt",len:4,},Rule {name:"CreateDomainStmt",len:6,},Rule {name:"AlterDomainStmt",len:4,},Rule {name:"AlterDomainStmt",len:6,},Rule {name:"AlterDomainStmt",len:6,},Rule {name:"AlterDomainStmt",len:5,},Rule {name:"AlterDomainStmt",len:7,},Rule {name:"AlterDomainStmt",len:9,},Rule {name:"AlterDomainStmt",len:6,},Rule {name:"opt_as",len:1,},Rule {name:"opt_as",len:0,},Rule {name:"AlterTSDictionaryStmt",len:6,},Rule {name:"AlterTSConfigurationStmt",len:11,},Rule {name:"AlterTSConfigurationStmt",len:11,},Rule {name:"AlterTSConfigurationStmt",len:11,},Rule {name:"AlterTSConfigurationStmt",len:13,},Rule {name:"AlterTSConfigurationStmt",len:9,},Rule {name:"AlterTSConfigurationStmt",len:11,},Rule {name:"any_with",len:1,},Rule {name:"any_with",len:1,},Rule {name:"CreateConversionStmt",len:10,},Rule {name:"ClusterStmt",len:6,},Rule {name:"ClusterStmt",len:4,},Rule {name:"ClusterStmt",len:4,},Rule {name:"ClusterStmt",len:2,},Rule {name:"ClusterStmt",len:5,},Rule {name:"cluster_index_specification",len:2,},Rule {name:"cluster_index_specification",len:0,},Rule {name:"VacuumStmt",len:6,},Rule {name:"VacuumStmt",len:5,},Rule {name:"AnalyzeStmt",len:3,},Rule {name:"AnalyzeStmt",len:5,},Rule {name:"utility_option_list",len:1,},Rule {name:"utility_option_list",len:3,},Rule {name:"analyze_keyword",len:1,},Rule {name:"analyze_keyword",len:1,},Rule {name:"utility_option_elem",len:2,},Rule {name:"utility_option_name",len:1,},Rule {name:"utility_option_name",len:1,},Rule {name:"utility_option_name",len:1,},Rule {name:"utility_option_arg",len:1,},Rule {name:"utility_option_arg",len:1,},Rule {name:"utility_option_arg",len:0,},Rule {name:"opt_analyze",len:1,},Rule {name:"opt_analyze",len:0,},Rule {name:"opt_verbose",len:1,},Rule {name:"opt_verbose",len:0,},Rule {name:"opt_full",len:1,},Rule {name:"opt_full",len:0,},Rule {name:"opt_freeze",len:1,},Rule {name:"opt_freeze",len:0,},Rule {name:"opt_name_list",len:3,},Rule {name:"opt_name_list",len:0,},Rule {name:"vacuum_relation",len:2,},Rule {name:"vacuum_relation_list",len:1,},Rule {name:"vacuum_relation_list",len:3,},Rule {name:"opt_vacuum_relation_list",len:1,},Rule {name:"opt_vacuum_relation_list",len:0,},Rule {name:"ExplainStmt",len:2,},Rule {name:"ExplainStmt",len:4,},Rule {name:"ExplainStmt",len:3,},Rule {name:"ExplainStmt",len:5,},Rule {name:"ExplainableStmt",len:1,},Rule {name:"ExplainableStmt",len:1,},Rule {name:"ExplainableStmt",len:1,},Rule {name:"ExplainableStmt",len:1,},Rule {name:"ExplainableStmt",len:1,},Rule {name:"ExplainableStmt",len:1,},Rule {name:"ExplainableStmt",len:1,},Rule {name:"ExplainableStmt",len:1,},Rule {name:"ExplainableStmt",len:1,},Rule {name:"ExplainableStmt",len:1,},Rule {name:"PrepareStmt",len:5,},Rule {name:"prep_type_clause",len:3,},Rule {name:"prep_type_clause",len:0,},Rule {name:"PreparableStmt",len:1,},Rule {name:"PreparableStmt",len:1,},Rule {name:"PreparableStmt",len:1,},Rule {name:"PreparableStmt",len:1,},Rule {name:"PreparableStmt",len:1,},Rule {name:"ExecuteStmt",len:3,},Rule {name:"ExecuteStmt",len:9,},Rule {name:"ExecuteStmt",len:12,},Rule {name:"execute_param_clause",len:3,},Rule {name:"execute_param_clause",len:0,},Rule {name:"DeallocateStmt",len:2,},Rule {name:"DeallocateStmt",len:3,},Rule {name:"DeallocateStmt",len:2,},Rule {name:"DeallocateStmt",len:3,},Rule {name:"InsertStmt",len:7,},Rule {name:"insert_target",len:1,},Rule {name:"insert_target",len:3,},Rule {name:"insert_rest",len:1,},Rule {name:"insert_rest",len:4,},Rule {name:"insert_rest",len:4,},Rule {name:"insert_rest",len:7,},Rule {name:"insert_rest",len:2,},Rule {name:"override_kind",len:1,},Rule {name:"override_kind",len:1,},Rule {name:"insert_column_list",len:1,},Rule {name:"insert_column_list",len:3,},Rule {name:"insert_column_item",len:2,},Rule {name:"opt_on_conflict",len:8,},Rule {name:"opt_on_conflict",len:5,},Rule {name:"opt_on_conflict",len:0,},Rule {name:"opt_conf_expr",len:4,},Rule {name:"opt_conf_expr",len:3,},Rule {name:"opt_conf_expr",len:0,},Rule {name:"returning_clause",len:2,},Rule {name:"returning_clause",len:0,},Rule {name:"DeleteStmt",len:7,},Rule {name:"using_clause",len:2,},Rule {name:"using_clause",len:0,},Rule {name:"LockStmt",len:5,},Rule {name:"opt_lock",len:3,},Rule {name:"opt_lock",len:0,},Rule {name:"lock_type",len:2,},Rule {name:"lock_type",len:2,},Rule {name:"lock_type",len:2,},Rule {name:"lock_type",len:3,},Rule {name:"lock_type",len:1,},Rule {name:"lock_type",len:3,},Rule {name:"lock_type",len:1,},Rule {name:"lock_type",len:2,},Rule {name:"opt_nowait",len:1,},Rule {name:"opt_nowait",len:0,},Rule {name:"opt_nowait_or_skip",len:1,},Rule {name:"opt_nowait_or_skip",len:2,},Rule {name:"opt_nowait_or_skip",len:0,},Rule {name:"UpdateStmt",len:8,},Rule {name:"set_clause_list",len:1,},Rule {name:"set_clause_list",len:3,},Rule {name:"set_clause",len:3,},Rule {name:"set_clause",len:5,},Rule {name:"set_target",len:2,},Rule {name:"set_target_list",len:1,},Rule {name:"set_target_list",len:3,},Rule {name:"MergeStmt",len:10,},Rule {name:"merge_when_list",len:1,},Rule {name:"merge_when_list",len:2,},Rule {name:"merge_when_clause",len:4,},Rule {name:"merge_when_clause",len:4,},Rule {name:"merge_when_clause",len:4,},Rule {name:"merge_when_clause",len:5,},Rule {name:"merge_when_clause",len:5,},Rule {name:"merge_when_tgt_matched",len:2,},Rule {name:"merge_when_tgt_matched",len:5,},Rule {name:"merge_when_tgt_not_matched",len:3,},Rule {name:"merge_when_tgt_not_matched",len:5,},Rule {name:"opt_merge_when_condition",len:2,},Rule {name:"opt_merge_when_condition",len:0,},Rule {name:"merge_update",len:3,},Rule {name:"merge_delete",len:1,},Rule {name:"merge_insert",len:2,},Rule {name:"merge_insert",len:5,},Rule {name:"merge_insert",len:5,},Rule {name:"merge_insert",len:8,},Rule {name:"merge_insert",len:3,},Rule {name:"merge_values_clause",len:4,},Rule {name:"DeclareCursorStmt",len:7,},Rule {name:"cursor_name",len:1,},Rule {name:"cursor_options",len:0,},Rule {name:"cursor_options",len:3,},Rule {name:"cursor_options",len:2,},Rule {name:"cursor_options",len:2,},Rule {name:"cursor_options",len:2,},Rule {name:"cursor_options",len:2,},Rule {name:"opt_hold",len:0,},Rule {name:"opt_hold",len:2,},Rule {name:"opt_hold",len:2,},Rule {name:"SelectStmt",len:1,},Rule {name:"SelectStmt",len:1,},Rule {name:"select_with_parens",len:3,},Rule {name:"select_with_parens",len:3,},Rule {name:"select_no_parens",len:1,},Rule {name:"select_no_parens",len:2,},Rule {name:"select_no_parens",len:4,},Rule {name:"select_no_parens",len:4,},Rule {name:"select_no_parens",len:2,},Rule {name:"select_no_parens",len:3,},Rule {name:"select_no_parens",len:5,},Rule {name:"select_no_parens",len:5,},Rule {name:"select_clause",len:1,},Rule {name:"select_clause",len:1,},Rule {name:"simple_select",len:9,},Rule {name:"simple_select",len:9,},Rule {name:"simple_select",len:1,},Rule {name:"simple_select",len:2,},Rule {name:"simple_select",len:4,},Rule {name:"simple_select",len:4,},Rule {name:"simple_select",len:4,},Rule {name:"with_clause",len:2,},Rule {name:"with_clause",len:2,},Rule {name:"with_clause",len:3,},Rule {name:"cte_list",len:1,},Rule {name:"cte_list",len:3,},Rule {name:"common_table_expr",len:9,},Rule {name:"opt_materialized",len:1,},Rule {name:"opt_materialized",len:2,},Rule {name:"opt_materialized",len:0,},Rule {name:"opt_search_clause",len:7,},Rule {name:"opt_search_clause",len:7,},Rule {name:"opt_search_clause",len:0,},Rule {name:"opt_cycle_clause",len:10,},Rule {name:"opt_cycle_clause",len:6,},Rule {name:"opt_cycle_clause",len:0,},Rule {name:"opt_with_clause",len:1,},Rule {name:"opt_with_clause",len:0,},Rule {name:"into_clause",len:2,},Rule {name:"into_clause",len:0,},Rule {name:"OptTempTableName",len:3,},Rule {name:"OptTempTableName",len:3,},Rule {name:"OptTempTableName",len:4,},Rule {name:"OptTempTableName",len:4,},Rule {name:"OptTempTableName",len:4,},Rule {name:"OptTempTableName",len:4,},Rule {name:"OptTempTableName",len:3,},Rule {name:"OptTempTableName",len:2,},Rule {name:"OptTempTableName",len:1,},Rule {name:"opt_table",len:1,},Rule {name:"opt_table",len:0,},Rule {name:"set_quantifier",len:1,},Rule {name:"set_quantifier",len:1,},Rule {name:"set_quantifier",len:0,},Rule {name:"distinct_clause",len:1,},Rule {name:"distinct_clause",len:5,},Rule {name:"opt_all_clause",len:1,},Rule {name:"opt_all_clause",len:0,},Rule {name:"opt_distinct_clause",len:1,},Rule {name:"opt_distinct_clause",len:1,},Rule {name:"opt_sort_clause",len:1,},Rule {name:"opt_sort_clause",len:0,},Rule {name:"sort_clause",len:3,},Rule {name:"sortby_list",len:1,},Rule {name:"sortby_list",len:3,},Rule {name:"sortby",len:4,},Rule {name:"sortby",len:3,},Rule {name:"select_limit",len:2,},Rule {name:"select_limit",len:2,},Rule {name:"select_limit",len:1,},Rule {name:"select_limit",len:1,},Rule {name:"opt_select_limit",len:1,},Rule {name:"opt_select_limit",len:0,},Rule {name:"limit_clause",len:2,},Rule {name:"limit_clause",len:4,},Rule {name:"limit_clause",len:5,},Rule {name:"limit_clause",len:6,},Rule {name:"limit_clause",len:4,},Rule {name:"limit_clause",len:5,},Rule {name:"offset_clause",len:2,},Rule {name:"offset_clause",len:3,},Rule {name:"select_limit_value",len:1,},Rule {name:"select_limit_value",len:1,},Rule {name:"select_offset_value",len:1,},Rule {name:"select_fetch_first_value",len:1,},Rule {name:"select_fetch_first_value",len:2,},Rule {name:"select_fetch_first_value",len:2,},Rule {name:"I_or_F_const",len:1,},Rule {name:"I_or_F_const",len:1,},Rule {name:"row_or_rows",len:1,},Rule {name:"row_or_rows",len:1,},Rule {name:"first_or_next",len:1,},Rule {name:"first_or_next",len:1,},Rule {name:"group_clause",len:4,},Rule {name:"group_clause",len:0,},Rule {name:"group_by_list",len:1,},Rule {name:"group_by_list",len:3,},Rule {name:"group_by_item",len:1,},Rule {name:"group_by_item",len:1,},Rule {name:"group_by_item",len:1,},Rule {name:"group_by_item",len:1,},Rule {name:"group_by_item",len:1,},Rule {name:"empty_grouping_set",len:2,},Rule {name:"rollup_clause",len:4,},Rule {name:"cube_clause",len:4,},Rule {name:"grouping_sets_clause",len:5,},Rule {name:"having_clause",len:2,},Rule {name:"having_clause",len:0,},Rule {name:"for_locking_clause",len:1,},Rule {name:"for_locking_clause",len:3,},Rule {name:"opt_for_locking_clause",len:1,},Rule {name:"opt_for_locking_clause",len:0,},Rule {name:"for_locking_items",len:1,},Rule {name:"for_locking_items",len:2,},Rule {name:"for_locking_item",len:3,},Rule {name:"for_locking_strength",len:2,},Rule {name:"for_locking_strength",len:4,},Rule {name:"for_locking_strength",len:2,},Rule {name:"for_locking_strength",len:3,},Rule {name:"locked_rels_list",len:2,},Rule {name:"locked_rels_list",len:0,},Rule {name:"values_clause",len:4,},Rule {name:"values_clause",len:5,},Rule {name:"from_clause",len:2,},Rule {name:"from_clause",len:0,},Rule {name:"from_list",len:1,},Rule {name:"from_list",len:3,},Rule {name:"table_ref",len:2,},Rule {name:"table_ref",len:3,},Rule {name:"table_ref",len:2,},Rule {name:"table_ref",len:3,},Rule {name:"table_ref",len:2,},Rule {name:"table_ref",len:3,},Rule {name:"table_ref",len:2,},Rule {name:"table_ref",len:3,},Rule {name:"table_ref",len:1,},Rule {name:"table_ref",len:4,},Rule {name:"table_ref",len:2,},Rule {name:"table_ref",len:3,},Rule {name:"joined_table",len:3,},Rule {name:"joined_table",len:4,},Rule {name:"joined_table",len:5,},Rule {name:"joined_table",len:4,},Rule {name:"joined_table",len:5,},Rule {name:"joined_table",len:4,},Rule {name:"alias_clause",len:5,},Rule {name:"alias_clause",len:2,},Rule {name:"alias_clause",len:4,},Rule {name:"alias_clause",len:1,},Rule {name:"opt_alias_clause",len:1,},Rule {name:"opt_alias_clause",len:0,},Rule {name:"opt_alias_clause_for_join_using",len:2,},Rule {name:"opt_alias_clause_for_join_using",len:0,},Rule {name:"func_alias_clause",len:1,},Rule {name:"func_alias_clause",len:4,},Rule {name:"func_alias_clause",len:5,},Rule {name:"func_alias_clause",len:4,},Rule {name:"func_alias_clause",len:0,},Rule {name:"join_type",len:2,},Rule {name:"join_type",len:2,},Rule {name:"join_type",len:2,},Rule {name:"join_type",len:1,},Rule {name:"opt_outer",len:1,},Rule {name:"opt_outer",len:0,},Rule {name:"join_qual",len:5,},Rule {name:"join_qual",len:2,},Rule {name:"relation_expr",len:1,},Rule {name:"relation_expr",len:1,},Rule {name:"extended_relation_expr",len:2,},Rule {name:"extended_relation_expr",len:2,},Rule {name:"extended_relation_expr",len:4,},Rule {name:"relation_expr_list",len:1,},Rule {name:"relation_expr_list",len:3,},Rule {name:"relation_expr_opt_alias",len:1,},Rule {name:"relation_expr_opt_alias",len:2,},Rule {name:"relation_expr_opt_alias",len:3,},Rule {name:"tablesample_clause",len:6,},Rule {name:"opt_repeatable_clause",len:4,},Rule {name:"opt_repeatable_clause",len:0,},Rule {name:"func_table",len:2,},Rule {name:"func_table",len:6,},Rule {name:"rowsfrom_item",len:2,},Rule {name:"rowsfrom_list",len:1,},Rule {name:"rowsfrom_list",len:3,},Rule {name:"opt_col_def_list",len:4,},Rule {name:"opt_col_def_list",len:0,},Rule {name:"opt_ordinality",len:2,},Rule {name:"opt_ordinality",len:0,},Rule {name:"where_clause",len:2,},Rule {name:"where_clause",len:0,},Rule {name:"where_or_current_clause",len:2,},Rule {name:"where_or_current_clause",len:4,},Rule {name:"where_or_current_clause",len:0,},Rule {name:"OptTableFuncElementList",len:1,},Rule {name:"OptTableFuncElementList",len:0,},Rule {name:"TableFuncElementList",len:1,},Rule {name:"TableFuncElementList",len:3,},Rule {name:"TableFuncElement",len:3,},Rule {name:"xmltable",len:7,},Rule {name:"xmltable",len:12,},Rule {name:"xmltable_column_list",len:1,},Rule {name:"xmltable_column_list",len:3,},Rule {name:"xmltable_column_el",len:2,},Rule {name:"xmltable_column_el",len:3,},Rule {name:"xmltable_column_el",len:3,},Rule {name:"xmltable_column_option_list",len:1,},Rule {name:"xmltable_column_option_list",len:2,},Rule {name:"xmltable_column_option_el",len:2,},Rule {name:"xmltable_column_option_el",len:2,},Rule {name:"xmltable_column_option_el",len:2,},Rule {name:"xmltable_column_option_el",len:1,},Rule {name:"xmltable_column_option_el",len:2,},Rule {name:"xml_namespace_list",len:1,},Rule {name:"xml_namespace_list",len:3,},Rule {name:"xml_namespace_el",len:3,},Rule {name:"xml_namespace_el",len:2,},Rule {name:"json_table",len:13,},Rule {name:"json_table_path_name_opt",len:2,},Rule {name:"json_table_path_name_opt",len:0,},Rule {name:"json_table_column_definition_list",len:1,},Rule {name:"json_table_column_definition_list",len:3,},Rule {name:"json_table_column_definition",len:3,},Rule {name:"json_table_column_definition",len:6,},Rule {name:"json_table_column_definition",len:7,},Rule {name:"json_table_column_definition",len:5,},Rule {name:"json_table_column_definition",len:7,},Rule {name:"json_table_column_definition",len:9,},Rule {name:"path_opt",len:1,},Rule {name:"path_opt",len:0,},Rule {name:"json_table_column_path_clause_opt",len:2,},Rule {name:"json_table_column_path_clause_opt",len:0,},Rule {name:"Typename",len:2,},Rule {name:"Typename",len:3,},Rule {name:"Typename",len:5,},Rule {name:"Typename",len:6,},Rule {name:"Typename",len:2,},Rule {name:"Typename",len:3,},Rule {name:"opt_array_bounds",len:3,},Rule {name:"opt_array_bounds",len:4,},Rule {name:"opt_array_bounds",len:0,},Rule {name:"SimpleTypename",len:1,},Rule {name:"SimpleTypename",len:1,},Rule {name:"SimpleTypename",len:1,},Rule {name:"SimpleTypename",len:1,},Rule {name:"SimpleTypename",len:1,},Rule {name:"SimpleTypename",len:2,},Rule {name:"SimpleTypename",len:4,},Rule {name:"SimpleTypename",len:1,},Rule {name:"ConstTypename",len:1,},Rule {name:"ConstTypename",len:1,},Rule {name:"ConstTypename",len:1,},Rule {name:"ConstTypename",len:1,},Rule {name:"ConstTypename",len:1,},Rule {name:"GenericType",len:2,},Rule {name:"GenericType",len:3,},Rule {name:"opt_type_modifiers",len:3,},Rule {name:"opt_type_modifiers",len:0,},Rule {name:"Numeric",len:1,},Rule {name:"Numeric",len:1,},Rule {name:"Numeric",len:1,},Rule {name:"Numeric",len:1,},Rule {name:"Numeric",len:1,},Rule {name:"Numeric",len:2,},Rule {name:"Numeric",len:2,},Rule {name:"Numeric",len:2,},Rule {name:"Numeric",len:2,},Rule {name:"Numeric",len:2,},Rule {name:"Numeric",len:1,},Rule {name:"opt_float",len:3,},Rule {name:"opt_float",len:0,},Rule {name:"Bit",len:1,},Rule {name:"Bit",len:1,},Rule {name:"ConstBit",len:1,},Rule {name:"ConstBit",len:1,},Rule {name:"BitWithLength",len:5,},Rule {name:"BitWithoutLength",len:2,},Rule {name:"Character",len:1,},Rule {name:"Character",len:1,},Rule {name:"ConstCharacter",len:1,},Rule {name:"ConstCharacter",len:1,},Rule {name:"CharacterWithLength",len:4,},Rule {name:"CharacterWithoutLength",len:1,},Rule {name:"character",len:2,},Rule {name:"character",len:2,},Rule {name:"character",len:1,},Rule {name:"character",len:3,},Rule {name:"character",len:3,},Rule {name:"character",len:2,},Rule {name:"opt_varying",len:1,},Rule {name:"opt_varying",len:0,},Rule {name:"ConstDatetime",len:5,},Rule {name:"ConstDatetime",len:2,},Rule {name:"ConstDatetime",len:5,},Rule {name:"ConstDatetime",len:2,},Rule {name:"ConstInterval",len:1,},Rule {name:"opt_timezone",len:3,},Rule {name:"opt_timezone",len:3,},Rule {name:"opt_timezone",len:0,},Rule {name:"opt_interval",len:1,},Rule {name:"opt_interval",len:1,},Rule {name:"opt_interval",len:1,},Rule {name:"opt_interval",len:1,},Rule {name:"opt_interval",len:1,},Rule {name:"opt_interval",len:1,},Rule {name:"opt_interval",len:3,},Rule {name:"opt_interval",len:3,},Rule {name:"opt_interval",len:3,},Rule {name:"opt_interval",len:3,},Rule {name:"opt_interval",len:3,},Rule {name:"opt_interval",len:3,},Rule {name:"opt_interval",len:3,},Rule {name:"opt_interval",len:0,},Rule {name:"interval_second",len:1,},Rule {name:"interval_second",len:4,},Rule {name:"JsonType",len:1,},Rule {name:"a_expr",len:1,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:5,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:2,},Rule {name:"a_expr",len:2,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:2,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:2,},Rule {name:"a_expr",len:2,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:5,},Rule {name:"a_expr",len:4,},Rule {name:"a_expr",len:6,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:5,},Rule {name:"a_expr",len:4,},Rule {name:"a_expr",len:6,},Rule {name:"a_expr",len:4,},Rule {name:"a_expr",len:6,},Rule {name:"a_expr",len:5,},Rule {name:"a_expr",len:7,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:2,},Rule {name:"a_expr",len:4,},Rule {name:"a_expr",len:2,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:4,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:4,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:4,},Rule {name:"a_expr",len:5,},Rule {name:"a_expr",len:6,},Rule {name:"a_expr",len:6,},Rule {name:"a_expr",len:7,},Rule {name:"a_expr",len:6,},Rule {name:"a_expr",len:7,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:4,},Rule {name:"a_expr",len:4,},Rule {name:"a_expr",len:6,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:4,},Rule {name:"a_expr",len:3,},Rule {name:"a_expr",len:4,},Rule {name:"a_expr",len:4,},Rule {name:"a_expr",len:5,},Rule {name:"a_expr",len:4,},Rule {name:"a_expr",len:5,},Rule {name:"a_expr",len:1,},Rule {name:"b_expr",len:1,},Rule {name:"b_expr",len:3,},Rule {name:"b_expr",len:2,},Rule {name:"b_expr",len:2,},Rule {name:"b_expr",len:3,},Rule {name:"b_expr",len:3,},Rule {name:"b_expr",len:3,},Rule {name:"b_expr",len:3,},Rule {name:"b_expr",len:3,},Rule {name:"b_expr",len:3,},Rule {name:"b_expr",len:3,},Rule {name:"b_expr",len:3,},Rule {name:"b_expr",len:3,},Rule {name:"b_expr",len:3,},Rule {name:"b_expr",len:3,},Rule {name:"b_expr",len:3,},Rule {name:"b_expr",len:3,},Rule {name:"b_expr",len:2,},Rule {name:"b_expr",len:5,},Rule {name:"b_expr",len:6,},Rule {name:"b_expr",len:3,},Rule {name:"b_expr",len:4,},Rule {name:"c_expr",len:1,},Rule {name:"c_expr",len:1,},Rule {name:"c_expr",len:2,},Rule {name:"c_expr",len:4,},Rule {name:"c_expr",len:1,},Rule {name:"c_expr",len:1,},Rule {name:"c_expr",len:1,},Rule {name:"c_expr",len:2,},Rule {name:"c_expr",len:2,},Rule {name:"c_expr",len:2,},Rule {name:"c_expr",len:2,},Rule {name:"c_expr",len:1,},Rule {name:"c_expr",len:1,},Rule {name:"c_expr",len:4,},Rule {name:"func_application",len:3,},Rule {name:"func_application",len:5,},Rule {name:"func_application",len:6,},Rule {name:"func_application",len:8,},Rule {name:"func_application",len:6,},Rule {name:"func_application",len:6,},Rule {name:"func_application",len:4,},Rule {name:"func_expr",len:4,},Rule {name:"func_expr",len:3,},Rule {name:"func_expr",len:1,},Rule {name:"func_expr_windowless",len:1,},Rule {name:"func_expr_windowless",len:1,},Rule {name:"func_expr_windowless",len:1,},Rule {name:"func_expr_common_subexpr",len:5,},Rule {name:"func_expr_common_subexpr",len:1,},Rule {name:"func_expr_common_subexpr",len:1,},Rule {name:"func_expr_common_subexpr",len:4,},Rule {name:"func_expr_common_subexpr",len:1,},Rule {name:"func_expr_common_subexpr",len:4,},Rule {name:"func_expr_common_subexpr",len:1,},Rule {name:"func_expr_common_subexpr",len:4,},Rule {name:"func_expr_common_subexpr",len:1,},Rule {name:"func_expr_common_subexpr",len:4,},Rule {name:"func_expr_common_subexpr",len:1,},Rule {name:"func_expr_common_subexpr",len:1,},Rule {name:"func_expr_common_subexpr",len:1,},Rule {name:"func_expr_common_subexpr",len:1,},Rule {name:"func_expr_common_subexpr",len:1,},Rule {name:"func_expr_common_subexpr",len:1,},Rule {name:"func_expr_common_subexpr",len:1,},Rule {name:"func_expr_common_subexpr",len:6,},Rule {name:"func_expr_common_subexpr",len:4,},Rule {name:"func_expr_common_subexpr",len:4,},Rule {name:"func_expr_common_subexpr",len:6,},Rule {name:"func_expr_common_subexpr",len:4,},Rule {name:"func_expr_common_subexpr",len:4,},Rule {name:"func_expr_common_subexpr",len:4,},Rule {name:"func_expr_common_subexpr",len:4,},Rule {name:"func_expr_common_subexpr",len:4,},Rule {name:"func_expr_common_subexpr",len:6,},Rule {name:"func_expr_common_subexpr",len:5,},Rule {name:"func_expr_common_subexpr",len:5,},Rule {name:"func_expr_common_subexpr",len:5,},Rule {name:"func_expr_common_subexpr",len:4,},Rule {name:"func_expr_common_subexpr",len:6,},Rule {name:"func_expr_common_subexpr",len:4,},Rule {name:"func_expr_common_subexpr",len:4,},Rule {name:"func_expr_common_subexpr",len:4,},Rule {name:"func_expr_common_subexpr",len:4,},Rule {name:"func_expr_common_subexpr",len:5,},Rule {name:"func_expr_common_subexpr",len:7,},Rule {name:"func_expr_common_subexpr",len:7,},Rule {name:"func_expr_common_subexpr",len:9,},Rule {name:"func_expr_common_subexpr",len:5,},Rule {name:"func_expr_common_subexpr",len:4,},Rule {name:"func_expr_common_subexpr",len:6,},Rule {name:"func_expr_common_subexpr",len:5,},Rule {name:"func_expr_common_subexpr",len:7,},Rule {name:"func_expr_common_subexpr",len:7,},Rule {name:"func_expr_common_subexpr",len:8,},Rule {name:"func_expr_common_subexpr",len:4,},Rule {name:"func_expr_common_subexpr",len:7,},Rule {name:"func_expr_common_subexpr",len:4,},Rule {name:"func_expr_common_subexpr",len:6,},Rule {name:"func_expr_common_subexpr",len:6,},Rule {name:"func_expr_common_subexpr",len:4,},Rule {name:"func_expr_common_subexpr",len:5,},Rule {name:"func_expr_common_subexpr",len:4,},Rule {name:"func_expr_common_subexpr",len:5,},Rule {name:"func_expr_common_subexpr",len:3,},Rule {name:"func_expr_common_subexpr",len:11,},Rule {name:"func_expr_common_subexpr",len:8,},Rule {name:"func_expr_common_subexpr",len:9,},Rule {name:"xml_root_version",len:2,},Rule {name:"xml_root_version",len:3,},Rule {name:"opt_xml_root_standalone",len:3,},Rule {name:"opt_xml_root_standalone",len:3,},Rule {name:"opt_xml_root_standalone",len:4,},Rule {name:"opt_xml_root_standalone",len:0,},Rule {name:"xml_attributes",len:4,},Rule {name:"xml_attribute_list",len:1,},Rule {name:"xml_attribute_list",len:3,},Rule {name:"xml_attribute_el",len:3,},Rule {name:"xml_attribute_el",len:1,},Rule {name:"document_or_content",len:1,},Rule {name:"document_or_content",len:1,},Rule {name:"xml_indent_option",len:1,},Rule {name:"xml_indent_option",len:2,},Rule {name:"xml_indent_option",len:0,},Rule {name:"xml_whitespace_option",len:2,},Rule {name:"xml_whitespace_option",len:2,},Rule {name:"xml_whitespace_option",len:0,},Rule {name:"xmlexists_argument",len:2,},Rule {name:"xmlexists_argument",len:3,},Rule {name:"xmlexists_argument",len:3,},Rule {name:"xmlexists_argument",len:4,},Rule {name:"xml_passing_mech",len:2,},Rule {name:"xml_passing_mech",len:2,},Rule {name:"within_group_clause",len:5,},Rule {name:"within_group_clause",len:0,},Rule {name:"filter_clause",len:5,},Rule {name:"filter_clause",len:0,},Rule {name:"window_clause",len:2,},Rule {name:"window_clause",len:0,},Rule {name:"window_definition_list",len:1,},Rule {name:"window_definition_list",len:3,},Rule {name:"window_definition",len:3,},Rule {name:"over_clause",len:2,},Rule {name:"over_clause",len:2,},Rule {name:"over_clause",len:0,},Rule {name:"window_specification",len:6,},Rule {name:"opt_existing_window_name",len:1,},Rule {name:"opt_existing_window_name",len:0,},Rule {name:"opt_partition_clause",len:3,},Rule {name:"opt_partition_clause",len:0,},Rule {name:"opt_frame_clause",len:3,},Rule {name:"opt_frame_clause",len:3,},Rule {name:"opt_frame_clause",len:3,},Rule {name:"opt_frame_clause",len:0,},Rule {name:"frame_extent",len:1,},Rule {name:"frame_extent",len:4,},Rule {name:"frame_bound",len:2,},Rule {name:"frame_bound",len:2,},Rule {name:"frame_bound",len:2,},Rule {name:"frame_bound",len:2,},Rule {name:"frame_bound",len:2,},Rule {name:"opt_window_exclusion_clause",len:3,},Rule {name:"opt_window_exclusion_clause",len:2,},Rule {name:"opt_window_exclusion_clause",len:2,},Rule {name:"opt_window_exclusion_clause",len:3,},Rule {name:"opt_window_exclusion_clause",len:0,},Rule {name:"row",len:4,},Rule {name:"row",len:3,},Rule {name:"row",len:5,},Rule {name:"explicit_row",len:4,},Rule {name:"explicit_row",len:3,},Rule {name:"implicit_row",len:5,},Rule {name:"sub_type",len:1,},Rule {name:"sub_type",len:1,},Rule {name:"sub_type",len:1,},Rule {name:"all_Op",len:1,},Rule {name:"all_Op",len:1,},Rule {name:"MathOp",len:1,},Rule {name:"MathOp",len:1,},Rule {name:"MathOp",len:1,},Rule {name:"MathOp",len:1,},Rule {name:"MathOp",len:1,},Rule {name:"MathOp",len:1,},Rule {name:"MathOp",len:1,},Rule {name:"MathOp",len:1,},Rule {name:"MathOp",len:1,},Rule {name:"MathOp",len:1,},Rule {name:"MathOp",len:1,},Rule {name:"MathOp",len:1,},Rule {name:"qual_Op",len:1,},Rule {name:"qual_Op",len:4,},Rule {name:"qual_all_Op",len:1,},Rule {name:"qual_all_Op",len:4,},Rule {name:"subquery_Op",len:1,},Rule {name:"subquery_Op",len:4,},Rule {name:"subquery_Op",len:1,},Rule {name:"subquery_Op",len:2,},Rule {name:"subquery_Op",len:1,},Rule {name:"subquery_Op",len:2,},Rule {name:"expr_list",len:1,},Rule {name:"expr_list",len:3,},Rule {name:"func_arg_list",len:1,},Rule {name:"func_arg_list",len:3,},Rule {name:"func_arg_expr",len:1,},Rule {name:"func_arg_expr",len:3,},Rule {name:"func_arg_expr",len:3,},Rule {name:"func_arg_list_opt",len:1,},Rule {name:"func_arg_list_opt",len:0,},Rule {name:"type_list",len:1,},Rule {name:"type_list",len:3,},Rule {name:"array_expr",len:3,},Rule {name:"array_expr",len:3,},Rule {name:"array_expr",len:2,},Rule {name:"array_expr_list",len:1,},Rule {name:"array_expr_list",len:3,},Rule {name:"extract_list",len:3,},Rule {name:"extract_list",len:3,},Rule {name:"extract_arg",len:1,},Rule {name:"extract_arg",len:1,},Rule {name:"extract_arg",len:1,},Rule {name:"extract_arg",len:1,},Rule {name:"extract_arg",len:1,},Rule {name:"extract_arg",len:1,},Rule {name:"extract_arg",len:1,},Rule {name:"extract_arg",len:1,},Rule {name:"unicode_normal_form",len:1,},Rule {name:"unicode_normal_form",len:1,},Rule {name:"unicode_normal_form",len:1,},Rule {name:"unicode_normal_form",len:1,},Rule {name:"overlay_list",len:7,},Rule {name:"overlay_list",len:5,},Rule {name:"position_list",len:3,},Rule {name:"substr_list",len:5,},Rule {name:"substr_list",len:5,},Rule {name:"substr_list",len:3,},Rule {name:"substr_list",len:3,},Rule {name:"substr_list",len:5,},Rule {name:"trim_list",len:3,},Rule {name:"trim_list",len:2,},Rule {name:"trim_list",len:1,},Rule {name:"in_expr",len:1,},Rule {name:"in_expr",len:3,},Rule {name:"case_expr",len:5,},Rule {name:"when_clause_list",len:1,},Rule {name:"when_clause_list",len:2,},Rule {name:"when_clause",len:4,},Rule {name:"case_default",len:2,},Rule {name:"case_default",len:0,},Rule {name:"case_arg",len:1,},Rule {name:"case_arg",len:0,},Rule {name:"columnref",len:1,},Rule {name:"columnref",len:2,},Rule {name:"indirection_el",len:2,},Rule {name:"indirection_el",len:2,},Rule {name:"indirection_el",len:3,},Rule {name:"indirection_el",len:5,},Rule {name:"opt_slice_bound",len:1,},Rule {name:"opt_slice_bound",len:0,},Rule {name:"indirection",len:1,},Rule {name:"indirection",len:2,},Rule {name:"opt_indirection",len:0,},Rule {name:"opt_indirection",len:2,},Rule {name:"opt_asymmetric",len:1,},Rule {name:"opt_asymmetric",len:0,},Rule {name:"json_passing_clause_opt",len:2,},Rule {name:"json_passing_clause_opt",len:0,},Rule {name:"json_arguments",len:1,},Rule {name:"json_arguments",len:3,},Rule {name:"json_argument",len:3,},Rule {name:"json_wrapper_behavior",len:2,},Rule {name:"json_wrapper_behavior",len:3,},Rule {name:"json_wrapper_behavior",len:2,},Rule {name:"json_wrapper_behavior",len:3,},Rule {name:"json_wrapper_behavior",len:4,},Rule {name:"json_wrapper_behavior",len:4,},Rule {name:"json_wrapper_behavior",len:3,},Rule {name:"json_wrapper_behavior",len:3,},Rule {name:"json_wrapper_behavior",len:0,},Rule {name:"json_behavior",len:2,},Rule {name:"json_behavior",len:1,},Rule {name:"json_behavior_type",len:1,},Rule {name:"json_behavior_type",len:1,},Rule {name:"json_behavior_type",len:1,},Rule {name:"json_behavior_type",len:1,},Rule {name:"json_behavior_type",len:1,},Rule {name:"json_behavior_type",len:2,},Rule {name:"json_behavior_type",len:2,},Rule {name:"json_behavior_type",len:1,},Rule {name:"json_behavior_clause_opt",len:3,},Rule {name:"json_behavior_clause_opt",len:3,},Rule {name:"json_behavior_clause_opt",len:6,},Rule {name:"json_behavior_clause_opt",len:0,},Rule {name:"json_on_error_clause_opt",len:3,},Rule {name:"json_on_error_clause_opt",len:0,},Rule {name:"json_value_expr",len:2,},Rule {name:"json_format_clause",len:4,},Rule {name:"json_format_clause",len:2,},Rule {name:"json_format_clause_opt",len:1,},Rule {name:"json_format_clause_opt",len:0,},Rule {name:"json_quotes_clause_opt",len:5,},Rule {name:"json_quotes_clause_opt",len:2,},Rule {name:"json_quotes_clause_opt",len:5,},Rule {name:"json_quotes_clause_opt",len:2,},Rule {name:"json_quotes_clause_opt",len:0,},Rule {name:"json_returning_clause_opt",len:3,},Rule {name:"json_returning_clause_opt",len:0,},Rule {name:"json_predicate_type_constraint",len:1,},Rule {name:"json_predicate_type_constraint",len:2,},Rule {name:"json_predicate_type_constraint",len:2,},Rule {name:"json_predicate_type_constraint",len:2,},Rule {name:"json_predicate_type_constraint",len:2,},Rule {name:"json_key_uniqueness_constraint_opt",len:3,},Rule {name:"json_key_uniqueness_constraint_opt",len:2,},Rule {name:"json_key_uniqueness_constraint_opt",len:3,},Rule {name:"json_key_uniqueness_constraint_opt",len:2,},Rule {name:"json_key_uniqueness_constraint_opt",len:0,},Rule {name:"json_name_and_value_list",len:1,},Rule {name:"json_name_and_value_list",len:3,},Rule {name:"json_name_and_value",len:3,},Rule {name:"json_name_and_value",len:3,},Rule {name:"json_object_constructor_null_clause_opt",len:3,},Rule {name:"json_object_constructor_null_clause_opt",len:3,},Rule {name:"json_object_constructor_null_clause_opt",len:0,},Rule {name:"json_array_constructor_null_clause_opt",len:3,},Rule {name:"json_array_constructor_null_clause_opt",len:3,},Rule {name:"json_array_constructor_null_clause_opt",len:0,},Rule {name:"json_value_expr_list",len:1,},Rule {name:"json_value_expr_list",len:3,},Rule {name:"json_aggregate_func",len:7,},Rule {name:"json_aggregate_func",len:7,},Rule {name:"json_array_aggregate_order_by_clause_opt",len:3,},Rule {name:"json_array_aggregate_order_by_clause_opt",len:0,},Rule {name:"opt_target_list",len:1,},Rule {name:"opt_target_list",len:0,},Rule {name:"target_list",len:1,},Rule {name:"target_list",len:3,},Rule {name:"target_el",len:3,},Rule {name:"target_el",len:2,},Rule {name:"target_el",len:1,},Rule {name:"target_el",len:1,},Rule {name:"qualified_name_list",len:1,},Rule {name:"qualified_name_list",len:3,},Rule {name:"qualified_name",len:1,},Rule {name:"qualified_name",len:2,},Rule {name:"name_list",len:1,},Rule {name:"name_list",len:3,},Rule {name:"name",len:1,},Rule {name:"attr_name",len:1,},Rule {name:"file_name",len:1,},Rule {name:"func_name",len:1,},Rule {name:"func_name",len:2,},Rule {name:"AexprConst",len:1,},Rule {name:"AexprConst",len:1,},Rule {name:"AexprConst",len:1,},Rule {name:"AexprConst",len:1,},Rule {name:"AexprConst",len:1,},Rule {name:"AexprConst",len:2,},Rule {name:"AexprConst",len:6,},Rule {name:"AexprConst",len:2,},Rule {name:"AexprConst",len:6,},Rule {name:"AexprConst",len:2,},Rule {name:"AexprConst",len:3,},Rule {name:"AexprConst",len:5,},Rule {name:"AexprConst",len:2,},Rule {name:"AexprConst",len:3,},Rule {name:"AexprConst",len:5,},Rule {name:"AexprConst",len:1,},Rule {name:"AexprConst",len:1,},Rule {name:"AexprConst",len:1,},Rule {name:"Iconst",len:1,},Rule {name:"Sconst",len:1,},Rule {name:"SignedIconst",len:1,},Rule {name:"SignedIconst",len:2,},Rule {name:"SignedIconst",len:2,},Rule {name:"RoleId",len:1,},Rule {name:"RoleSpec",len:1,},Rule {name:"RoleSpec",len:1,},Rule {name:"RoleSpec",len:1,},Rule {name:"RoleSpec",len:1,},Rule {name:"role_list",len:1,},Rule {name:"role_list",len:3,},Rule {name:"PLpgSQL_Expr",len:10,},Rule {name:"PLAssignStmt",len:4,},Rule {name:"plassign_target",len:1,},Rule {name:"plassign_target",len:1,},Rule {name:"plassign_equals",len:1,},Rule {name:"plassign_equals",len:1,},Rule {name:"ColId",len:1,},Rule {name:"ColId",len:1,},Rule {name:"ColId",len:1,},Rule {name:"type_function_name",len:1,},Rule {name:"type_function_name",len:1,},Rule {name:"type_function_name",len:1,},Rule {name:"NonReservedWord",len:1,},Rule {name:"NonReservedWord",len:1,},Rule {name:"NonReservedWord",len:1,},Rule {name:"NonReservedWord",len:1,},Rule {name:"ColLabel",len:1,},Rule {name:"ColLabel",len:1,},Rule {name:"ColLabel",len:1,},Rule {name:"ColLabel",len:1,},Rule {name:"ColLabel",len:1,},Rule {name:"BareColLabel",len:1,},Rule {name:"BareColLabel",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"unreserved_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"col_name_keyword",len:1,},Rule {name:"type_func_name_keyword",len:1,},Rule {name:"type_func_name_keyword",len:1,},Rule {name:"type_func_name_keyword",len:1,},Rule {name:"type_func_name_keyword",len:1,},Rule {name:"type_func_name_keyword",len:1,},Rule {name:"type_func_name_keyword",len:1,},Rule {name:"type_func_name_keyword",len:1,},Rule {name:"type_func_name_keyword",len:1,},Rule {name:"type_func_name_keyword",len:1,},Rule {name:"type_func_name_keyword",len:1,},Rule {name:"type_func_name_keyword",len:1,},Rule {name:"type_func_name_keyword",len:1,},Rule {name:"type_func_name_keyword",len:1,},Rule {name:"type_func_name_keyword",len:1,},Rule {name:"type_func_name_keyword",len:1,},Rule {name:"type_func_name_keyword",len:1,},Rule {name:"type_func_name_keyword",len:1,},Rule {name:"type_func_name_keyword",len:1,},Rule {name:"type_func_name_keyword",len:1,},Rule {name:"type_func_name_keyword",len:1,},Rule {name:"type_func_name_keyword",len:1,},Rule {name:"type_func_name_keyword",len:1,},Rule {name:"type_func_name_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"reserved_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},Rule {name:"bare_label_keyword",len:1,},]; pub(crate) fn num_terminal_symbol() -> u32 { - 514 + 534 } pub(crate) fn num_non_terminal_symbol() -> u32 { - 706 + 728 } pub(crate) fn end_rule_kind() -> TokenKind { @@ -34,7 +33029,7 @@ pub(crate) fn end_rule_kind() -> TokenKind { } pub(crate) fn end_rule_id() -> u32 { - 125 + 126 } pub(crate) fn token_kind_to_component_id(kind: &TokenKind) -> u32 { @@ -109,452 +33104,472 @@ pub(crate) fn token_kind_to_component_id(kind: &TokenKind) -> u32 { TokenKind::KEYWORD(s) if s == "COMMITTED" => 67, TokenKind::KEYWORD(s) if s == "COMPRESSION" => 68, TokenKind::KEYWORD(s) if s == "CONCURRENTLY" => 69, - TokenKind::KEYWORD(s) if s == "CONFIGURATION" => 70, - TokenKind::KEYWORD(s) if s == "CONFLICT" => 71, - TokenKind::KEYWORD(s) if s == "CONNECTION" => 72, - TokenKind::KEYWORD(s) if s == "CONSTRAINT" => 73, - TokenKind::KEYWORD(s) if s == "CONSTRAINTS" => 74, - TokenKind::KEYWORD(s) if s == "CONTENT_P" => 75, - TokenKind::KEYWORD(s) if s == "CONTINUE_P" => 76, - TokenKind::KEYWORD(s) if s == "CONVERSION_P" => 77, - TokenKind::KEYWORD(s) if s == "COPY" => 78, - TokenKind::KEYWORD(s) if s == "COST" => 79, - TokenKind::KEYWORD(s) if s == "CREATE" => 80, - TokenKind::KEYWORD(s) if s == "CROSS" => 81, - TokenKind::KEYWORD(s) if s == "CSV" => 82, - TokenKind::KEYWORD(s) if s == "CUBE" => 83, - TokenKind::KEYWORD(s) if s == "CURRENT_CATALOG" => 84, - TokenKind::KEYWORD(s) if s == "CURRENT_DATE" => 85, - TokenKind::KEYWORD(s) if s == "CURRENT_P" => 86, - TokenKind::KEYWORD(s) if s == "CURRENT_ROLE" => 87, - TokenKind::KEYWORD(s) if s == "CURRENT_SCHEMA" => 88, - TokenKind::KEYWORD(s) if s == "CURRENT_TIME" => 89, - TokenKind::KEYWORD(s) if s == "CURRENT_TIMESTAMP" => 90, - TokenKind::KEYWORD(s) if s == "CURRENT_USER" => 91, - TokenKind::KEYWORD(s) if s == "CURSOR" => 92, - TokenKind::KEYWORD(s) if s == "CYCLE" => 93, - TokenKind::RAW(s) if s == "^" => 94, - TokenKind::RAW(s) if s == ":" => 95, - TokenKind::RAW(s) if s == "," => 96, - TokenKind::KEYWORD(s) if s == "DATABASE" => 97, - TokenKind::KEYWORD(s) if s == "DATA_P" => 98, - TokenKind::KEYWORD(s) if s == "DAY_P" => 99, - TokenKind::KEYWORD(s) if s == "DEALLOCATE" => 100, - TokenKind::KEYWORD(s) if s == "DEC" => 101, - TokenKind::KEYWORD(s) if s == "DECIMAL_P" => 102, - TokenKind::KEYWORD(s) if s == "DECLARE" => 103, - TokenKind::KEYWORD(s) if s == "DEFAULT" => 104, - TokenKind::KEYWORD(s) if s == "DEFAULTS" => 105, - TokenKind::KEYWORD(s) if s == "DEFERRABLE" => 106, - TokenKind::KEYWORD(s) if s == "DEFERRED" => 107, - TokenKind::KEYWORD(s) if s == "DEFINER" => 108, - TokenKind::KEYWORD(s) if s == "DELETE_P" => 109, - TokenKind::KEYWORD(s) if s == "DELIMITER" => 110, - TokenKind::KEYWORD(s) if s == "DELIMITERS" => 111, - TokenKind::KEYWORD(s) if s == "DEPENDS" => 112, - TokenKind::KEYWORD(s) if s == "DEPTH" => 113, - TokenKind::KEYWORD(s) if s == "DESC" => 114, - TokenKind::KEYWORD(s) if s == "DETACH" => 115, - TokenKind::KEYWORD(s) if s == "DICTIONARY" => 116, - TokenKind::KEYWORD(s) if s == "DISABLE_P" => 117, - TokenKind::KEYWORD(s) if s == "DISCARD" => 118, - TokenKind::KEYWORD(s) if s == "DISTINCT" => 119, - TokenKind::KEYWORD(s) if s == "DO" => 120, - TokenKind::KEYWORD(s) if s == "DOCUMENT_P" => 121, - TokenKind::KEYWORD(s) if s == "DOMAIN_P" => 122, - TokenKind::KEYWORD(s) if s == "DOUBLE_P" => 123, - TokenKind::KEYWORD(s) if s == "DROP" => 124, - TokenKind::RAW(s) if s == "$end" => 125, - TokenKind::RAW(s) if s == "." => 126, - TokenKind::KEYWORD(s) if s == "EACH" => 127, - TokenKind::KEYWORD(s) if s == "ELSE" => 128, - TokenKind::KEYWORD(s) if s == "ENABLE_P" => 129, - TokenKind::KEYWORD(s) if s == "ENCODING" => 130, - TokenKind::KEYWORD(s) if s == "ENCRYPTED" => 131, - TokenKind::KEYWORD(s) if s == "END_P" => 132, - TokenKind::KEYWORD(s) if s == "ENUM_P" => 133, - TokenKind::EQUALS_GREATER => 134, - TokenKind::KEYWORD(s) if s == "ESCAPE" => 135, - TokenKind::KEYWORD(s) if s == "EVENT" => 136, - TokenKind::KEYWORD(s) if s == "EXCEPT" => 137, - TokenKind::KEYWORD(s) if s == "EXCLUDE" => 138, - TokenKind::KEYWORD(s) if s == "EXCLUDING" => 139, - TokenKind::KEYWORD(s) if s == "EXCLUSIVE" => 140, - TokenKind::KEYWORD(s) if s == "EXECUTE" => 141, - TokenKind::KEYWORD(s) if s == "EXISTS" => 142, - TokenKind::KEYWORD(s) if s == "EXPLAIN" => 143, - TokenKind::KEYWORD(s) if s == "EXPRESSION" => 144, - TokenKind::KEYWORD(s) if s == "EXTENSION" => 145, - TokenKind::KEYWORD(s) if s == "EXTERNAL" => 146, - TokenKind::KEYWORD(s) if s == "EXTRACT" => 147, - TokenKind::RAW(s) if s == "=" => 148, - TokenKind::KEYWORD(s) if s == "FALSE_P" => 149, - TokenKind::KEYWORD(s) if s == "FAMILY" => 150, - TokenKind::FCONST => 151, - TokenKind::KEYWORD(s) if s == "FETCH" => 152, - TokenKind::KEYWORD(s) if s == "FILTER" => 153, - TokenKind::KEYWORD(s) if s == "FINALIZE" => 154, - TokenKind::KEYWORD(s) if s == "FIRST_P" => 155, - TokenKind::KEYWORD(s) if s == "FLOAT_P" => 156, - TokenKind::KEYWORD(s) if s == "FOLLOWING" => 157, - TokenKind::KEYWORD(s) if s == "FOR" => 158, - TokenKind::KEYWORD(s) if s == "FORCE" => 159, - TokenKind::KEYWORD(s) if s == "FOREIGN" => 160, - TokenKind::KEYWORD(s) if s == "FORMAT" => 161, - TokenKind::KEYWORD(s) if s == "FORMAT_LA" => 162, - TokenKind::KEYWORD(s) if s == "FORWARD" => 163, - TokenKind::KEYWORD(s) if s == "FREEZE" => 164, - TokenKind::KEYWORD(s) if s == "FROM" => 165, - TokenKind::KEYWORD(s) if s == "FULL" => 166, - TokenKind::KEYWORD(s) if s == "FUNCTION" => 167, - TokenKind::KEYWORD(s) if s == "FUNCTIONS" => 168, - TokenKind::KEYWORD(s) if s == "GENERATED" => 169, - TokenKind::KEYWORD(s) if s == "GLOBAL" => 170, - TokenKind::KEYWORD(s) if s == "GRANT" => 171, - TokenKind::KEYWORD(s) if s == "GRANTED" => 172, - TokenKind::GREATER_EQUALS => 173, - TokenKind::KEYWORD(s) if s == "GREATEST" => 174, - TokenKind::KEYWORD(s) if s == "GROUPING" => 175, - TokenKind::KEYWORD(s) if s == "GROUPS" => 176, - TokenKind::KEYWORD(s) if s == "GROUP_P" => 177, - TokenKind::RAW(s) if s == ">" => 178, - TokenKind::KEYWORD(s) if s == "HANDLER" => 179, - TokenKind::KEYWORD(s) if s == "HAVING" => 180, - TokenKind::KEYWORD(s) if s == "HEADER_P" => 181, - TokenKind::KEYWORD(s) if s == "HOLD" => 182, - TokenKind::KEYWORD(s) if s == "HOUR_P" => 183, - TokenKind::ICONST => 184, - TokenKind::IDENT => 185, - TokenKind::KEYWORD(s) if s == "IDENTITY_P" => 186, - TokenKind::KEYWORD(s) if s == "IF_P" => 187, - TokenKind::KEYWORD(s) if s == "ILIKE" => 188, - TokenKind::KEYWORD(s) if s == "IMMEDIATE" => 189, - TokenKind::KEYWORD(s) if s == "IMMUTABLE" => 190, - TokenKind::KEYWORD(s) if s == "IMPLICIT_P" => 191, - TokenKind::KEYWORD(s) if s == "IMPORT_P" => 192, - TokenKind::KEYWORD(s) if s == "INCLUDE" => 193, - TokenKind::KEYWORD(s) if s == "INCLUDING" => 194, - TokenKind::KEYWORD(s) if s == "INCREMENT" => 195, - TokenKind::KEYWORD(s) if s == "INDENT" => 196, - TokenKind::KEYWORD(s) if s == "INDEX" => 197, - TokenKind::KEYWORD(s) if s == "INDEXES" => 198, - TokenKind::KEYWORD(s) if s == "INHERIT" => 199, - TokenKind::KEYWORD(s) if s == "INHERITS" => 200, - TokenKind::KEYWORD(s) if s == "INITIALLY" => 201, - TokenKind::KEYWORD(s) if s == "INLINE_P" => 202, - TokenKind::KEYWORD(s) if s == "INNER_P" => 203, - TokenKind::KEYWORD(s) if s == "INOUT" => 204, - TokenKind::KEYWORD(s) if s == "INPUT_P" => 205, - TokenKind::KEYWORD(s) if s == "INSENSITIVE" => 206, - TokenKind::KEYWORD(s) if s == "INSERT" => 207, - TokenKind::KEYWORD(s) if s == "INSTEAD" => 208, - TokenKind::KEYWORD(s) if s == "INTEGER" => 209, - TokenKind::KEYWORD(s) if s == "INTERSECT" => 210, - TokenKind::KEYWORD(s) if s == "INTERVAL" => 211, - TokenKind::KEYWORD(s) if s == "INTO" => 212, - TokenKind::KEYWORD(s) if s == "INT_P" => 213, - TokenKind::KEYWORD(s) if s == "INVOKER" => 214, - TokenKind::KEYWORD(s) if s == "IN_P" => 215, - TokenKind::KEYWORD(s) if s == "IS" => 216, - TokenKind::KEYWORD(s) if s == "ISNULL" => 217, - TokenKind::KEYWORD(s) if s == "ISOLATION" => 218, - TokenKind::KEYWORD(s) if s == "JOIN" => 219, - TokenKind::KEYWORD(s) if s == "JSON" => 220, - TokenKind::KEYWORD(s) if s == "JSON_ARRAY" => 221, - TokenKind::KEYWORD(s) if s == "JSON_ARRAYAGG" => 222, - TokenKind::KEYWORD(s) if s == "JSON_OBJECT" => 223, - TokenKind::KEYWORD(s) if s == "JSON_OBJECTAGG" => 224, - TokenKind::KEYWORD(s) if s == "KEY" => 225, - TokenKind::KEYWORD(s) if s == "KEYS" => 226, - TokenKind::KEYWORD(s) if s == "LABEL" => 227, - TokenKind::KEYWORD(s) if s == "LANGUAGE" => 228, - TokenKind::KEYWORD(s) if s == "LARGE_P" => 229, - TokenKind::KEYWORD(s) if s == "LAST_P" => 230, - TokenKind::KEYWORD(s) if s == "LATERAL_P" => 231, - TokenKind::RAW(s) if s == "[" => 232, - TokenKind::KEYWORD(s) if s == "LEADING" => 233, - TokenKind::KEYWORD(s) if s == "LEAKPROOF" => 234, - TokenKind::KEYWORD(s) if s == "LEAST" => 235, - TokenKind::KEYWORD(s) if s == "LEFT" => 236, - TokenKind::LESS_EQUALS => 237, - TokenKind::KEYWORD(s) if s == "LEVEL" => 238, - TokenKind::KEYWORD(s) if s == "LIKE" => 239, - TokenKind::KEYWORD(s) if s == "LIMIT" => 240, - TokenKind::KEYWORD(s) if s == "LISTEN" => 241, - TokenKind::KEYWORD(s) if s == "LOAD" => 242, - TokenKind::KEYWORD(s) if s == "LOCAL" => 243, - TokenKind::KEYWORD(s) if s == "LOCALTIME" => 244, - TokenKind::KEYWORD(s) if s == "LOCALTIMESTAMP" => 245, - TokenKind::KEYWORD(s) if s == "LOCATION" => 246, - TokenKind::KEYWORD(s) if s == "LOCKED" => 247, - TokenKind::KEYWORD(s) if s == "LOCK_P" => 248, - TokenKind::KEYWORD(s) if s == "LOGGED" => 249, - TokenKind::RAW(s) if s == "(" => 250, - TokenKind::RAW(s) if s == "<" => 251, - TokenKind::KEYWORD(s) if s == "MAPPING" => 252, - TokenKind::KEYWORD(s) if s == "MATCH" => 253, - TokenKind::KEYWORD(s) if s == "MATCHED" => 254, - TokenKind::KEYWORD(s) if s == "MATERIALIZED" => 255, - TokenKind::KEYWORD(s) if s == "MAXVALUE" => 256, - TokenKind::KEYWORD(s) if s == "MERGE" => 257, - TokenKind::KEYWORD(s) if s == "METHOD" => 258, - TokenKind::KEYWORD(s) if s == "MINUTE_P" => 259, - TokenKind::KEYWORD(s) if s == "MINVALUE" => 260, - TokenKind::KEYWORD(s) if s == "MODE" => 261, - TokenKind::KEYWORD(s) if s == "MODE_PLPGSQL_ASSIGN1" => 262, - TokenKind::KEYWORD(s) if s == "MODE_PLPGSQL_ASSIGN2" => 263, - TokenKind::KEYWORD(s) if s == "MODE_PLPGSQL_ASSIGN3" => 264, - TokenKind::KEYWORD(s) if s == "MODE_PLPGSQL_EXPR" => 265, - TokenKind::KEYWORD(s) if s == "MODE_TYPE_NAME" => 266, - TokenKind::KEYWORD(s) if s == "MONTH_P" => 267, - TokenKind::KEYWORD(s) if s == "MOVE" => 268, - TokenKind::RAW(s) if s == "-" => 269, - TokenKind::KEYWORD(s) if s == "NAMES" => 270, - TokenKind::KEYWORD(s) if s == "NAME_P" => 271, - TokenKind::KEYWORD(s) if s == "NATIONAL" => 272, - TokenKind::KEYWORD(s) if s == "NATURAL" => 273, - TokenKind::KEYWORD(s) if s == "NCHAR" => 274, - TokenKind::KEYWORD(s) if s == "NEW" => 275, - TokenKind::KEYWORD(s) if s == "NEXT" => 276, - TokenKind::KEYWORD(s) if s == "NFC" => 277, - TokenKind::KEYWORD(s) if s == "NFD" => 278, - TokenKind::KEYWORD(s) if s == "NFKC" => 279, - TokenKind::KEYWORD(s) if s == "NFKD" => 280, - TokenKind::KEYWORD(s) if s == "NO" => 281, - TokenKind::KEYWORD(s) if s == "NONE" => 282, - TokenKind::KEYWORD(s) if s == "NORMALIZE" => 283, - TokenKind::KEYWORD(s) if s == "NORMALIZED" => 284, - TokenKind::KEYWORD(s) if s == "NOT" => 285, - TokenKind::KEYWORD(s) if s == "NOTHING" => 286, - TokenKind::KEYWORD(s) if s == "NOTIFY" => 287, - TokenKind::KEYWORD(s) if s == "NOTNULL" => 288, - TokenKind::NOT_EQUALS => 289, - TokenKind::KEYWORD(s) if s == "NOT_LA" => 290, - TokenKind::KEYWORD(s) if s == "NOWAIT" => 291, - TokenKind::KEYWORD(s) if s == "NULLIF" => 292, - TokenKind::KEYWORD(s) if s == "NULLS_LA" => 293, - TokenKind::KEYWORD(s) if s == "NULLS_P" => 294, - TokenKind::KEYWORD(s) if s == "NULL_P" => 295, - TokenKind::KEYWORD(s) if s == "NUMERIC" => 296, - TokenKind::KEYWORD(s) if s == "OBJECT_P" => 297, - TokenKind::KEYWORD(s) if s == "OF" => 298, - TokenKind::KEYWORD(s) if s == "OFF" => 299, - TokenKind::KEYWORD(s) if s == "OFFSET" => 300, - TokenKind::KEYWORD(s) if s == "OIDS" => 301, - TokenKind::KEYWORD(s) if s == "OLD" => 302, - TokenKind::KEYWORD(s) if s == "ON" => 303, - TokenKind::KEYWORD(s) if s == "ONLY" => 304, - TokenKind::KEYWORD(s) if s == "OPERATOR" => 305, - TokenKind::KEYWORD(s) if s == "OPTION" => 306, - TokenKind::KEYWORD(s) if s == "OPTIONS" => 307, - TokenKind::KEYWORD(s) if s == "OR" => 308, - TokenKind::KEYWORD(s) if s == "ORDER" => 309, - TokenKind::KEYWORD(s) if s == "ORDINALITY" => 310, - TokenKind::KEYWORD(s) if s == "OTHERS" => 311, - TokenKind::KEYWORD(s) if s == "OUTER_P" => 312, - TokenKind::KEYWORD(s) if s == "OUT_P" => 313, - TokenKind::KEYWORD(s) if s == "OVER" => 314, - TokenKind::KEYWORD(s) if s == "OVERLAPS" => 315, - TokenKind::KEYWORD(s) if s == "OVERLAY" => 316, - TokenKind::KEYWORD(s) if s == "OVERRIDING" => 317, - TokenKind::KEYWORD(s) if s == "OWNED" => 318, - TokenKind::KEYWORD(s) if s == "OWNER" => 319, - TokenKind::Op => 320, - TokenKind::KEYWORD(s) if s == "PARALLEL" => 321, - TokenKind::PARAM => 322, - TokenKind::KEYWORD(s) if s == "PARAMETER" => 323, - TokenKind::KEYWORD(s) if s == "PARSER" => 324, - TokenKind::KEYWORD(s) if s == "PARTIAL" => 325, - TokenKind::KEYWORD(s) if s == "PARTITION" => 326, - TokenKind::KEYWORD(s) if s == "PASSING" => 327, - TokenKind::KEYWORD(s) if s == "PASSWORD" => 328, - TokenKind::KEYWORD(s) if s == "PLACING" => 329, - TokenKind::KEYWORD(s) if s == "PLANS" => 330, - TokenKind::KEYWORD(s) if s == "POLICY" => 331, - TokenKind::KEYWORD(s) if s == "POSITION" => 332, - TokenKind::KEYWORD(s) if s == "PRECEDING" => 333, - TokenKind::KEYWORD(s) if s == "PRECISION" => 334, - TokenKind::KEYWORD(s) if s == "PREPARE" => 335, - TokenKind::KEYWORD(s) if s == "PREPARED" => 336, - TokenKind::KEYWORD(s) if s == "PRESERVE" => 337, - TokenKind::KEYWORD(s) if s == "PRIMARY" => 338, - TokenKind::KEYWORD(s) if s == "PRIOR" => 339, - TokenKind::KEYWORD(s) if s == "PRIVILEGES" => 340, - TokenKind::KEYWORD(s) if s == "PROCEDURAL" => 341, - TokenKind::KEYWORD(s) if s == "PROCEDURE" => 342, - TokenKind::KEYWORD(s) if s == "PROCEDURES" => 343, - TokenKind::KEYWORD(s) if s == "PROGRAM" => 344, - TokenKind::KEYWORD(s) if s == "PUBLICATION" => 345, - TokenKind::RAW(s) if s == "%" => 346, - TokenKind::RAW(s) if s == "+" => 347, - TokenKind::KEYWORD(s) if s == "QUOTE" => 348, - TokenKind::KEYWORD(s) if s == "RANGE" => 349, - TokenKind::RAW(s) if s == "]" => 350, - TokenKind::KEYWORD(s) if s == "READ" => 351, - TokenKind::KEYWORD(s) if s == "REAL" => 352, - TokenKind::KEYWORD(s) if s == "REASSIGN" => 353, - TokenKind::KEYWORD(s) if s == "RECHECK" => 354, - TokenKind::KEYWORD(s) if s == "RECURSIVE" => 355, - TokenKind::KEYWORD(s) if s == "REFERENCES" => 356, - TokenKind::KEYWORD(s) if s == "REFERENCING" => 357, - TokenKind::KEYWORD(s) if s == "REFRESH" => 358, - TokenKind::KEYWORD(s) if s == "REF_P" => 359, - TokenKind::KEYWORD(s) if s == "REINDEX" => 360, - TokenKind::KEYWORD(s) if s == "RELATIVE_P" => 361, - TokenKind::KEYWORD(s) if s == "RELEASE" => 362, - TokenKind::KEYWORD(s) if s == "RENAME" => 363, - TokenKind::KEYWORD(s) if s == "REPEATABLE" => 364, - TokenKind::KEYWORD(s) if s == "REPLACE" => 365, - TokenKind::KEYWORD(s) if s == "REPLICA" => 366, - TokenKind::KEYWORD(s) if s == "RESET" => 367, - TokenKind::KEYWORD(s) if s == "RESTART" => 368, - TokenKind::KEYWORD(s) if s == "RESTRICT" => 369, - TokenKind::KEYWORD(s) if s == "RETURN" => 370, - TokenKind::KEYWORD(s) if s == "RETURNING" => 371, - TokenKind::KEYWORD(s) if s == "RETURNS" => 372, - TokenKind::KEYWORD(s) if s == "REVOKE" => 373, - TokenKind::KEYWORD(s) if s == "RIGHT" => 374, - TokenKind::KEYWORD(s) if s == "ROLE" => 375, - TokenKind::KEYWORD(s) if s == "ROLLBACK" => 376, - TokenKind::KEYWORD(s) if s == "ROLLUP" => 377, - TokenKind::KEYWORD(s) if s == "ROUTINE" => 378, - TokenKind::KEYWORD(s) if s == "ROUTINES" => 379, - TokenKind::KEYWORD(s) if s == "ROW" => 380, - TokenKind::KEYWORD(s) if s == "ROWS" => 381, - TokenKind::RAW(s) if s == ")" => 382, - TokenKind::KEYWORD(s) if s == "RULE" => 383, - TokenKind::KEYWORD(s) if s == "SAVEPOINT" => 384, - TokenKind::KEYWORD(s) if s == "SCALAR" => 385, - TokenKind::KEYWORD(s) if s == "SCHEMA" => 386, - TokenKind::KEYWORD(s) if s == "SCHEMAS" => 387, - TokenKind::SCONST => 388, - TokenKind::KEYWORD(s) if s == "SCROLL" => 389, - TokenKind::KEYWORD(s) if s == "SEARCH" => 390, - TokenKind::KEYWORD(s) if s == "SECOND_P" => 391, - TokenKind::KEYWORD(s) if s == "SECURITY" => 392, - TokenKind::KEYWORD(s) if s == "SELECT" => 393, - TokenKind::KEYWORD(s) if s == "SEQUENCE" => 394, - TokenKind::KEYWORD(s) if s == "SEQUENCES" => 395, - TokenKind::KEYWORD(s) if s == "SERIALIZABLE" => 396, - TokenKind::KEYWORD(s) if s == "SERVER" => 397, - TokenKind::KEYWORD(s) if s == "SESSION" => 398, - TokenKind::KEYWORD(s) if s == "SESSION_USER" => 399, - TokenKind::KEYWORD(s) if s == "SET" => 400, - TokenKind::KEYWORD(s) if s == "SETOF" => 401, - TokenKind::KEYWORD(s) if s == "SETS" => 402, - TokenKind::KEYWORD(s) if s == "SHARE" => 403, - TokenKind::KEYWORD(s) if s == "SHOW" => 404, - TokenKind::KEYWORD(s) if s == "SIMILAR" => 405, - TokenKind::KEYWORD(s) if s == "SIMPLE" => 406, - TokenKind::KEYWORD(s) if s == "SKIP" => 407, - TokenKind::KEYWORD(s) if s == "SMALLINT" => 408, - TokenKind::KEYWORD(s) if s == "SNAPSHOT" => 409, - TokenKind::KEYWORD(s) if s == "SOME" => 410, - TokenKind::KEYWORD(s) if s == "SQL_P" => 411, - TokenKind::KEYWORD(s) if s == "STABLE" => 412, - TokenKind::KEYWORD(s) if s == "STANDALONE_P" => 413, - TokenKind::KEYWORD(s) if s == "START" => 414, - TokenKind::KEYWORD(s) if s == "STATEMENT" => 415, - TokenKind::KEYWORD(s) if s == "STATISTICS" => 416, - TokenKind::KEYWORD(s) if s == "STDIN" => 417, - TokenKind::KEYWORD(s) if s == "STDOUT" => 418, - TokenKind::KEYWORD(s) if s == "STORAGE" => 419, - TokenKind::KEYWORD(s) if s == "STORED" => 420, - TokenKind::KEYWORD(s) if s == "STRICT_P" => 421, - TokenKind::KEYWORD(s) if s == "STRIP_P" => 422, - TokenKind::KEYWORD(s) if s == "SUBSCRIPTION" => 423, - TokenKind::KEYWORD(s) if s == "SUBSTRING" => 424, - TokenKind::KEYWORD(s) if s == "SUPPORT" => 425, - TokenKind::KEYWORD(s) if s == "SYMMETRIC" => 426, - TokenKind::KEYWORD(s) if s == "SYSID" => 427, - TokenKind::KEYWORD(s) if s == "SYSTEM_P" => 428, - TokenKind::KEYWORD(s) if s == "SYSTEM_USER" => 429, - TokenKind::RAW(s) if s == ";" => 430, - TokenKind::RAW(s) if s == "/" => 431, - TokenKind::RAW(s) if s == "*" => 432, - TokenKind::KEYWORD(s) if s == "TABLE" => 433, - TokenKind::KEYWORD(s) if s == "TABLES" => 434, - TokenKind::KEYWORD(s) if s == "TABLESAMPLE" => 435, - TokenKind::KEYWORD(s) if s == "TABLESPACE" => 436, - TokenKind::KEYWORD(s) if s == "TEMP" => 437, - TokenKind::KEYWORD(s) if s == "TEMPLATE" => 438, - TokenKind::KEYWORD(s) if s == "TEMPORARY" => 439, - TokenKind::KEYWORD(s) if s == "TEXT_P" => 440, - TokenKind::KEYWORD(s) if s == "THEN" => 441, - TokenKind::KEYWORD(s) if s == "TIES" => 442, - TokenKind::KEYWORD(s) if s == "TIME" => 443, - TokenKind::KEYWORD(s) if s == "TIMESTAMP" => 444, - TokenKind::KEYWORD(s) if s == "TO" => 445, - TokenKind::KEYWORD(s) if s == "TRAILING" => 446, - TokenKind::KEYWORD(s) if s == "TRANSACTION" => 447, - TokenKind::KEYWORD(s) if s == "TRANSFORM" => 448, - TokenKind::KEYWORD(s) if s == "TREAT" => 449, - TokenKind::KEYWORD(s) if s == "TRIGGER" => 450, - TokenKind::KEYWORD(s) if s == "TRIM" => 451, - TokenKind::KEYWORD(s) if s == "TRUE_P" => 452, - TokenKind::KEYWORD(s) if s == "TRUNCATE" => 453, - TokenKind::KEYWORD(s) if s == "TRUSTED" => 454, - TokenKind::TYPECAST => 455, - TokenKind::KEYWORD(s) if s == "TYPES_P" => 456, - TokenKind::KEYWORD(s) if s == "TYPE_P" => 457, - TokenKind::KEYWORD(s) if s == "UESCAPE" => 458, - TokenKind::KEYWORD(s) if s == "UMINUS" => 459, - TokenKind::KEYWORD(s) if s == "UNBOUNDED" => 460, - TokenKind::KEYWORD(s) if s == "UNCOMMITTED" => 461, - TokenKind::KEYWORD(s) if s == "UNENCRYPTED" => 462, - TokenKind::KEYWORD(s) if s == "UNION" => 463, - TokenKind::KEYWORD(s) if s == "UNIQUE" => 464, - TokenKind::KEYWORD(s) if s == "UNKNOWN" => 465, - TokenKind::KEYWORD(s) if s == "UNLISTEN" => 466, - TokenKind::KEYWORD(s) if s == "UNLOGGED" => 467, - TokenKind::KEYWORD(s) if s == "UNTIL" => 468, - TokenKind::KEYWORD(s) if s == "UPDATE" => 469, - TokenKind::KEYWORD(s) if s == "USER" => 470, - TokenKind::KEYWORD(s) if s == "USING" => 471, - TokenKind::KEYWORD(s) if s == "VACUUM" => 472, - TokenKind::KEYWORD(s) if s == "VALID" => 473, - TokenKind::KEYWORD(s) if s == "VALIDATE" => 474, - TokenKind::KEYWORD(s) if s == "VALIDATOR" => 475, - TokenKind::KEYWORD(s) if s == "VALUES" => 476, - TokenKind::KEYWORD(s) if s == "VALUE_P" => 477, - TokenKind::KEYWORD(s) if s == "VARCHAR" => 478, - TokenKind::KEYWORD(s) if s == "VARIADIC" => 479, - TokenKind::KEYWORD(s) if s == "VARYING" => 480, - TokenKind::KEYWORD(s) if s == "VERBOSE" => 481, - TokenKind::KEYWORD(s) if s == "VERSION_P" => 482, - TokenKind::KEYWORD(s) if s == "VIEW" => 483, - TokenKind::KEYWORD(s) if s == "VIEWS" => 484, - TokenKind::KEYWORD(s) if s == "VOLATILE" => 485, - TokenKind::KEYWORD(s) if s == "WHEN" => 486, - TokenKind::KEYWORD(s) if s == "WHERE" => 487, - TokenKind::KEYWORD(s) if s == "WHITESPACE_P" => 488, - TokenKind::KEYWORD(s) if s == "WINDOW" => 489, - TokenKind::KEYWORD(s) if s == "WITH" => 490, - TokenKind::KEYWORD(s) if s == "WITHIN" => 491, - TokenKind::KEYWORD(s) if s == "WITHOUT" => 492, - TokenKind::KEYWORD(s) if s == "WITHOUT_LA" => 493, - TokenKind::KEYWORD(s) if s == "WITH_LA" => 494, - TokenKind::KEYWORD(s) if s == "WORK" => 495, - TokenKind::KEYWORD(s) if s == "WRAPPER" => 496, - TokenKind::KEYWORD(s) if s == "WRITE" => 497, - TokenKind::XCONST => 498, - TokenKind::KEYWORD(s) if s == "XMLATTRIBUTES" => 499, - TokenKind::KEYWORD(s) if s == "XMLCONCAT" => 500, - TokenKind::KEYWORD(s) if s == "XMLELEMENT" => 501, - TokenKind::KEYWORD(s) if s == "XMLEXISTS" => 502, - TokenKind::KEYWORD(s) if s == "XMLFOREST" => 503, - TokenKind::KEYWORD(s) if s == "XMLNAMESPACES" => 504, - TokenKind::KEYWORD(s) if s == "XMLPARSE" => 505, - TokenKind::KEYWORD(s) if s == "XMLPI" => 506, - TokenKind::KEYWORD(s) if s == "XMLROOT" => 507, - TokenKind::KEYWORD(s) if s == "XMLSERIALIZE" => 508, - TokenKind::KEYWORD(s) if s == "XMLTABLE" => 509, - TokenKind::KEYWORD(s) if s == "XML_P" => 510, - TokenKind::KEYWORD(s) if s == "YEAR_P" => 511, - TokenKind::KEYWORD(s) if s == "YES_P" => 512, - TokenKind::KEYWORD(s) if s == "ZONE" => 513, - TokenKind::C_COMMENT => 1220, - TokenKind::SQL_COMMENT => 1221, + TokenKind::KEYWORD(s) if s == "CONDITIONAL" => 70, + TokenKind::KEYWORD(s) if s == "CONFIGURATION" => 71, + TokenKind::KEYWORD(s) if s == "CONFLICT" => 72, + TokenKind::KEYWORD(s) if s == "CONNECTION" => 73, + TokenKind::KEYWORD(s) if s == "CONSTRAINT" => 74, + TokenKind::KEYWORD(s) if s == "CONSTRAINTS" => 75, + TokenKind::KEYWORD(s) if s == "CONTENT_P" => 76, + TokenKind::KEYWORD(s) if s == "CONTINUE_P" => 77, + TokenKind::KEYWORD(s) if s == "CONVERSION_P" => 78, + TokenKind::KEYWORD(s) if s == "COPY" => 79, + TokenKind::KEYWORD(s) if s == "COST" => 80, + TokenKind::KEYWORD(s) if s == "CREATE" => 81, + TokenKind::KEYWORD(s) if s == "CROSS" => 82, + TokenKind::KEYWORD(s) if s == "CSV" => 83, + TokenKind::KEYWORD(s) if s == "CUBE" => 84, + TokenKind::KEYWORD(s) if s == "CURRENT_CATALOG" => 85, + TokenKind::KEYWORD(s) if s == "CURRENT_DATE" => 86, + TokenKind::KEYWORD(s) if s == "CURRENT_P" => 87, + TokenKind::KEYWORD(s) if s == "CURRENT_ROLE" => 88, + TokenKind::KEYWORD(s) if s == "CURRENT_SCHEMA" => 89, + TokenKind::KEYWORD(s) if s == "CURRENT_TIME" => 90, + TokenKind::KEYWORD(s) if s == "CURRENT_TIMESTAMP" => 91, + TokenKind::KEYWORD(s) if s == "CURRENT_USER" => 92, + TokenKind::KEYWORD(s) if s == "CURSOR" => 93, + TokenKind::KEYWORD(s) if s == "CYCLE" => 94, + TokenKind::RAW(s) if s == "^" => 95, + TokenKind::RAW(s) if s == ":" => 96, + TokenKind::RAW(s) if s == "," => 97, + TokenKind::KEYWORD(s) if s == "DATABASE" => 98, + TokenKind::KEYWORD(s) if s == "DATA_P" => 99, + TokenKind::KEYWORD(s) if s == "DAY_P" => 100, + TokenKind::KEYWORD(s) if s == "DEALLOCATE" => 101, + TokenKind::KEYWORD(s) if s == "DEC" => 102, + TokenKind::KEYWORD(s) if s == "DECIMAL_P" => 103, + TokenKind::KEYWORD(s) if s == "DECLARE" => 104, + TokenKind::KEYWORD(s) if s == "DEFAULT" => 105, + TokenKind::KEYWORD(s) if s == "DEFAULTS" => 106, + TokenKind::KEYWORD(s) if s == "DEFERRABLE" => 107, + TokenKind::KEYWORD(s) if s == "DEFERRED" => 108, + TokenKind::KEYWORD(s) if s == "DEFINER" => 109, + TokenKind::KEYWORD(s) if s == "DELETE_P" => 110, + TokenKind::KEYWORD(s) if s == "DELIMITER" => 111, + TokenKind::KEYWORD(s) if s == "DELIMITERS" => 112, + TokenKind::KEYWORD(s) if s == "DEPENDS" => 113, + TokenKind::KEYWORD(s) if s == "DEPTH" => 114, + TokenKind::KEYWORD(s) if s == "DESC" => 115, + TokenKind::KEYWORD(s) if s == "DETACH" => 116, + TokenKind::KEYWORD(s) if s == "DICTIONARY" => 117, + TokenKind::KEYWORD(s) if s == "DISABLE_P" => 118, + TokenKind::KEYWORD(s) if s == "DISCARD" => 119, + TokenKind::KEYWORD(s) if s == "DISTINCT" => 120, + TokenKind::KEYWORD(s) if s == "DO" => 121, + TokenKind::KEYWORD(s) if s == "DOCUMENT_P" => 122, + TokenKind::KEYWORD(s) if s == "DOMAIN_P" => 123, + TokenKind::KEYWORD(s) if s == "DOUBLE_P" => 124, + TokenKind::KEYWORD(s) if s == "DROP" => 125, + TokenKind::RAW(s) if s == "$end" => 126, + TokenKind::RAW(s) if s == "." => 127, + TokenKind::KEYWORD(s) if s == "EACH" => 128, + TokenKind::KEYWORD(s) if s == "ELSE" => 129, + TokenKind::KEYWORD(s) if s == "EMPTY_P" => 130, + TokenKind::KEYWORD(s) if s == "ENABLE_P" => 131, + TokenKind::KEYWORD(s) if s == "ENCODING" => 132, + TokenKind::KEYWORD(s) if s == "ENCRYPTED" => 133, + TokenKind::KEYWORD(s) if s == "END_P" => 134, + TokenKind::KEYWORD(s) if s == "ENUM_P" => 135, + TokenKind::EQUALS_GREATER => 136, + TokenKind::KEYWORD(s) if s == "ERROR_P" => 137, + TokenKind::KEYWORD(s) if s == "ESCAPE" => 138, + TokenKind::KEYWORD(s) if s == "EVENT" => 139, + TokenKind::KEYWORD(s) if s == "EXCEPT" => 140, + TokenKind::KEYWORD(s) if s == "EXCLUDE" => 141, + TokenKind::KEYWORD(s) if s == "EXCLUDING" => 142, + TokenKind::KEYWORD(s) if s == "EXCLUSIVE" => 143, + TokenKind::KEYWORD(s) if s == "EXECUTE" => 144, + TokenKind::KEYWORD(s) if s == "EXISTS" => 145, + TokenKind::KEYWORD(s) if s == "EXPLAIN" => 146, + TokenKind::KEYWORD(s) if s == "EXPRESSION" => 147, + TokenKind::KEYWORD(s) if s == "EXTENSION" => 148, + TokenKind::KEYWORD(s) if s == "EXTERNAL" => 149, + TokenKind::KEYWORD(s) if s == "EXTRACT" => 150, + TokenKind::RAW(s) if s == "=" => 151, + TokenKind::KEYWORD(s) if s == "FALSE_P" => 152, + TokenKind::KEYWORD(s) if s == "FAMILY" => 153, + TokenKind::FCONST => 154, + TokenKind::KEYWORD(s) if s == "FETCH" => 155, + TokenKind::KEYWORD(s) if s == "FILTER" => 156, + TokenKind::KEYWORD(s) if s == "FINALIZE" => 157, + TokenKind::KEYWORD(s) if s == "FIRST_P" => 158, + TokenKind::KEYWORD(s) if s == "FLOAT_P" => 159, + TokenKind::KEYWORD(s) if s == "FOLLOWING" => 160, + TokenKind::KEYWORD(s) if s == "FOR" => 161, + TokenKind::KEYWORD(s) if s == "FORCE" => 162, + TokenKind::KEYWORD(s) if s == "FOREIGN" => 163, + TokenKind::KEYWORD(s) if s == "FORMAT" => 164, + TokenKind::KEYWORD(s) if s == "FORMAT_LA" => 165, + TokenKind::KEYWORD(s) if s == "FORWARD" => 166, + TokenKind::KEYWORD(s) if s == "FREEZE" => 167, + TokenKind::KEYWORD(s) if s == "FROM" => 168, + TokenKind::KEYWORD(s) if s == "FULL" => 169, + TokenKind::KEYWORD(s) if s == "FUNCTION" => 170, + TokenKind::KEYWORD(s) if s == "FUNCTIONS" => 171, + TokenKind::KEYWORD(s) if s == "GENERATED" => 172, + TokenKind::KEYWORD(s) if s == "GLOBAL" => 173, + TokenKind::KEYWORD(s) if s == "GRANT" => 174, + TokenKind::KEYWORD(s) if s == "GRANTED" => 175, + TokenKind::GREATER_EQUALS => 176, + TokenKind::KEYWORD(s) if s == "GREATEST" => 177, + TokenKind::KEYWORD(s) if s == "GROUPING" => 178, + TokenKind::KEYWORD(s) if s == "GROUPS" => 179, + TokenKind::KEYWORD(s) if s == "GROUP_P" => 180, + TokenKind::RAW(s) if s == ">" => 181, + TokenKind::KEYWORD(s) if s == "HANDLER" => 182, + TokenKind::KEYWORD(s) if s == "HAVING" => 183, + TokenKind::KEYWORD(s) if s == "HEADER_P" => 184, + TokenKind::KEYWORD(s) if s == "HOLD" => 185, + TokenKind::KEYWORD(s) if s == "HOUR_P" => 186, + TokenKind::ICONST => 187, + TokenKind::IDENT => 188, + TokenKind::KEYWORD(s) if s == "IDENTITY_P" => 189, + TokenKind::KEYWORD(s) if s == "IF_P" => 190, + TokenKind::KEYWORD(s) if s == "ILIKE" => 191, + TokenKind::KEYWORD(s) if s == "IMMEDIATE" => 192, + TokenKind::KEYWORD(s) if s == "IMMUTABLE" => 193, + TokenKind::KEYWORD(s) if s == "IMPLICIT_P" => 194, + TokenKind::KEYWORD(s) if s == "IMPORT_P" => 195, + TokenKind::KEYWORD(s) if s == "INCLUDE" => 196, + TokenKind::KEYWORD(s) if s == "INCLUDING" => 197, + TokenKind::KEYWORD(s) if s == "INCREMENT" => 198, + TokenKind::KEYWORD(s) if s == "INDENT" => 199, + TokenKind::KEYWORD(s) if s == "INDEX" => 200, + TokenKind::KEYWORD(s) if s == "INDEXES" => 201, + TokenKind::KEYWORD(s) if s == "INHERIT" => 202, + TokenKind::KEYWORD(s) if s == "INHERITS" => 203, + TokenKind::KEYWORD(s) if s == "INITIALLY" => 204, + TokenKind::KEYWORD(s) if s == "INLINE_P" => 205, + TokenKind::KEYWORD(s) if s == "INNER_P" => 206, + TokenKind::KEYWORD(s) if s == "INOUT" => 207, + TokenKind::KEYWORD(s) if s == "INPUT_P" => 208, + TokenKind::KEYWORD(s) if s == "INSENSITIVE" => 209, + TokenKind::KEYWORD(s) if s == "INSERT" => 210, + TokenKind::KEYWORD(s) if s == "INSTEAD" => 211, + TokenKind::KEYWORD(s) if s == "INTEGER" => 212, + TokenKind::KEYWORD(s) if s == "INTERSECT" => 213, + TokenKind::KEYWORD(s) if s == "INTERVAL" => 214, + TokenKind::KEYWORD(s) if s == "INTO" => 215, + TokenKind::KEYWORD(s) if s == "INT_P" => 216, + TokenKind::KEYWORD(s) if s == "INVOKER" => 217, + TokenKind::KEYWORD(s) if s == "IN_P" => 218, + TokenKind::KEYWORD(s) if s == "IS" => 219, + TokenKind::KEYWORD(s) if s == "ISNULL" => 220, + TokenKind::KEYWORD(s) if s == "ISOLATION" => 221, + TokenKind::KEYWORD(s) if s == "JOIN" => 222, + TokenKind::KEYWORD(s) if s == "JSON" => 223, + TokenKind::KEYWORD(s) if s == "JSON_ARRAY" => 224, + TokenKind::KEYWORD(s) if s == "JSON_ARRAYAGG" => 225, + TokenKind::KEYWORD(s) if s == "JSON_EXISTS" => 226, + TokenKind::KEYWORD(s) if s == "JSON_OBJECT" => 227, + TokenKind::KEYWORD(s) if s == "JSON_OBJECTAGG" => 228, + TokenKind::KEYWORD(s) if s == "JSON_QUERY" => 229, + TokenKind::KEYWORD(s) if s == "JSON_SCALAR" => 230, + TokenKind::KEYWORD(s) if s == "JSON_SERIALIZE" => 231, + TokenKind::KEYWORD(s) if s == "JSON_TABLE" => 232, + TokenKind::KEYWORD(s) if s == "JSON_VALUE" => 233, + TokenKind::KEYWORD(s) if s == "KEEP" => 234, + TokenKind::KEYWORD(s) if s == "KEY" => 235, + TokenKind::KEYWORD(s) if s == "KEYS" => 236, + TokenKind::KEYWORD(s) if s == "LABEL" => 237, + TokenKind::KEYWORD(s) if s == "LANGUAGE" => 238, + TokenKind::KEYWORD(s) if s == "LARGE_P" => 239, + TokenKind::KEYWORD(s) if s == "LAST_P" => 240, + TokenKind::KEYWORD(s) if s == "LATERAL_P" => 241, + TokenKind::RAW(s) if s == "[" => 242, + TokenKind::KEYWORD(s) if s == "LEADING" => 243, + TokenKind::KEYWORD(s) if s == "LEAKPROOF" => 244, + TokenKind::KEYWORD(s) if s == "LEAST" => 245, + TokenKind::KEYWORD(s) if s == "LEFT" => 246, + TokenKind::LESS_EQUALS => 247, + TokenKind::KEYWORD(s) if s == "LEVEL" => 248, + TokenKind::KEYWORD(s) if s == "LIKE" => 249, + TokenKind::KEYWORD(s) if s == "LIMIT" => 250, + TokenKind::KEYWORD(s) if s == "LISTEN" => 251, + TokenKind::KEYWORD(s) if s == "LOAD" => 252, + TokenKind::KEYWORD(s) if s == "LOCAL" => 253, + TokenKind::KEYWORD(s) if s == "LOCALTIME" => 254, + TokenKind::KEYWORD(s) if s == "LOCALTIMESTAMP" => 255, + TokenKind::KEYWORD(s) if s == "LOCATION" => 256, + TokenKind::KEYWORD(s) if s == "LOCKED" => 257, + TokenKind::KEYWORD(s) if s == "LOCK_P" => 258, + TokenKind::KEYWORD(s) if s == "LOGGED" => 259, + TokenKind::RAW(s) if s == "(" => 260, + TokenKind::RAW(s) if s == "<" => 261, + TokenKind::KEYWORD(s) if s == "MAPPING" => 262, + TokenKind::KEYWORD(s) if s == "MATCH" => 263, + TokenKind::KEYWORD(s) if s == "MATCHED" => 264, + TokenKind::KEYWORD(s) if s == "MATERIALIZED" => 265, + TokenKind::KEYWORD(s) if s == "MAXVALUE" => 266, + TokenKind::KEYWORD(s) if s == "MERGE" => 267, + TokenKind::KEYWORD(s) if s == "MERGE_ACTION" => 268, + TokenKind::KEYWORD(s) if s == "METHOD" => 269, + TokenKind::KEYWORD(s) if s == "MINUTE_P" => 270, + TokenKind::KEYWORD(s) if s == "MINVALUE" => 271, + TokenKind::KEYWORD(s) if s == "MODE" => 272, + TokenKind::KEYWORD(s) if s == "MODE_PLPGSQL_ASSIGN1" => 273, + TokenKind::KEYWORD(s) if s == "MODE_PLPGSQL_ASSIGN2" => 274, + TokenKind::KEYWORD(s) if s == "MODE_PLPGSQL_ASSIGN3" => 275, + TokenKind::KEYWORD(s) if s == "MODE_PLPGSQL_EXPR" => 276, + TokenKind::KEYWORD(s) if s == "MODE_TYPE_NAME" => 277, + TokenKind::KEYWORD(s) if s == "MONTH_P" => 278, + TokenKind::KEYWORD(s) if s == "MOVE" => 279, + TokenKind::RAW(s) if s == "-" => 280, + TokenKind::KEYWORD(s) if s == "NAMES" => 281, + TokenKind::KEYWORD(s) if s == "NAME_P" => 282, + TokenKind::KEYWORD(s) if s == "NATIONAL" => 283, + TokenKind::KEYWORD(s) if s == "NATURAL" => 284, + TokenKind::KEYWORD(s) if s == "NCHAR" => 285, + TokenKind::KEYWORD(s) if s == "NESTED" => 286, + TokenKind::KEYWORD(s) if s == "NEW" => 287, + TokenKind::KEYWORD(s) if s == "NEXT" => 288, + TokenKind::KEYWORD(s) if s == "NFC" => 289, + TokenKind::KEYWORD(s) if s == "NFD" => 290, + TokenKind::KEYWORD(s) if s == "NFKC" => 291, + TokenKind::KEYWORD(s) if s == "NFKD" => 292, + TokenKind::KEYWORD(s) if s == "NO" => 293, + TokenKind::KEYWORD(s) if s == "NONE" => 294, + TokenKind::KEYWORD(s) if s == "NORMALIZE" => 295, + TokenKind::KEYWORD(s) if s == "NORMALIZED" => 296, + TokenKind::KEYWORD(s) if s == "NOT" => 297, + TokenKind::KEYWORD(s) if s == "NOTHING" => 298, + TokenKind::KEYWORD(s) if s == "NOTIFY" => 299, + TokenKind::KEYWORD(s) if s == "NOTNULL" => 300, + TokenKind::NOT_EQUALS => 301, + TokenKind::KEYWORD(s) if s == "NOT_LA" => 302, + TokenKind::KEYWORD(s) if s == "NOWAIT" => 303, + TokenKind::KEYWORD(s) if s == "NULLIF" => 304, + TokenKind::KEYWORD(s) if s == "NULLS_LA" => 305, + TokenKind::KEYWORD(s) if s == "NULLS_P" => 306, + TokenKind::KEYWORD(s) if s == "NULL_P" => 307, + TokenKind::KEYWORD(s) if s == "NUMERIC" => 308, + TokenKind::KEYWORD(s) if s == "OBJECT_P" => 309, + TokenKind::KEYWORD(s) if s == "OF" => 310, + TokenKind::KEYWORD(s) if s == "OFF" => 311, + TokenKind::KEYWORD(s) if s == "OFFSET" => 312, + TokenKind::KEYWORD(s) if s == "OIDS" => 313, + TokenKind::KEYWORD(s) if s == "OLD" => 314, + TokenKind::KEYWORD(s) if s == "OMIT" => 315, + TokenKind::KEYWORD(s) if s == "ON" => 316, + TokenKind::KEYWORD(s) if s == "ONLY" => 317, + TokenKind::KEYWORD(s) if s == "OPERATOR" => 318, + TokenKind::KEYWORD(s) if s == "OPTION" => 319, + TokenKind::KEYWORD(s) if s == "OPTIONS" => 320, + TokenKind::KEYWORD(s) if s == "OR" => 321, + TokenKind::KEYWORD(s) if s == "ORDER" => 322, + TokenKind::KEYWORD(s) if s == "ORDINALITY" => 323, + TokenKind::KEYWORD(s) if s == "OTHERS" => 324, + TokenKind::KEYWORD(s) if s == "OUTER_P" => 325, + TokenKind::KEYWORD(s) if s == "OUT_P" => 326, + TokenKind::KEYWORD(s) if s == "OVER" => 327, + TokenKind::KEYWORD(s) if s == "OVERLAPS" => 328, + TokenKind::KEYWORD(s) if s == "OVERLAY" => 329, + TokenKind::KEYWORD(s) if s == "OVERRIDING" => 330, + TokenKind::KEYWORD(s) if s == "OWNED" => 331, + TokenKind::KEYWORD(s) if s == "OWNER" => 332, + TokenKind::Op => 333, + TokenKind::KEYWORD(s) if s == "PARALLEL" => 334, + TokenKind::PARAM => 335, + TokenKind::KEYWORD(s) if s == "PARAMETER" => 336, + TokenKind::KEYWORD(s) if s == "PARSER" => 337, + TokenKind::KEYWORD(s) if s == "PARTIAL" => 338, + TokenKind::KEYWORD(s) if s == "PARTITION" => 339, + TokenKind::KEYWORD(s) if s == "PASSING" => 340, + TokenKind::KEYWORD(s) if s == "PASSWORD" => 341, + TokenKind::KEYWORD(s) if s == "PATH" => 342, + TokenKind::KEYWORD(s) if s == "PLACING" => 343, + TokenKind::KEYWORD(s) if s == "PLAN" => 344, + TokenKind::KEYWORD(s) if s == "PLANS" => 345, + TokenKind::KEYWORD(s) if s == "POLICY" => 346, + TokenKind::KEYWORD(s) if s == "POSITION" => 347, + TokenKind::KEYWORD(s) if s == "PRECEDING" => 348, + TokenKind::KEYWORD(s) if s == "PRECISION" => 349, + TokenKind::KEYWORD(s) if s == "PREPARE" => 350, + TokenKind::KEYWORD(s) if s == "PREPARED" => 351, + TokenKind::KEYWORD(s) if s == "PRESERVE" => 352, + TokenKind::KEYWORD(s) if s == "PRIMARY" => 353, + TokenKind::KEYWORD(s) if s == "PRIOR" => 354, + TokenKind::KEYWORD(s) if s == "PRIVILEGES" => 355, + TokenKind::KEYWORD(s) if s == "PROCEDURAL" => 356, + TokenKind::KEYWORD(s) if s == "PROCEDURE" => 357, + TokenKind::KEYWORD(s) if s == "PROCEDURES" => 358, + TokenKind::KEYWORD(s) if s == "PROGRAM" => 359, + TokenKind::KEYWORD(s) if s == "PUBLICATION" => 360, + TokenKind::RAW(s) if s == "%" => 361, + TokenKind::RAW(s) if s == "+" => 362, + TokenKind::KEYWORD(s) if s == "QUOTE" => 363, + TokenKind::KEYWORD(s) if s == "QUOTES" => 364, + TokenKind::KEYWORD(s) if s == "RANGE" => 365, + TokenKind::RAW(s) if s == "]" => 366, + TokenKind::KEYWORD(s) if s == "READ" => 367, + TokenKind::KEYWORD(s) if s == "REAL" => 368, + TokenKind::KEYWORD(s) if s == "REASSIGN" => 369, + TokenKind::KEYWORD(s) if s == "RECHECK" => 370, + TokenKind::KEYWORD(s) if s == "RECURSIVE" => 371, + TokenKind::KEYWORD(s) if s == "REFERENCES" => 372, + TokenKind::KEYWORD(s) if s == "REFERENCING" => 373, + TokenKind::KEYWORD(s) if s == "REFRESH" => 374, + TokenKind::KEYWORD(s) if s == "REF_P" => 375, + TokenKind::KEYWORD(s) if s == "REINDEX" => 376, + TokenKind::KEYWORD(s) if s == "RELATIVE_P" => 377, + TokenKind::KEYWORD(s) if s == "RELEASE" => 378, + TokenKind::KEYWORD(s) if s == "RENAME" => 379, + TokenKind::KEYWORD(s) if s == "REPEATABLE" => 380, + TokenKind::KEYWORD(s) if s == "REPLACE" => 381, + TokenKind::KEYWORD(s) if s == "REPLICA" => 382, + TokenKind::KEYWORD(s) if s == "RESET" => 383, + TokenKind::KEYWORD(s) if s == "RESTART" => 384, + TokenKind::KEYWORD(s) if s == "RESTRICT" => 385, + TokenKind::KEYWORD(s) if s == "RETURN" => 386, + TokenKind::KEYWORD(s) if s == "RETURNING" => 387, + TokenKind::KEYWORD(s) if s == "RETURNS" => 388, + TokenKind::KEYWORD(s) if s == "REVOKE" => 389, + TokenKind::KEYWORD(s) if s == "RIGHT" => 390, + TokenKind::KEYWORD(s) if s == "ROLE" => 391, + TokenKind::KEYWORD(s) if s == "ROLLBACK" => 392, + TokenKind::KEYWORD(s) if s == "ROLLUP" => 393, + TokenKind::KEYWORD(s) if s == "ROUTINE" => 394, + TokenKind::KEYWORD(s) if s == "ROUTINES" => 395, + TokenKind::KEYWORD(s) if s == "ROW" => 396, + TokenKind::KEYWORD(s) if s == "ROWS" => 397, + TokenKind::RAW(s) if s == ")" => 398, + TokenKind::KEYWORD(s) if s == "RULE" => 399, + TokenKind::KEYWORD(s) if s == "SAVEPOINT" => 400, + TokenKind::KEYWORD(s) if s == "SCALAR" => 401, + TokenKind::KEYWORD(s) if s == "SCHEMA" => 402, + TokenKind::KEYWORD(s) if s == "SCHEMAS" => 403, + TokenKind::SCONST => 404, + TokenKind::KEYWORD(s) if s == "SCROLL" => 405, + TokenKind::KEYWORD(s) if s == "SEARCH" => 406, + TokenKind::KEYWORD(s) if s == "SECOND_P" => 407, + TokenKind::KEYWORD(s) if s == "SECURITY" => 408, + TokenKind::KEYWORD(s) if s == "SELECT" => 409, + TokenKind::KEYWORD(s) if s == "SEQUENCE" => 410, + TokenKind::KEYWORD(s) if s == "SEQUENCES" => 411, + TokenKind::KEYWORD(s) if s == "SERIALIZABLE" => 412, + TokenKind::KEYWORD(s) if s == "SERVER" => 413, + TokenKind::KEYWORD(s) if s == "SESSION" => 414, + TokenKind::KEYWORD(s) if s == "SESSION_USER" => 415, + TokenKind::KEYWORD(s) if s == "SET" => 416, + TokenKind::KEYWORD(s) if s == "SETOF" => 417, + TokenKind::KEYWORD(s) if s == "SETS" => 418, + TokenKind::KEYWORD(s) if s == "SHARE" => 419, + TokenKind::KEYWORD(s) if s == "SHOW" => 420, + TokenKind::KEYWORD(s) if s == "SIMILAR" => 421, + TokenKind::KEYWORD(s) if s == "SIMPLE" => 422, + TokenKind::KEYWORD(s) if s == "SKIP" => 423, + TokenKind::KEYWORD(s) if s == "SMALLINT" => 424, + TokenKind::KEYWORD(s) if s == "SNAPSHOT" => 425, + TokenKind::KEYWORD(s) if s == "SOME" => 426, + TokenKind::KEYWORD(s) if s == "SOURCE" => 427, + TokenKind::KEYWORD(s) if s == "SQL_P" => 428, + TokenKind::KEYWORD(s) if s == "STABLE" => 429, + TokenKind::KEYWORD(s) if s == "STANDALONE_P" => 430, + TokenKind::KEYWORD(s) if s == "START" => 431, + TokenKind::KEYWORD(s) if s == "STATEMENT" => 432, + TokenKind::KEYWORD(s) if s == "STATISTICS" => 433, + TokenKind::KEYWORD(s) if s == "STDIN" => 434, + TokenKind::KEYWORD(s) if s == "STDOUT" => 435, + TokenKind::KEYWORD(s) if s == "STORAGE" => 436, + TokenKind::KEYWORD(s) if s == "STORED" => 437, + TokenKind::KEYWORD(s) if s == "STRICT_P" => 438, + TokenKind::KEYWORD(s) if s == "STRING_P" => 439, + TokenKind::KEYWORD(s) if s == "STRIP_P" => 440, + TokenKind::KEYWORD(s) if s == "SUBSCRIPTION" => 441, + TokenKind::KEYWORD(s) if s == "SUBSTRING" => 442, + TokenKind::KEYWORD(s) if s == "SUPPORT" => 443, + TokenKind::KEYWORD(s) if s == "SYMMETRIC" => 444, + TokenKind::KEYWORD(s) if s == "SYSID" => 445, + TokenKind::KEYWORD(s) if s == "SYSTEM_P" => 446, + TokenKind::KEYWORD(s) if s == "SYSTEM_USER" => 447, + TokenKind::RAW(s) if s == ";" => 448, + TokenKind::RAW(s) if s == "/" => 449, + TokenKind::RAW(s) if s == "*" => 450, + TokenKind::KEYWORD(s) if s == "TABLE" => 451, + TokenKind::KEYWORD(s) if s == "TABLES" => 452, + TokenKind::KEYWORD(s) if s == "TABLESAMPLE" => 453, + TokenKind::KEYWORD(s) if s == "TABLESPACE" => 454, + TokenKind::KEYWORD(s) if s == "TARGET" => 455, + TokenKind::KEYWORD(s) if s == "TEMP" => 456, + TokenKind::KEYWORD(s) if s == "TEMPLATE" => 457, + TokenKind::KEYWORD(s) if s == "TEMPORARY" => 458, + TokenKind::KEYWORD(s) if s == "TEXT_P" => 459, + TokenKind::KEYWORD(s) if s == "THEN" => 460, + TokenKind::KEYWORD(s) if s == "TIES" => 461, + TokenKind::KEYWORD(s) if s == "TIME" => 462, + TokenKind::KEYWORD(s) if s == "TIMESTAMP" => 463, + TokenKind::KEYWORD(s) if s == "TO" => 464, + TokenKind::KEYWORD(s) if s == "TRAILING" => 465, + TokenKind::KEYWORD(s) if s == "TRANSACTION" => 466, + TokenKind::KEYWORD(s) if s == "TRANSFORM" => 467, + TokenKind::KEYWORD(s) if s == "TREAT" => 468, + TokenKind::KEYWORD(s) if s == "TRIGGER" => 469, + TokenKind::KEYWORD(s) if s == "TRIM" => 470, + TokenKind::KEYWORD(s) if s == "TRUE_P" => 471, + TokenKind::KEYWORD(s) if s == "TRUNCATE" => 472, + TokenKind::KEYWORD(s) if s == "TRUSTED" => 473, + TokenKind::TYPECAST => 474, + TokenKind::KEYWORD(s) if s == "TYPES_P" => 475, + TokenKind::KEYWORD(s) if s == "TYPE_P" => 476, + TokenKind::KEYWORD(s) if s == "UESCAPE" => 477, + TokenKind::KEYWORD(s) if s == "UMINUS" => 478, + TokenKind::KEYWORD(s) if s == "UNBOUNDED" => 479, + TokenKind::KEYWORD(s) if s == "UNCOMMITTED" => 480, + TokenKind::KEYWORD(s) if s == "UNCONDITIONAL" => 481, + TokenKind::KEYWORD(s) if s == "UNENCRYPTED" => 482, + TokenKind::KEYWORD(s) if s == "UNION" => 483, + TokenKind::KEYWORD(s) if s == "UNIQUE" => 484, + TokenKind::KEYWORD(s) if s == "UNKNOWN" => 485, + TokenKind::KEYWORD(s) if s == "UNLISTEN" => 486, + TokenKind::KEYWORD(s) if s == "UNLOGGED" => 487, + TokenKind::KEYWORD(s) if s == "UNTIL" => 488, + TokenKind::KEYWORD(s) if s == "UPDATE" => 489, + TokenKind::KEYWORD(s) if s == "USER" => 490, + TokenKind::KEYWORD(s) if s == "USING" => 491, + TokenKind::KEYWORD(s) if s == "VACUUM" => 492, + TokenKind::KEYWORD(s) if s == "VALID" => 493, + TokenKind::KEYWORD(s) if s == "VALIDATE" => 494, + TokenKind::KEYWORD(s) if s == "VALIDATOR" => 495, + TokenKind::KEYWORD(s) if s == "VALUES" => 496, + TokenKind::KEYWORD(s) if s == "VALUE_P" => 497, + TokenKind::KEYWORD(s) if s == "VARCHAR" => 498, + TokenKind::KEYWORD(s) if s == "VARIADIC" => 499, + TokenKind::KEYWORD(s) if s == "VARYING" => 500, + TokenKind::KEYWORD(s) if s == "VERBOSE" => 501, + TokenKind::KEYWORD(s) if s == "VERSION_P" => 502, + TokenKind::KEYWORD(s) if s == "VIEW" => 503, + TokenKind::KEYWORD(s) if s == "VIEWS" => 504, + TokenKind::KEYWORD(s) if s == "VOLATILE" => 505, + TokenKind::KEYWORD(s) if s == "WHEN" => 506, + TokenKind::KEYWORD(s) if s == "WHERE" => 507, + TokenKind::KEYWORD(s) if s == "WHITESPACE_P" => 508, + TokenKind::KEYWORD(s) if s == "WINDOW" => 509, + TokenKind::KEYWORD(s) if s == "WITH" => 510, + TokenKind::KEYWORD(s) if s == "WITHIN" => 511, + TokenKind::KEYWORD(s) if s == "WITHOUT" => 512, + TokenKind::KEYWORD(s) if s == "WITHOUT_LA" => 513, + TokenKind::KEYWORD(s) if s == "WITH_LA" => 514, + TokenKind::KEYWORD(s) if s == "WORK" => 515, + TokenKind::KEYWORD(s) if s == "WRAPPER" => 516, + TokenKind::KEYWORD(s) if s == "WRITE" => 517, + TokenKind::XCONST => 518, + TokenKind::KEYWORD(s) if s == "XMLATTRIBUTES" => 519, + TokenKind::KEYWORD(s) if s == "XMLCONCAT" => 520, + TokenKind::KEYWORD(s) if s == "XMLELEMENT" => 521, + TokenKind::KEYWORD(s) if s == "XMLEXISTS" => 522, + TokenKind::KEYWORD(s) if s == "XMLFOREST" => 523, + TokenKind::KEYWORD(s) if s == "XMLNAMESPACES" => 524, + TokenKind::KEYWORD(s) if s == "XMLPARSE" => 525, + TokenKind::KEYWORD(s) if s == "XMLPI" => 526, + TokenKind::KEYWORD(s) if s == "XMLROOT" => 527, + TokenKind::KEYWORD(s) if s == "XMLSERIALIZE" => 528, + TokenKind::KEYWORD(s) if s == "XMLTABLE" => 529, + TokenKind::KEYWORD(s) if s == "XML_P" => 530, + TokenKind::KEYWORD(s) if s == "YEAR_P" => 531, + TokenKind::KEYWORD(s) if s == "YES_P" => 532, + TokenKind::KEYWORD(s) if s == "ZONE" => 533, + TokenKind::C_COMMENT => 1262, + TokenKind::SQL_COMMENT => 1263, _ => unreachable!(), } } @@ -625,648 +33640,670 @@ pub(crate) fn rule_name_to_component_id(name: &str) -> u32 { "reloption_elem" => 61, "alter_identity_column_option_list" => 62, "alter_identity_column_option" => 63, - "PartitionBoundSpec" => 64, - "hash_partbound_elem" => 65, - "hash_partbound" => 66, - "AlterCompositeTypeStmt" => 67, - "alter_type_cmds" => 68, - "alter_type_cmd" => 69, - "ClosePortalStmt" => 70, - "CopyStmt" => 71, - "copy_from" => 72, - "opt_program" => 73, - "copy_file_name" => 74, - "copy_options" => 75, - "copy_opt_list" => 76, - "copy_opt_item" => 77, - "opt_binary" => 78, - "copy_delimiter" => 79, - "opt_using" => 80, - "copy_generic_opt_list" => 81, - "copy_generic_opt_elem" => 82, - "copy_generic_opt_arg" => 83, - "copy_generic_opt_arg_list" => 84, - "copy_generic_opt_arg_list_item" => 85, - "CreateStmt" => 86, - "OptTemp" => 87, - "OptTableElementList" => 88, - "OptTypedTableElementList" => 89, - "TableElementList" => 90, - "TypedTableElementList" => 91, - "TableElement" => 92, - "TypedTableElement" => 93, - "columnDef" => 94, - "columnOptions" => 95, - "column_compression" => 96, - "opt_column_compression" => 97, - "column_storage" => 98, - "opt_column_storage" => 99, - "ColQualList" => 100, - "ColConstraint" => 101, - "ColConstraintElem" => 102, - "opt_unique_null_treatment" => 103, - "generated_when" => 104, - "ConstraintAttr" => 105, - "TableLikeClause" => 106, - "TableLikeOptionList" => 107, - "TableLikeOption" => 108, - "TableConstraint" => 109, - "ConstraintElem" => 110, - "opt_no_inherit" => 111, - "opt_column_list" => 112, - "columnList" => 113, - "columnElem" => 114, - "opt_c_include" => 115, - "key_match" => 116, - "ExclusionConstraintList" => 117, - "ExclusionConstraintElem" => 118, - "OptWhereClause" => 119, - "key_actions" => 120, - "key_update" => 121, - "key_delete" => 122, - "key_action" => 123, - "OptInherit" => 124, - "OptPartitionSpec" => 125, - "PartitionSpec" => 126, - "part_params" => 127, - "part_elem" => 128, - "table_access_method_clause" => 129, - "OptWith" => 130, - "OnCommitOption" => 131, - "OptTableSpace" => 132, - "OptConsTableSpace" => 133, - "ExistingIndex" => 134, - "CreateStatsStmt" => 135, - "stats_params" => 136, - "stats_param" => 137, - "AlterStatsStmt" => 138, - "CreateAsStmt" => 139, - "create_as_target" => 140, - "opt_with_data" => 141, - "CreateMatViewStmt" => 142, - "create_mv_target" => 143, - "OptNoLog" => 144, - "RefreshMatViewStmt" => 145, - "CreateSeqStmt" => 146, - "AlterSeqStmt" => 147, - "OptSeqOptList" => 148, - "OptParenthesizedSeqOptList" => 149, - "SeqOptList" => 150, - "SeqOptElem" => 151, - "opt_by" => 152, - "NumericOnly" => 153, - "NumericOnly_list" => 154, - "CreatePLangStmt" => 155, - "opt_trusted" => 156, - "handler_name" => 157, - "opt_inline_handler" => 158, - "validator_clause" => 159, - "opt_validator" => 160, - "opt_procedural" => 161, - "CreateTableSpaceStmt" => 162, - "OptTableSpaceOwner" => 163, - "DropTableSpaceStmt" => 164, - "CreateExtensionStmt" => 165, - "create_extension_opt_list" => 166, - "create_extension_opt_item" => 167, - "AlterExtensionStmt" => 168, - "alter_extension_opt_list" => 169, - "alter_extension_opt_item" => 170, - "AlterExtensionContentsStmt" => 171, - "CreateFdwStmt" => 172, - "fdw_option" => 173, - "fdw_options" => 174, - "opt_fdw_options" => 175, - "AlterFdwStmt" => 176, - "create_generic_options" => 177, - "generic_option_list" => 178, - "alter_generic_options" => 179, - "alter_generic_option_list" => 180, - "alter_generic_option_elem" => 181, - "generic_option_elem" => 182, - "generic_option_name" => 183, - "generic_option_arg" => 184, - "CreateForeignServerStmt" => 185, - "opt_type" => 186, - "foreign_server_version" => 187, - "opt_foreign_server_version" => 188, - "AlterForeignServerStmt" => 189, - "CreateForeignTableStmt" => 190, - "ImportForeignSchemaStmt" => 191, - "import_qualification_type" => 192, - "import_qualification" => 193, - "CreateUserMappingStmt" => 194, - "auth_ident" => 195, - "DropUserMappingStmt" => 196, - "AlterUserMappingStmt" => 197, - "CreatePolicyStmt" => 198, - "AlterPolicyStmt" => 199, - "RowSecurityOptionalExpr" => 200, - "RowSecurityOptionalWithCheck" => 201, - "RowSecurityDefaultToRole" => 202, - "RowSecurityOptionalToRole" => 203, - "RowSecurityDefaultPermissive" => 204, - "RowSecurityDefaultForCmd" => 205, - "row_security_cmd" => 206, - "CreateAmStmt" => 207, - "am_type" => 208, - "CreateTrigStmt" => 209, - "TriggerActionTime" => 210, - "TriggerEvents" => 211, - "TriggerOneEvent" => 212, - "TriggerReferencing" => 213, - "TriggerTransitions" => 214, - "TriggerTransition" => 215, - "TransitionOldOrNew" => 216, - "TransitionRowOrTable" => 217, - "TransitionRelName" => 218, - "TriggerForSpec" => 219, - "TriggerForOptEach" => 220, - "TriggerForType" => 221, - "TriggerWhen" => 222, - "FUNCTION_or_PROCEDURE" => 223, - "TriggerFuncArgs" => 224, - "TriggerFuncArg" => 225, - "OptConstrFromTable" => 226, - "ConstraintAttributeSpec" => 227, - "ConstraintAttributeElem" => 228, - "CreateEventTrigStmt" => 229, - "event_trigger_when_list" => 230, - "event_trigger_when_item" => 231, - "event_trigger_value_list" => 232, - "AlterEventTrigStmt" => 233, - "enable_trigger" => 234, - "CreateAssertionStmt" => 235, - "DefineStmt" => 236, - "definition" => 237, - "def_list" => 238, - "def_elem" => 239, - "def_arg" => 240, - "old_aggr_definition" => 241, - "old_aggr_list" => 242, - "old_aggr_elem" => 243, - "opt_enum_val_list" => 244, - "enum_val_list" => 245, - "AlterEnumStmt" => 246, - "opt_if_not_exists" => 247, - "CreateOpClassStmt" => 248, - "opclass_item_list" => 249, - "opclass_item" => 250, - "opt_default" => 251, - "opt_opfamily" => 252, - "opclass_purpose" => 253, - "opt_recheck" => 254, - "CreateOpFamilyStmt" => 255, - "AlterOpFamilyStmt" => 256, - "opclass_drop_list" => 257, - "opclass_drop" => 258, - "DropOpClassStmt" => 259, - "DropOpFamilyStmt" => 260, - "DropOwnedStmt" => 261, - "ReassignOwnedStmt" => 262, - "DropStmt" => 263, - "object_type_any_name" => 264, - "object_type_name" => 265, - "drop_type_name" => 266, - "object_type_name_on_any_name" => 267, - "any_name_list" => 268, - "any_name" => 269, - "attrs" => 270, - "type_name_list" => 271, - "TruncateStmt" => 272, - "opt_restart_seqs" => 273, - "CommentStmt" => 274, - "comment_text" => 275, - "SecLabelStmt" => 276, - "opt_provider" => 277, - "security_label" => 278, - "FetchStmt" => 279, - "fetch_args" => 280, - "from_in" => 281, - "opt_from_in" => 282, - "GrantStmt" => 283, - "RevokeStmt" => 284, - "privileges" => 285, - "privilege_list" => 286, - "privilege" => 287, - "parameter_name_list" => 288, - "parameter_name" => 289, - "privilege_target" => 290, - "grantee_list" => 291, - "grantee" => 292, - "opt_grant_grant_option" => 293, - "GrantRoleStmt" => 294, - "RevokeRoleStmt" => 295, - "grant_role_opt_list" => 296, - "grant_role_opt" => 297, - "grant_role_opt_value" => 298, - "opt_granted_by" => 299, - "AlterDefaultPrivilegesStmt" => 300, - "DefACLOptionList" => 301, - "DefACLOption" => 302, - "DefACLAction" => 303, - "defacl_privilege_target" => 304, - "IndexStmt" => 305, - "opt_unique" => 306, - "access_method_clause" => 307, - "index_params" => 308, - "index_elem_options" => 309, - "index_elem" => 310, - "opt_include" => 311, - "index_including_params" => 312, - "opt_collate" => 313, - "opt_asc_desc" => 314, - "opt_nulls_order" => 315, - "CreateFunctionStmt" => 316, - "opt_or_replace" => 317, - "func_args" => 318, - "func_args_list" => 319, - "function_with_argtypes_list" => 320, - "function_with_argtypes" => 321, - "func_args_with_defaults" => 322, - "func_args_with_defaults_list" => 323, - "func_arg" => 324, - "arg_class" => 325, - "param_name" => 326, - "func_return" => 327, - "func_type" => 328, - "func_arg_with_default" => 329, - "aggr_arg" => 330, - "aggr_args" => 331, - "aggr_args_list" => 332, - "aggregate_with_argtypes" => 333, - "aggregate_with_argtypes_list" => 334, - "opt_createfunc_opt_list" => 335, - "createfunc_opt_list" => 336, - "common_func_opt_item" => 337, - "createfunc_opt_item" => 338, - "func_as" => 339, - "ReturnStmt" => 340, - "opt_routine_body" => 341, - "routine_body_stmt_list" => 342, - "routine_body_stmt" => 343, - "transform_type_list" => 344, - "opt_definition" => 345, - "table_func_column" => 346, - "table_func_column_list" => 347, - "AlterFunctionStmt" => 348, - "alterfunc_opt_list" => 349, - "opt_restrict" => 350, - "RemoveFuncStmt" => 351, - "RemoveAggrStmt" => 352, - "RemoveOperStmt" => 353, - "oper_argtypes" => 354, - "any_operator" => 355, - "operator_with_argtypes_list" => 356, - "operator_with_argtypes" => 357, - "DoStmt" => 358, - "dostmt_opt_list" => 359, - "dostmt_opt_item" => 360, - "CreateCastStmt" => 361, - "cast_context" => 362, - "DropCastStmt" => 363, - "opt_if_exists" => 364, - "CreateTransformStmt" => 365, - "transform_element_list" => 366, - "DropTransformStmt" => 367, - "ReindexStmt" => 368, - "reindex_target_relation" => 369, - "reindex_target_all" => 370, - "opt_reindex_option_list" => 371, - "AlterTblSpcStmt" => 372, - "RenameStmt" => 373, - "opt_column" => 374, - "opt_set_data" => 375, - "AlterObjectDependsStmt" => 376, - "opt_no" => 377, - "AlterObjectSchemaStmt" => 378, - "AlterOperatorStmt" => 379, - "operator_def_list" => 380, - "operator_def_elem" => 381, - "operator_def_arg" => 382, - "AlterTypeStmt" => 383, - "AlterOwnerStmt" => 384, - "CreatePublicationStmt" => 385, - "PublicationObjSpec" => 386, - "pub_obj_list" => 387, - "AlterPublicationStmt" => 388, - "CreateSubscriptionStmt" => 389, - "AlterSubscriptionStmt" => 390, - "DropSubscriptionStmt" => 391, - "RuleStmt" => 392, - "RuleActionList" => 393, - "RuleActionMulti" => 394, - "RuleActionStmt" => 395, - "RuleActionStmtOrEmpty" => 396, - "event" => 397, - "opt_instead" => 398, - "NotifyStmt" => 399, - "notify_payload" => 400, - "ListenStmt" => 401, - "UnlistenStmt" => 402, - "TransactionStmt" => 403, - "TransactionStmtLegacy" => 404, - "opt_transaction" => 405, - "transaction_mode_item" => 406, - "transaction_mode_list" => 407, - "transaction_mode_list_or_empty" => 408, - "opt_transaction_chain" => 409, - "ViewStmt" => 410, - "opt_check_option" => 411, - "LoadStmt" => 412, - "CreatedbStmt" => 413, - "createdb_opt_list" => 414, - "createdb_opt_items" => 415, - "createdb_opt_item" => 416, - "createdb_opt_name" => 417, - "opt_equal" => 418, - "AlterDatabaseStmt" => 419, - "AlterDatabaseSetStmt" => 420, - "DropdbStmt" => 421, - "drop_option_list" => 422, - "drop_option" => 423, - "AlterCollationStmt" => 424, - "AlterSystemStmt" => 425, - "CreateDomainStmt" => 426, - "AlterDomainStmt" => 427, - "opt_as" => 428, - "AlterTSDictionaryStmt" => 429, - "AlterTSConfigurationStmt" => 430, - "any_with" => 431, - "CreateConversionStmt" => 432, - "ClusterStmt" => 433, - "cluster_index_specification" => 434, - "VacuumStmt" => 435, - "AnalyzeStmt" => 436, - "utility_option_list" => 437, - "analyze_keyword" => 438, - "utility_option_elem" => 439, - "utility_option_name" => 440, - "utility_option_arg" => 441, - "opt_analyze" => 442, - "opt_verbose" => 443, - "opt_full" => 444, - "opt_freeze" => 445, - "opt_name_list" => 446, - "vacuum_relation" => 447, - "vacuum_relation_list" => 448, - "opt_vacuum_relation_list" => 449, - "ExplainStmt" => 450, - "ExplainableStmt" => 451, - "PrepareStmt" => 452, - "prep_type_clause" => 453, - "PreparableStmt" => 454, - "ExecuteStmt" => 455, - "execute_param_clause" => 456, - "DeallocateStmt" => 457, - "InsertStmt" => 458, - "insert_target" => 459, - "insert_rest" => 460, - "override_kind" => 461, - "insert_column_list" => 462, - "insert_column_item" => 463, - "opt_on_conflict" => 464, - "opt_conf_expr" => 465, - "returning_clause" => 466, - "DeleteStmt" => 467, - "using_clause" => 468, - "LockStmt" => 469, - "opt_lock" => 470, - "lock_type" => 471, - "opt_nowait" => 472, - "opt_nowait_or_skip" => 473, - "UpdateStmt" => 474, - "set_clause_list" => 475, - "set_clause" => 476, - "set_target" => 477, - "set_target_list" => 478, - "MergeStmt" => 479, - "merge_when_list" => 480, - "merge_when_clause" => 481, - "opt_merge_when_condition" => 482, - "merge_update" => 483, - "merge_delete" => 484, - "merge_insert" => 485, - "merge_values_clause" => 486, - "DeclareCursorStmt" => 487, - "cursor_name" => 488, - "cursor_options" => 489, - "opt_hold" => 490, - "SelectStmt" => 491, - "select_with_parens" => 492, - "select_no_parens" => 493, - "select_clause" => 494, - "simple_select" => 495, - "with_clause" => 496, - "cte_list" => 497, - "common_table_expr" => 498, - "opt_materialized" => 499, - "opt_search_clause" => 500, - "opt_cycle_clause" => 501, - "opt_with_clause" => 502, - "into_clause" => 503, - "OptTempTableName" => 504, - "opt_table" => 505, - "set_quantifier" => 506, - "distinct_clause" => 507, - "opt_all_clause" => 508, - "opt_distinct_clause" => 509, - "opt_sort_clause" => 510, - "sort_clause" => 511, - "sortby_list" => 512, - "sortby" => 513, - "select_limit" => 514, - "opt_select_limit" => 515, - "limit_clause" => 516, - "offset_clause" => 517, - "select_limit_value" => 518, - "select_offset_value" => 519, - "select_fetch_first_value" => 520, - "I_or_F_const" => 521, - "row_or_rows" => 522, - "first_or_next" => 523, - "group_clause" => 524, - "group_by_list" => 525, - "group_by_item" => 526, - "empty_grouping_set" => 527, - "rollup_clause" => 528, - "cube_clause" => 529, - "grouping_sets_clause" => 530, - "having_clause" => 531, - "for_locking_clause" => 532, - "opt_for_locking_clause" => 533, - "for_locking_items" => 534, - "for_locking_item" => 535, - "for_locking_strength" => 536, - "locked_rels_list" => 537, - "values_clause" => 538, - "from_clause" => 539, - "from_list" => 540, - "table_ref" => 541, - "joined_table" => 542, - "alias_clause" => 543, - "opt_alias_clause" => 544, - "opt_alias_clause_for_join_using" => 545, - "func_alias_clause" => 546, - "join_type" => 547, - "opt_outer" => 548, - "join_qual" => 549, - "relation_expr" => 550, - "extended_relation_expr" => 551, - "relation_expr_list" => 552, - "relation_expr_opt_alias" => 553, - "tablesample_clause" => 554, - "opt_repeatable_clause" => 555, - "func_table" => 556, - "rowsfrom_item" => 557, - "rowsfrom_list" => 558, - "opt_col_def_list" => 559, - "opt_ordinality" => 560, - "where_clause" => 561, - "where_or_current_clause" => 562, - "OptTableFuncElementList" => 563, - "TableFuncElementList" => 564, - "TableFuncElement" => 565, - "xmltable" => 566, - "xmltable_column_list" => 567, - "xmltable_column_el" => 568, - "xmltable_column_option_list" => 569, - "xmltable_column_option_el" => 570, - "xml_namespace_list" => 571, - "xml_namespace_el" => 572, - "Typename" => 573, - "opt_array_bounds" => 574, - "SimpleTypename" => 575, - "ConstTypename" => 576, - "GenericType" => 577, - "opt_type_modifiers" => 578, - "Numeric" => 579, - "opt_float" => 580, - "Bit" => 581, - "ConstBit" => 582, - "BitWithLength" => 583, - "BitWithoutLength" => 584, - "Character" => 585, - "ConstCharacter" => 586, - "CharacterWithLength" => 587, - "CharacterWithoutLength" => 588, - "character" => 589, - "opt_varying" => 590, - "ConstDatetime" => 591, - "ConstInterval" => 592, - "opt_timezone" => 593, - "opt_interval" => 594, - "interval_second" => 595, - "a_expr" => 596, - "b_expr" => 597, - "c_expr" => 598, - "func_application" => 599, - "func_expr" => 600, - "func_expr_windowless" => 601, - "func_expr_common_subexpr" => 602, - "xml_root_version" => 603, - "opt_xml_root_standalone" => 604, - "xml_attributes" => 605, - "xml_attribute_list" => 606, - "xml_attribute_el" => 607, - "document_or_content" => 608, - "xml_indent_option" => 609, - "xml_whitespace_option" => 610, - "xmlexists_argument" => 611, - "xml_passing_mech" => 612, - "within_group_clause" => 613, - "filter_clause" => 614, - "window_clause" => 615, - "window_definition_list" => 616, - "window_definition" => 617, - "over_clause" => 618, - "window_specification" => 619, - "opt_existing_window_name" => 620, - "opt_partition_clause" => 621, - "opt_frame_clause" => 622, - "frame_extent" => 623, - "frame_bound" => 624, - "opt_window_exclusion_clause" => 625, - "row" => 626, - "explicit_row" => 627, - "implicit_row" => 628, - "sub_type" => 629, - "all_Op" => 630, - "MathOp" => 631, - "qual_Op" => 632, - "qual_all_Op" => 633, - "subquery_Op" => 634, - "expr_list" => 635, - "func_arg_list" => 636, - "func_arg_expr" => 637, - "func_arg_list_opt" => 638, - "type_list" => 639, - "array_expr" => 640, - "array_expr_list" => 641, - "extract_list" => 642, - "extract_arg" => 643, - "unicode_normal_form" => 644, - "overlay_list" => 645, - "position_list" => 646, - "substr_list" => 647, - "trim_list" => 648, - "in_expr" => 649, - "case_expr" => 650, - "when_clause_list" => 651, - "when_clause" => 652, - "case_default" => 653, - "case_arg" => 654, - "columnref" => 655, - "indirection_el" => 656, - "opt_slice_bound" => 657, - "indirection" => 658, - "opt_indirection" => 659, - "opt_asymmetric" => 660, - "json_value_expr" => 661, - "json_format_clause_opt" => 662, - "json_encoding_clause_opt" => 663, - "json_output_clause_opt" => 664, - "json_predicate_type_constraint" => 665, - "json_key_uniqueness_constraint_opt" => 666, - "json_name_and_value_list" => 667, - "json_name_and_value" => 668, - "json_object_constructor_null_clause_opt" => 669, - "json_array_constructor_null_clause_opt" => 670, - "json_value_expr_list" => 671, - "json_aggregate_func" => 672, - "json_array_aggregate_order_by_clause_opt" => 673, - "opt_target_list" => 674, - "target_list" => 675, - "target_el" => 676, - "qualified_name_list" => 677, - "qualified_name" => 678, - "name_list" => 679, - "name" => 680, - "attr_name" => 681, - "file_name" => 682, - "func_name" => 683, - "AexprConst" => 684, - "Iconst" => 685, - "Sconst" => 686, - "SignedIconst" => 687, - "RoleId" => 688, - "RoleSpec" => 689, - "role_list" => 690, - "PLpgSQL_Expr" => 691, - "PLAssignStmt" => 692, - "plassign_target" => 693, - "plassign_equals" => 694, - "ColId" => 695, - "type_function_name" => 696, - "NonReservedWord" => 697, - "ColLabel" => 698, - "BareColLabel" => 699, - "unreserved_keyword" => 700, - "col_name_keyword" => 701, - "type_func_name_keyword" => 702, - "reserved_keyword" => 703, - "bare_label_keyword" => 704, - "$accept" => 705, + "set_statistics_value" => 64, + "set_access_method_name" => 65, + "PartitionBoundSpec" => 66, + "hash_partbound_elem" => 67, + "hash_partbound" => 68, + "AlterCompositeTypeStmt" => 69, + "alter_type_cmds" => 70, + "alter_type_cmd" => 71, + "ClosePortalStmt" => 72, + "CopyStmt" => 73, + "copy_from" => 74, + "opt_program" => 75, + "copy_file_name" => 76, + "copy_options" => 77, + "copy_opt_list" => 78, + "copy_opt_item" => 79, + "opt_binary" => 80, + "copy_delimiter" => 81, + "opt_using" => 82, + "copy_generic_opt_list" => 83, + "copy_generic_opt_elem" => 84, + "copy_generic_opt_arg" => 85, + "copy_generic_opt_arg_list" => 86, + "copy_generic_opt_arg_list_item" => 87, + "CreateStmt" => 88, + "OptTemp" => 89, + "OptTableElementList" => 90, + "OptTypedTableElementList" => 91, + "TableElementList" => 92, + "TypedTableElementList" => 93, + "TableElement" => 94, + "TypedTableElement" => 95, + "columnDef" => 96, + "columnOptions" => 97, + "column_compression" => 98, + "opt_column_compression" => 99, + "column_storage" => 100, + "opt_column_storage" => 101, + "ColQualList" => 102, + "ColConstraint" => 103, + "ColConstraintElem" => 104, + "opt_unique_null_treatment" => 105, + "generated_when" => 106, + "ConstraintAttr" => 107, + "TableLikeClause" => 108, + "TableLikeOptionList" => 109, + "TableLikeOption" => 110, + "TableConstraint" => 111, + "ConstraintElem" => 112, + "DomainConstraint" => 113, + "DomainConstraintElem" => 114, + "opt_no_inherit" => 115, + "opt_column_list" => 116, + "columnList" => 117, + "columnElem" => 118, + "opt_c_include" => 119, + "key_match" => 120, + "ExclusionConstraintList" => 121, + "ExclusionConstraintElem" => 122, + "OptWhereClause" => 123, + "key_actions" => 124, + "key_update" => 125, + "key_delete" => 126, + "key_action" => 127, + "OptInherit" => 128, + "OptPartitionSpec" => 129, + "PartitionSpec" => 130, + "part_params" => 131, + "part_elem" => 132, + "table_access_method_clause" => 133, + "OptWith" => 134, + "OnCommitOption" => 135, + "OptTableSpace" => 136, + "OptConsTableSpace" => 137, + "ExistingIndex" => 138, + "CreateStatsStmt" => 139, + "stats_params" => 140, + "stats_param" => 141, + "AlterStatsStmt" => 142, + "CreateAsStmt" => 143, + "create_as_target" => 144, + "opt_with_data" => 145, + "CreateMatViewStmt" => 146, + "create_mv_target" => 147, + "OptNoLog" => 148, + "RefreshMatViewStmt" => 149, + "CreateSeqStmt" => 150, + "AlterSeqStmt" => 151, + "OptSeqOptList" => 152, + "OptParenthesizedSeqOptList" => 153, + "SeqOptList" => 154, + "SeqOptElem" => 155, + "opt_by" => 156, + "NumericOnly" => 157, + "NumericOnly_list" => 158, + "CreatePLangStmt" => 159, + "opt_trusted" => 160, + "handler_name" => 161, + "opt_inline_handler" => 162, + "validator_clause" => 163, + "opt_validator" => 164, + "opt_procedural" => 165, + "CreateTableSpaceStmt" => 166, + "OptTableSpaceOwner" => 167, + "DropTableSpaceStmt" => 168, + "CreateExtensionStmt" => 169, + "create_extension_opt_list" => 170, + "create_extension_opt_item" => 171, + "AlterExtensionStmt" => 172, + "alter_extension_opt_list" => 173, + "alter_extension_opt_item" => 174, + "AlterExtensionContentsStmt" => 175, + "CreateFdwStmt" => 176, + "fdw_option" => 177, + "fdw_options" => 178, + "opt_fdw_options" => 179, + "AlterFdwStmt" => 180, + "create_generic_options" => 181, + "generic_option_list" => 182, + "alter_generic_options" => 183, + "alter_generic_option_list" => 184, + "alter_generic_option_elem" => 185, + "generic_option_elem" => 186, + "generic_option_name" => 187, + "generic_option_arg" => 188, + "CreateForeignServerStmt" => 189, + "opt_type" => 190, + "foreign_server_version" => 191, + "opt_foreign_server_version" => 192, + "AlterForeignServerStmt" => 193, + "CreateForeignTableStmt" => 194, + "ImportForeignSchemaStmt" => 195, + "import_qualification_type" => 196, + "import_qualification" => 197, + "CreateUserMappingStmt" => 198, + "auth_ident" => 199, + "DropUserMappingStmt" => 200, + "AlterUserMappingStmt" => 201, + "CreatePolicyStmt" => 202, + "AlterPolicyStmt" => 203, + "RowSecurityOptionalExpr" => 204, + "RowSecurityOptionalWithCheck" => 205, + "RowSecurityDefaultToRole" => 206, + "RowSecurityOptionalToRole" => 207, + "RowSecurityDefaultPermissive" => 208, + "RowSecurityDefaultForCmd" => 209, + "row_security_cmd" => 210, + "CreateAmStmt" => 211, + "am_type" => 212, + "CreateTrigStmt" => 213, + "TriggerActionTime" => 214, + "TriggerEvents" => 215, + "TriggerOneEvent" => 216, + "TriggerReferencing" => 217, + "TriggerTransitions" => 218, + "TriggerTransition" => 219, + "TransitionOldOrNew" => 220, + "TransitionRowOrTable" => 221, + "TransitionRelName" => 222, + "TriggerForSpec" => 223, + "TriggerForOptEach" => 224, + "TriggerForType" => 225, + "TriggerWhen" => 226, + "FUNCTION_or_PROCEDURE" => 227, + "TriggerFuncArgs" => 228, + "TriggerFuncArg" => 229, + "OptConstrFromTable" => 230, + "ConstraintAttributeSpec" => 231, + "ConstraintAttributeElem" => 232, + "CreateEventTrigStmt" => 233, + "event_trigger_when_list" => 234, + "event_trigger_when_item" => 235, + "event_trigger_value_list" => 236, + "AlterEventTrigStmt" => 237, + "enable_trigger" => 238, + "CreateAssertionStmt" => 239, + "DefineStmt" => 240, + "definition" => 241, + "def_list" => 242, + "def_elem" => 243, + "def_arg" => 244, + "old_aggr_definition" => 245, + "old_aggr_list" => 246, + "old_aggr_elem" => 247, + "opt_enum_val_list" => 248, + "enum_val_list" => 249, + "AlterEnumStmt" => 250, + "opt_if_not_exists" => 251, + "CreateOpClassStmt" => 252, + "opclass_item_list" => 253, + "opclass_item" => 254, + "opt_default" => 255, + "opt_opfamily" => 256, + "opclass_purpose" => 257, + "opt_recheck" => 258, + "CreateOpFamilyStmt" => 259, + "AlterOpFamilyStmt" => 260, + "opclass_drop_list" => 261, + "opclass_drop" => 262, + "DropOpClassStmt" => 263, + "DropOpFamilyStmt" => 264, + "DropOwnedStmt" => 265, + "ReassignOwnedStmt" => 266, + "DropStmt" => 267, + "object_type_any_name" => 268, + "object_type_name" => 269, + "drop_type_name" => 270, + "object_type_name_on_any_name" => 271, + "any_name_list" => 272, + "any_name" => 273, + "attrs" => 274, + "type_name_list" => 275, + "TruncateStmt" => 276, + "opt_restart_seqs" => 277, + "CommentStmt" => 278, + "comment_text" => 279, + "SecLabelStmt" => 280, + "opt_provider" => 281, + "security_label" => 282, + "FetchStmt" => 283, + "fetch_args" => 284, + "from_in" => 285, + "opt_from_in" => 286, + "GrantStmt" => 287, + "RevokeStmt" => 288, + "privileges" => 289, + "privilege_list" => 290, + "privilege" => 291, + "parameter_name_list" => 292, + "parameter_name" => 293, + "privilege_target" => 294, + "grantee_list" => 295, + "grantee" => 296, + "opt_grant_grant_option" => 297, + "GrantRoleStmt" => 298, + "RevokeRoleStmt" => 299, + "grant_role_opt_list" => 300, + "grant_role_opt" => 301, + "grant_role_opt_value" => 302, + "opt_granted_by" => 303, + "AlterDefaultPrivilegesStmt" => 304, + "DefACLOptionList" => 305, + "DefACLOption" => 306, + "DefACLAction" => 307, + "defacl_privilege_target" => 308, + "IndexStmt" => 309, + "opt_unique" => 310, + "access_method_clause" => 311, + "index_params" => 312, + "index_elem_options" => 313, + "index_elem" => 314, + "opt_include" => 315, + "index_including_params" => 316, + "opt_collate" => 317, + "opt_asc_desc" => 318, + "opt_nulls_order" => 319, + "CreateFunctionStmt" => 320, + "opt_or_replace" => 321, + "func_args" => 322, + "func_args_list" => 323, + "function_with_argtypes_list" => 324, + "function_with_argtypes" => 325, + "func_args_with_defaults" => 326, + "func_args_with_defaults_list" => 327, + "func_arg" => 328, + "arg_class" => 329, + "param_name" => 330, + "func_return" => 331, + "func_type" => 332, + "func_arg_with_default" => 333, + "aggr_arg" => 334, + "aggr_args" => 335, + "aggr_args_list" => 336, + "aggregate_with_argtypes" => 337, + "aggregate_with_argtypes_list" => 338, + "opt_createfunc_opt_list" => 339, + "createfunc_opt_list" => 340, + "common_func_opt_item" => 341, + "createfunc_opt_item" => 342, + "func_as" => 343, + "ReturnStmt" => 344, + "opt_routine_body" => 345, + "routine_body_stmt_list" => 346, + "routine_body_stmt" => 347, + "transform_type_list" => 348, + "opt_definition" => 349, + "table_func_column" => 350, + "table_func_column_list" => 351, + "AlterFunctionStmt" => 352, + "alterfunc_opt_list" => 353, + "opt_restrict" => 354, + "RemoveFuncStmt" => 355, + "RemoveAggrStmt" => 356, + "RemoveOperStmt" => 357, + "oper_argtypes" => 358, + "any_operator" => 359, + "operator_with_argtypes_list" => 360, + "operator_with_argtypes" => 361, + "DoStmt" => 362, + "dostmt_opt_list" => 363, + "dostmt_opt_item" => 364, + "CreateCastStmt" => 365, + "cast_context" => 366, + "DropCastStmt" => 367, + "opt_if_exists" => 368, + "CreateTransformStmt" => 369, + "transform_element_list" => 370, + "DropTransformStmt" => 371, + "ReindexStmt" => 372, + "reindex_target_relation" => 373, + "reindex_target_all" => 374, + "opt_reindex_option_list" => 375, + "AlterTblSpcStmt" => 376, + "RenameStmt" => 377, + "opt_column" => 378, + "opt_set_data" => 379, + "AlterObjectDependsStmt" => 380, + "opt_no" => 381, + "AlterObjectSchemaStmt" => 382, + "AlterOperatorStmt" => 383, + "operator_def_list" => 384, + "operator_def_elem" => 385, + "operator_def_arg" => 386, + "AlterTypeStmt" => 387, + "AlterOwnerStmt" => 388, + "CreatePublicationStmt" => 389, + "PublicationObjSpec" => 390, + "pub_obj_list" => 391, + "AlterPublicationStmt" => 392, + "CreateSubscriptionStmt" => 393, + "AlterSubscriptionStmt" => 394, + "DropSubscriptionStmt" => 395, + "RuleStmt" => 396, + "RuleActionList" => 397, + "RuleActionMulti" => 398, + "RuleActionStmt" => 399, + "RuleActionStmtOrEmpty" => 400, + "event" => 401, + "opt_instead" => 402, + "NotifyStmt" => 403, + "notify_payload" => 404, + "ListenStmt" => 405, + "UnlistenStmt" => 406, + "TransactionStmt" => 407, + "TransactionStmtLegacy" => 408, + "opt_transaction" => 409, + "transaction_mode_item" => 410, + "transaction_mode_list" => 411, + "transaction_mode_list_or_empty" => 412, + "opt_transaction_chain" => 413, + "ViewStmt" => 414, + "opt_check_option" => 415, + "LoadStmt" => 416, + "CreatedbStmt" => 417, + "createdb_opt_list" => 418, + "createdb_opt_items" => 419, + "createdb_opt_item" => 420, + "createdb_opt_name" => 421, + "opt_equal" => 422, + "AlterDatabaseStmt" => 423, + "AlterDatabaseSetStmt" => 424, + "DropdbStmt" => 425, + "drop_option_list" => 426, + "drop_option" => 427, + "AlterCollationStmt" => 428, + "AlterSystemStmt" => 429, + "CreateDomainStmt" => 430, + "AlterDomainStmt" => 431, + "opt_as" => 432, + "AlterTSDictionaryStmt" => 433, + "AlterTSConfigurationStmt" => 434, + "any_with" => 435, + "CreateConversionStmt" => 436, + "ClusterStmt" => 437, + "cluster_index_specification" => 438, + "VacuumStmt" => 439, + "AnalyzeStmt" => 440, + "utility_option_list" => 441, + "analyze_keyword" => 442, + "utility_option_elem" => 443, + "utility_option_name" => 444, + "utility_option_arg" => 445, + "opt_analyze" => 446, + "opt_verbose" => 447, + "opt_full" => 448, + "opt_freeze" => 449, + "opt_name_list" => 450, + "vacuum_relation" => 451, + "vacuum_relation_list" => 452, + "opt_vacuum_relation_list" => 453, + "ExplainStmt" => 454, + "ExplainableStmt" => 455, + "PrepareStmt" => 456, + "prep_type_clause" => 457, + "PreparableStmt" => 458, + "ExecuteStmt" => 459, + "execute_param_clause" => 460, + "DeallocateStmt" => 461, + "InsertStmt" => 462, + "insert_target" => 463, + "insert_rest" => 464, + "override_kind" => 465, + "insert_column_list" => 466, + "insert_column_item" => 467, + "opt_on_conflict" => 468, + "opt_conf_expr" => 469, + "returning_clause" => 470, + "DeleteStmt" => 471, + "using_clause" => 472, + "LockStmt" => 473, + "opt_lock" => 474, + "lock_type" => 475, + "opt_nowait" => 476, + "opt_nowait_or_skip" => 477, + "UpdateStmt" => 478, + "set_clause_list" => 479, + "set_clause" => 480, + "set_target" => 481, + "set_target_list" => 482, + "MergeStmt" => 483, + "merge_when_list" => 484, + "merge_when_clause" => 485, + "merge_when_tgt_matched" => 486, + "merge_when_tgt_not_matched" => 487, + "opt_merge_when_condition" => 488, + "merge_update" => 489, + "merge_delete" => 490, + "merge_insert" => 491, + "merge_values_clause" => 492, + "DeclareCursorStmt" => 493, + "cursor_name" => 494, + "cursor_options" => 495, + "opt_hold" => 496, + "SelectStmt" => 497, + "select_with_parens" => 498, + "select_no_parens" => 499, + "select_clause" => 500, + "simple_select" => 501, + "with_clause" => 502, + "cte_list" => 503, + "common_table_expr" => 504, + "opt_materialized" => 505, + "opt_search_clause" => 506, + "opt_cycle_clause" => 507, + "opt_with_clause" => 508, + "into_clause" => 509, + "OptTempTableName" => 510, + "opt_table" => 511, + "set_quantifier" => 512, + "distinct_clause" => 513, + "opt_all_clause" => 514, + "opt_distinct_clause" => 515, + "opt_sort_clause" => 516, + "sort_clause" => 517, + "sortby_list" => 518, + "sortby" => 519, + "select_limit" => 520, + "opt_select_limit" => 521, + "limit_clause" => 522, + "offset_clause" => 523, + "select_limit_value" => 524, + "select_offset_value" => 525, + "select_fetch_first_value" => 526, + "I_or_F_const" => 527, + "row_or_rows" => 528, + "first_or_next" => 529, + "group_clause" => 530, + "group_by_list" => 531, + "group_by_item" => 532, + "empty_grouping_set" => 533, + "rollup_clause" => 534, + "cube_clause" => 535, + "grouping_sets_clause" => 536, + "having_clause" => 537, + "for_locking_clause" => 538, + "opt_for_locking_clause" => 539, + "for_locking_items" => 540, + "for_locking_item" => 541, + "for_locking_strength" => 542, + "locked_rels_list" => 543, + "values_clause" => 544, + "from_clause" => 545, + "from_list" => 546, + "table_ref" => 547, + "joined_table" => 548, + "alias_clause" => 549, + "opt_alias_clause" => 550, + "opt_alias_clause_for_join_using" => 551, + "func_alias_clause" => 552, + "join_type" => 553, + "opt_outer" => 554, + "join_qual" => 555, + "relation_expr" => 556, + "extended_relation_expr" => 557, + "relation_expr_list" => 558, + "relation_expr_opt_alias" => 559, + "tablesample_clause" => 560, + "opt_repeatable_clause" => 561, + "func_table" => 562, + "rowsfrom_item" => 563, + "rowsfrom_list" => 564, + "opt_col_def_list" => 565, + "opt_ordinality" => 566, + "where_clause" => 567, + "where_or_current_clause" => 568, + "OptTableFuncElementList" => 569, + "TableFuncElementList" => 570, + "TableFuncElement" => 571, + "xmltable" => 572, + "xmltable_column_list" => 573, + "xmltable_column_el" => 574, + "xmltable_column_option_list" => 575, + "xmltable_column_option_el" => 576, + "xml_namespace_list" => 577, + "xml_namespace_el" => 578, + "json_table" => 579, + "json_table_path_name_opt" => 580, + "json_table_column_definition_list" => 581, + "json_table_column_definition" => 582, + "path_opt" => 583, + "json_table_column_path_clause_opt" => 584, + "Typename" => 585, + "opt_array_bounds" => 586, + "SimpleTypename" => 587, + "ConstTypename" => 588, + "GenericType" => 589, + "opt_type_modifiers" => 590, + "Numeric" => 591, + "opt_float" => 592, + "Bit" => 593, + "ConstBit" => 594, + "BitWithLength" => 595, + "BitWithoutLength" => 596, + "Character" => 597, + "ConstCharacter" => 598, + "CharacterWithLength" => 599, + "CharacterWithoutLength" => 600, + "character" => 601, + "opt_varying" => 602, + "ConstDatetime" => 603, + "ConstInterval" => 604, + "opt_timezone" => 605, + "opt_interval" => 606, + "interval_second" => 607, + "JsonType" => 608, + "a_expr" => 609, + "b_expr" => 610, + "c_expr" => 611, + "func_application" => 612, + "func_expr" => 613, + "func_expr_windowless" => 614, + "func_expr_common_subexpr" => 615, + "xml_root_version" => 616, + "opt_xml_root_standalone" => 617, + "xml_attributes" => 618, + "xml_attribute_list" => 619, + "xml_attribute_el" => 620, + "document_or_content" => 621, + "xml_indent_option" => 622, + "xml_whitespace_option" => 623, + "xmlexists_argument" => 624, + "xml_passing_mech" => 625, + "within_group_clause" => 626, + "filter_clause" => 627, + "window_clause" => 628, + "window_definition_list" => 629, + "window_definition" => 630, + "over_clause" => 631, + "window_specification" => 632, + "opt_existing_window_name" => 633, + "opt_partition_clause" => 634, + "opt_frame_clause" => 635, + "frame_extent" => 636, + "frame_bound" => 637, + "opt_window_exclusion_clause" => 638, + "row" => 639, + "explicit_row" => 640, + "implicit_row" => 641, + "sub_type" => 642, + "all_Op" => 643, + "MathOp" => 644, + "qual_Op" => 645, + "qual_all_Op" => 646, + "subquery_Op" => 647, + "expr_list" => 648, + "func_arg_list" => 649, + "func_arg_expr" => 650, + "func_arg_list_opt" => 651, + "type_list" => 652, + "array_expr" => 653, + "array_expr_list" => 654, + "extract_list" => 655, + "extract_arg" => 656, + "unicode_normal_form" => 657, + "overlay_list" => 658, + "position_list" => 659, + "substr_list" => 660, + "trim_list" => 661, + "in_expr" => 662, + "case_expr" => 663, + "when_clause_list" => 664, + "when_clause" => 665, + "case_default" => 666, + "case_arg" => 667, + "columnref" => 668, + "indirection_el" => 669, + "opt_slice_bound" => 670, + "indirection" => 671, + "opt_indirection" => 672, + "opt_asymmetric" => 673, + "json_passing_clause_opt" => 674, + "json_arguments" => 675, + "json_argument" => 676, + "json_wrapper_behavior" => 677, + "json_behavior" => 678, + "json_behavior_type" => 679, + "json_behavior_clause_opt" => 680, + "json_on_error_clause_opt" => 681, + "json_value_expr" => 682, + "json_format_clause" => 683, + "json_format_clause_opt" => 684, + "json_quotes_clause_opt" => 685, + "json_returning_clause_opt" => 686, + "json_predicate_type_constraint" => 687, + "json_key_uniqueness_constraint_opt" => 688, + "json_name_and_value_list" => 689, + "json_name_and_value" => 690, + "json_object_constructor_null_clause_opt" => 691, + "json_array_constructor_null_clause_opt" => 692, + "json_value_expr_list" => 693, + "json_aggregate_func" => 694, + "json_array_aggregate_order_by_clause_opt" => 695, + "opt_target_list" => 696, + "target_list" => 697, + "target_el" => 698, + "qualified_name_list" => 699, + "qualified_name" => 700, + "name_list" => 701, + "name" => 702, + "attr_name" => 703, + "file_name" => 704, + "func_name" => 705, + "AexprConst" => 706, + "Iconst" => 707, + "Sconst" => 708, + "SignedIconst" => 709, + "RoleId" => 710, + "RoleSpec" => 711, + "role_list" => 712, + "PLpgSQL_Expr" => 713, + "PLAssignStmt" => 714, + "plassign_target" => 715, + "plassign_equals" => 716, + "ColId" => 717, + "type_function_name" => 718, + "NonReservedWord" => 719, + "ColLabel" => 720, + "BareColLabel" => 721, + "unreserved_keyword" => 722, + "col_name_keyword" => 723, + "type_func_name_keyword" => 724, + "reserved_keyword" => 725, + "bare_label_keyword" => 726, + "$accept" => 727, _ => unreachable!(), } } diff --git a/crates/postgresql-cst-parser/src/syntax_kind.rs b/crates/postgresql-cst-parser/src/syntax_kind.rs index 69d3bec..3ee38fa 100644 --- a/crates/postgresql-cst-parser/src/syntax_kind.rs +++ b/crates/postgresql-cst-parser/src/syntax_kind.rs @@ -73,6 +73,7 @@ pub enum SyntaxKind { COMMITTED, COMPRESSION, CONCURRENTLY, + CONDITIONAL, CONFIGURATION, CONFLICT, CONNECTION, @@ -132,12 +133,14 @@ pub enum SyntaxKind { Dot, EACH, ELSE, + EMPTY_P, ENABLE_P, ENCODING, ENCRYPTED, END_P, ENUM_P, EQUALS_GREATER, + ERROR_P, ESCAPE, EVENT, EXCEPT, @@ -226,8 +229,15 @@ pub enum SyntaxKind { JSON, JSON_ARRAY, JSON_ARRAYAGG, + JSON_EXISTS, JSON_OBJECT, JSON_OBJECTAGG, + JSON_QUERY, + JSON_SCALAR, + JSON_SERIALIZE, + JSON_TABLE, + JSON_VALUE, + KEEP, KEY, KEYS, LABEL, @@ -261,6 +271,7 @@ pub enum SyntaxKind { MATERIALIZED, MAXVALUE, MERGE, + MERGE_ACTION, METHOD, MINUTE_P, MINVALUE, @@ -278,6 +289,7 @@ pub enum SyntaxKind { NATIONAL, NATURAL, NCHAR, + NESTED, NEW, NEXT, NFC, @@ -306,6 +318,7 @@ pub enum SyntaxKind { OFFSET, OIDS, OLD, + OMIT, ON, ONLY, OPERATOR, @@ -332,7 +345,9 @@ pub enum SyntaxKind { PARTITION, PASSING, PASSWORD, + PATH, PLACING, + PLAN, PLANS, POLICY, POSITION, @@ -352,6 +367,7 @@ pub enum SyntaxKind { Percent, Plus, QUOTE, + QUOTES, RANGE, RBracket, READ, @@ -414,6 +430,7 @@ pub enum SyntaxKind { SMALLINT, SNAPSHOT, SOME, + SOURCE, SQL_P, STABLE, STANDALONE_P, @@ -425,6 +442,7 @@ pub enum SyntaxKind { STORAGE, STORED, STRICT_P, + STRING_P, STRIP_P, SUBSCRIPTION, SUBSTRING, @@ -440,6 +458,7 @@ pub enum SyntaxKind { TABLES, TABLESAMPLE, TABLESPACE, + TARGET, TEMP, TEMPLATE, TEMPORARY, @@ -465,6 +484,7 @@ pub enum SyntaxKind { UMINUS, UNBOUNDED, UNCOMMITTED, + UNCONDITIONAL, UNENCRYPTED, UNION, UNIQUE, @@ -581,6 +601,8 @@ pub enum SyntaxKind { reloption_elem, alter_identity_column_option_list, alter_identity_column_option, + set_statistics_value, + set_access_method_name, PartitionBoundSpec, hash_partbound_elem, hash_partbound, @@ -628,6 +650,8 @@ pub enum SyntaxKind { TableLikeOption, TableConstraint, ConstraintElem, + DomainConstraint, + DomainConstraintElem, opt_no_inherit, opt_column_list, columnList, @@ -999,6 +1023,8 @@ pub enum SyntaxKind { MergeStmt, merge_when_list, merge_when_clause, + merge_when_tgt_matched, + merge_when_tgt_not_matched, opt_merge_when_condition, merge_update, merge_delete, @@ -1090,6 +1116,12 @@ pub enum SyntaxKind { xmltable_column_option_el, xml_namespace_list, xml_namespace_el, + json_table, + json_table_path_name_opt, + json_table_column_definition_list, + json_table_column_definition, + path_opt, + json_table_column_path_clause_opt, Typename, opt_array_bounds, SimpleTypename, @@ -1113,6 +1145,7 @@ pub enum SyntaxKind { opt_timezone, opt_interval, interval_second, + JsonType, a_expr, b_expr, c_expr, @@ -1178,10 +1211,19 @@ pub enum SyntaxKind { indirection, opt_indirection, opt_asymmetric, + json_passing_clause_opt, + json_arguments, + json_argument, + json_wrapper_behavior, + json_behavior, + json_behavior_type, + json_behavior_clause_opt, + json_on_error_clause_opt, json_value_expr, + json_format_clause, json_format_clause_opt, - json_encoding_clause_opt, - json_output_clause_opt, + json_quotes_clause_opt, + json_returning_clause_opt, json_predicate_type_constraint, json_key_uniqueness_constraint_opt, json_name_and_value_list, diff --git a/crates/postgresql-cst-parser/src/transform.rs b/crates/postgresql-cst-parser/src/transform.rs index c852ee2..e6b036c 100644 --- a/crates/postgresql-cst-parser/src/transform.rs +++ b/crates/postgresql-cst-parser/src/transform.rs @@ -8,7 +8,7 @@ pub use missing_sample_value::*; pub use skip_extra_comma::*; pub use skip_extra_operator::*; -use crate::{cst::LRParseState, lexer::TokenKind, parser::num_terminal_symbol}; +use crate::{cst::LRParseState, lexer::TokenKind}; pub enum ParseTransform { InsertToken(TokenKind), diff --git a/crates/postgresql-cst-parser/src/transform/missing_from_table.rs b/crates/postgresql-cst-parser/src/transform/missing_from_table.rs index 6809487..0d0cc55 100644 --- a/crates/postgresql-cst-parser/src/transform/missing_from_table.rs +++ b/crates/postgresql-cst-parser/src/transform/missing_from_table.rs @@ -1,8 +1,12 @@ use cstree::{RawSyntaxKind, Syntax}; -use crate::{lexer::TokenKind, syntax_kind::SyntaxKind}; +use crate::{ + cst::{lookup_parser_action, ERROR_ACTION_CODE}, + lexer::TokenKind, + syntax_kind::SyntaxKind, +}; -use super::{num_terminal_symbol, LRParseState, ParseTransform, ParseTransformer}; +use super::{LRParseState, ParseTransform, ParseTransformer}; /// Complete missing replacement string sample values ​​(FROM clause only) pub struct ComplementMissingFromTableTransformer; @@ -37,11 +41,7 @@ fn is_from_table<'a>(lr_parse_state: &LRParseState<'a>) -> bool { .nth_back(1) .map(|(_, node)| SyntaxKind::from_raw(RawSyntaxKind(node.component_id))); - if prev2_kind == Some(SyntaxKind::from_list) { - true - } else { - false - } + prev2_kind == Some(SyntaxKind::from_list) } _ => false, } @@ -50,11 +50,8 @@ fn is_from_table<'a>(lr_parse_state: &LRParseState<'a>) -> bool { fn is_missing_from_replacement_value<'a>(lr_parse_state: &LRParseState<'a>) -> bool { if is_from_table(lr_parse_state) { // Check if IDENT is in SHIFT enabled state - let action_index = - (lr_parse_state.state * num_terminal_symbol()) as usize + SyntaxKind::IDENT as usize; - - let a = lr_parse_state.action_table[action_index]; - a != 0x7FFF + let a = lookup_parser_action(lr_parse_state.state, SyntaxKind::IDENT as u32); + a != ERROR_ACTION_CODE } else { false } @@ -66,7 +63,7 @@ impl ParseTransformer for ComplementMissingFromTableTransformer { return None; } - if !is_missing_from_replacement_value(&lr_parse_state) { + if !is_missing_from_replacement_value(lr_parse_state) { return None; } diff --git a/crates/postgresql-cst-parser/src/transform/missing_sample_value.rs b/crates/postgresql-cst-parser/src/transform/missing_sample_value.rs index 68154d9..6ea710e 100644 --- a/crates/postgresql-cst-parser/src/transform/missing_sample_value.rs +++ b/crates/postgresql-cst-parser/src/transform/missing_sample_value.rs @@ -1,6 +1,10 @@ -use crate::{cst::Extra, lexer::TokenKind, syntax_kind::SyntaxKind}; +use crate::{ + cst::{lookup_parser_action, Extra, ERROR_ACTION_CODE}, + lexer::TokenKind, + syntax_kind::SyntaxKind, +}; -use super::{num_terminal_symbol, LRParseState, ParseTransform, ParseTransformer}; +use super::{LRParseState, ParseTransform, ParseTransformer}; /// Complete missing bind variable sample values pub struct ComplementMissingSampleValueTransformer; @@ -23,11 +27,8 @@ impl ComplementMissingSampleValueTransformer { return false; } - let action_index = - (lr_parse_state.state * num_terminal_symbol()) as usize + SyntaxKind::SCONST as usize; - - let a = lr_parse_state.action_table[action_index]; - a != 0x7FFF + let a = lookup_parser_action(lr_parse_state.state, SyntaxKind::SCONST as u32); + a != ERROR_ACTION_CODE } } @@ -37,7 +38,7 @@ impl ParseTransformer for ComplementMissingSampleValueTransformer { return None; } - if !Self::is_missing_bind_variable(&lr_parse_state) { + if !Self::is_missing_bind_variable(lr_parse_state) { return None; } diff --git a/crates/postgresql-cst-parser/src/transform/skip_extra_comma.rs b/crates/postgresql-cst-parser/src/transform/skip_extra_comma.rs index a025eba..ed09450 100644 --- a/crates/postgresql-cst-parser/src/transform/skip_extra_comma.rs +++ b/crates/postgresql-cst-parser/src/transform/skip_extra_comma.rs @@ -39,7 +39,7 @@ impl SkipExtraComma { impl ParseTransformer for SkipExtraComma { fn transform<'a>(&self, lr_parse_state: &LRParseState<'a>) -> Option { - if !Self::allow_extra_comma(&lr_parse_state) { + if !Self::allow_extra_comma(lr_parse_state) { return None; } diff --git a/crates/postgresql-cst-parser/src/transform/skip_extra_operator.rs b/crates/postgresql-cst-parser/src/transform/skip_extra_operator.rs index 569ac2b..87ff268 100644 --- a/crates/postgresql-cst-parser/src/transform/skip_extra_operator.rs +++ b/crates/postgresql-cst-parser/src/transform/skip_extra_operator.rs @@ -13,7 +13,7 @@ impl SkipExtraOperator { impl ParseTransformer for SkipExtraOperator { fn transform<'a>(&self, lr_parse_state: &LRParseState<'a>) -> Option { - if !Self::allow_extra_operator(&lr_parse_state) { + if !Self::allow_extra_operator(lr_parse_state) { return None; } diff --git a/crates/postgresql-cst-parser/src/tree_sitter.rs b/crates/postgresql-cst-parser/src/tree_sitter.rs index 4db2bfc..85adab5 100644 --- a/crates/postgresql-cst-parser/src/tree_sitter.rs +++ b/crates/postgresql-cst-parser/src/tree_sitter.rs @@ -8,21 +8,21 @@ use std::{collections::HashMap, fmt::Display, rc::Rc, str}; use cstree::text::TextRange; -use crate::{cst, syntax_kind::SyntaxKind, NodeOrToken, ResolvedNode}; +use crate::{cst, syntax_kind::SyntaxKind, NodeOrToken, ParserError, ResolvedNode}; impl Display for SyntaxKind { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(f, "{:?}", self) + write!(f, "{self:?}") } } -pub fn parse(input: &str) -> Result { +pub fn parse(input: &str) -> Result { let parsed = cst::parse(input)?; let (root, range_map) = get_ts_tree_and_range_map(input, &parsed); Ok(Tree::new(input, root, range_map)) } -pub fn parse_2way(input: &str) -> Result { +pub fn parse_2way(input: &str) -> Result { let parsed = crate::parse_2way(input)?; let (root, range_map) = get_ts_tree_and_range_map(input, &parsed); Ok(Tree::new(input, root, range_map)) @@ -293,8 +293,7 @@ mod tests { tokens.push((cursor.node().text(), cursor.node().range())); } - if cursor.goto_first_child() { - } else if cursor.goto_next_sibling() { + if cursor.goto_first_child() || cursor.goto_next_sibling() { } else { loop { if !cursor.goto_parent() { diff --git a/crates/postgresql-cst-parser/src/tree_sitter/assert_util.rs b/crates/postgresql-cst-parser/src/tree_sitter/assert_util.rs index 038b186..dfbec1a 100644 --- a/crates/postgresql-cst-parser/src/tree_sitter/assert_util.rs +++ b/crates/postgresql-cst-parser/src/tree_sitter/assert_util.rs @@ -5,8 +5,7 @@ pub fn assert_exists(root: &ResolvedNode, kind: SyntaxKind) { let exists = root.descendants().any(|node| node.kind() == kind); assert!( exists, - "Expected at least one node of kind {:?}, but none was found.", - kind + "Expected at least one node of kind {kind:?}, but none was found." ) } @@ -15,8 +14,7 @@ pub fn assert_not_exists(root: &ResolvedNode, kind: SyntaxKind) { let exists = root.descendants().any(|node| node.kind() == kind); assert!( !exists, - "Expected no nodes of kind {:?}, but at least one was found.", - kind + "Expected no nodes of kind {kind:?}, but at least one was found." ) } @@ -28,8 +26,7 @@ pub fn assert_node_count(root: &ResolvedNode, kind: SyntaxKind, expected_count: .count(); assert_eq!( actual_count, expected_count, - "Expected {} nodes of kind {:?}, but found {}.", - expected_count, kind, actual_count + "Expected {expected_count} nodes of kind {kind:?}, but found {actual_count}." ) } @@ -42,9 +39,7 @@ pub fn assert_no_direct_nested_kind(root: &ResolvedNode, kind: SyntaxKind) { if let Some(parent) = node.parent() { assert!( !(node.kind() == kind && parent.kind() == kind), - "Found a `{:?}` node that directly contains another {:?} node as a child.", - parent, - kind + "Found a `{parent:?}` node that directly contains another {kind:?} node as a child." ) } } diff --git a/crates/postgresql-cst-parser/src/tree_sitter/convert.rs b/crates/postgresql-cst-parser/src/tree_sitter/convert.rs index 3159518..b57c2e6 100644 --- a/crates/postgresql-cst-parser/src/tree_sitter/convert.rs +++ b/crates/postgresql-cst-parser/src/tree_sitter/convert.rs @@ -261,8 +261,8 @@ FROM A , B"#; - let root = cst::parse(&original).unwrap(); - let (new_root, _) = get_ts_tree_and_range_map(&original, &root); + let root = cst::parse(original).unwrap(); + let (new_root, _) = get_ts_tree_and_range_map(original, &root); let whitespace_removed: String = original.split_whitespace().collect(); // Lossless property of the CST is broken. @@ -355,7 +355,7 @@ FROM fn no_nested_from_list() { let input = "select * from t1, t2;"; let root = cst::parse(input).unwrap(); - let (new_root, _) = get_ts_tree_and_range_map(&input, &root); + let (new_root, _) = get_ts_tree_and_range_map(input, &root); assert_no_direct_nested_kind(&new_root, SyntaxKind::from_list); } @@ -365,7 +365,7 @@ FROM let input = "select t.a, t.b.c, t1.*, a[1], a[4][5], a[2:5], a[3].b, a[3][4].b, a[3:5].b;"; let root = cst::parse(input).unwrap(); - let (new_root, _) = get_ts_tree_and_range_map(&input, &root); + let (new_root, _) = get_ts_tree_and_range_map(input, &root); assert_no_direct_nested_kind(&new_root, SyntaxKind::indirection); } @@ -374,7 +374,7 @@ FROM fn no_nested_expr_list() { let input = "select a from t where a in (1,2,3);"; let root = cst::parse(input).unwrap(); - let (new_root, _) = get_ts_tree_and_range_map(&input, &root); + let (new_root, _) = get_ts_tree_and_range_map(input, &root); assert_no_direct_nested_kind(&new_root, SyntaxKind::expr_list); } @@ -383,7 +383,7 @@ FROM fn no_nested_func_arg_list() { let input = "select func(1, 2, func2(3, 4), 5);"; let root = cst::parse(input).unwrap(); - let (new_root, _) = get_ts_tree_and_range_map(&input, &root); + let (new_root, _) = get_ts_tree_and_range_map(input, &root); assert_no_direct_nested_kind(&new_root, SyntaxKind::func_arg_list); } @@ -392,7 +392,7 @@ FROM fn no_nested_when_clause_list() { let input = "select case when a then b when c then d when e then f else g end;"; let root = cst::parse(input).unwrap(); - let (new_root, _) = get_ts_tree_and_range_map(&input, &root); + let (new_root, _) = get_ts_tree_and_range_map(input, &root); assert_no_direct_nested_kind(&new_root, SyntaxKind::when_clause_list); } @@ -401,7 +401,7 @@ FROM fn no_nested_sortby_list() { let input = "select * from t order by a, b, c;"; let root = cst::parse(input).unwrap(); - let (new_root, _) = get_ts_tree_and_range_map(&input, &root); + let (new_root, _) = get_ts_tree_and_range_map(input, &root); assert_no_direct_nested_kind(&new_root, SyntaxKind::sortby_list); } @@ -410,7 +410,7 @@ FROM fn no_nested_groupby_list() { let input = "select a, b, c from t group by a, b, c;"; let root = cst::parse(input).unwrap(); - let (new_root, _) = get_ts_tree_and_range_map(&input, &root); + let (new_root, _) = get_ts_tree_and_range_map(input, &root); assert_no_direct_nested_kind(&new_root, SyntaxKind::group_by_list); } @@ -419,7 +419,7 @@ FROM fn no_nested_for_locking_items() { let input = "select * from t1, t2 for update of t1 for update of t2;"; let root = cst::parse(input).unwrap(); - let (new_root, _) = get_ts_tree_and_range_map(&input, &root); + let (new_root, _) = get_ts_tree_and_range_map(input, &root); assert_no_direct_nested_kind(&new_root, SyntaxKind::for_locking_items); } @@ -428,7 +428,7 @@ FROM fn no_nested_qualified_name_list() { let input = "select a from t for update of t.a, t.b;"; let root = cst::parse(input).unwrap(); - let (new_root, _) = get_ts_tree_and_range_map(&input, &root); + let (new_root, _) = get_ts_tree_and_range_map(input, &root); assert_no_direct_nested_kind(&new_root, SyntaxKind::qualified_name_list); } @@ -437,7 +437,7 @@ FROM fn no_nested_cte_list() { let input = "with a as (select 1), b as (select 2) select * from a, b;"; let root = cst::parse(input).unwrap(); - let (new_root, _) = get_ts_tree_and_range_map(&input, &root); + let (new_root, _) = get_ts_tree_and_range_map(input, &root); assert_no_direct_nested_kind(&new_root, SyntaxKind::cte_list); } @@ -446,7 +446,7 @@ FROM fn no_nested_name_list() { let input = "with t (a, b) as (select 1) select * from t;"; let root = cst::parse(input).unwrap(); - let (new_root, _) = get_ts_tree_and_range_map(&input, &root); + let (new_root, _) = get_ts_tree_and_range_map(input, &root); assert_no_direct_nested_kind(&new_root, SyntaxKind::name_list); } @@ -455,7 +455,7 @@ FROM fn no_nested_set_clause_list() { let input = "update t set a = 1, b = 2, c = 3;"; let root = cst::parse(input).unwrap(); - let (new_root, _) = get_ts_tree_and_range_map(&input, &root); + let (new_root, _) = get_ts_tree_and_range_map(input, &root); assert_no_direct_nested_kind(&new_root, SyntaxKind::set_clause_list); } @@ -464,7 +464,7 @@ FROM fn no_nested_set_target_list() { let input = "update t set (a, b, c) = (1, 2, 3) where id = 1;"; let root = cst::parse(input).unwrap(); - let (new_root, _) = get_ts_tree_and_range_map(&input, &root); + let (new_root, _) = get_ts_tree_and_range_map(input, &root); assert_no_direct_nested_kind(&new_root, SyntaxKind::set_target_list); } @@ -473,7 +473,7 @@ FROM fn no_nested_insert_column_list() { let input = "insert into t (a, b, c) values (1, 2, 3);"; let root = cst::parse(input).unwrap(); - let (new_root, _) = get_ts_tree_and_range_map(&input, &root); + let (new_root, _) = get_ts_tree_and_range_map(input, &root); assert_no_direct_nested_kind(&new_root, SyntaxKind::insert_column_list); } @@ -482,7 +482,7 @@ FROM fn no_nested_index_params() { let input = "insert into t (a, b, c) values (1, 2, 3) on conflict (a, b) do nothing;"; let root = cst::parse(input).unwrap(); - let (new_root, _) = get_ts_tree_and_range_map(&input, &root); + let (new_root, _) = get_ts_tree_and_range_map(input, &root); assert_no_direct_nested_kind(&new_root, SyntaxKind::index_params); } @@ -491,7 +491,7 @@ FROM fn no_nested_values_clause() { let input = "values (1,2,3), (4,5,6), (7,8,9);"; let root = cst::parse(input).unwrap(); - let (new_root, _) = get_ts_tree_and_range_map(&input, &root); + let (new_root, _) = get_ts_tree_and_range_map(input, &root); assert_no_direct_nested_kind(&new_root, SyntaxKind::values_clause); } diff --git a/crates/postgresql-cst-parser/tests/data/dst/merge.txt b/crates/postgresql-cst-parser/tests/data/dst/merge.txt index c149e35..98fbb45 100644 --- a/crates/postgresql-cst-parser/tests/data/dst/merge.txt +++ b/crates/postgresql-cst-parser/tests/data/dst/merge.txt @@ -63,9 +63,10 @@ Root@0..318 merge_when_list@73..316 merge_when_list@73..166 merge_when_clause@73..166 - WHEN@73..77 "WHEN" - Whitespace@77..78 " " - MATCHED@78..85 "MATCHED" + merge_when_tgt_matched@73..85 + WHEN@73..77 "WHEN" + Whitespace@77..78 " " + MATCHED@78..85 "MATCHED" Whitespace@85..86 " " THEN@86..90 "THEN" Whitespace@90..99 "\n " @@ -116,11 +117,12 @@ Root@0..318 IDENT@158..166 "quantity" Whitespace@166..171 "\n " merge_when_clause@171..316 - WHEN@171..175 "WHEN" - Whitespace@175..176 " " - NOT@176..179 "NOT" - Whitespace@179..180 " " - MATCHED@180..187 "MATCHED" + merge_when_tgt_not_matched@171..187 + WHEN@171..175 "WHEN" + Whitespace@175..176 " " + NOT@176..179 "NOT" + Whitespace@179..180 " " + MATCHED@180..187 "MATCHED" Whitespace@187..188 " " THEN@188..192 "THEN" Whitespace@192..201 "\n " diff --git a/crates/postgresql-cst-parser/tests/data/dst/postgresql_v17.txt b/crates/postgresql-cst-parser/tests/data/dst/postgresql_v17.txt new file mode 100644 index 0000000..fab68dd --- /dev/null +++ b/crates/postgresql-cst-parser/tests/data/dst/postgresql_v17.txt @@ -0,0 +1,79 @@ +Root@0..134 + parse_toplevel@0..133 + stmtmulti@0..133 + stmtmulti@0..132 + toplevel_stmt@0..132 + stmt@0..132 + SelectStmt@0..132 + select_no_parens@0..132 + simple_select@0..132 + SELECT@0..6 "SELECT" + Whitespace@6..7 " " + opt_target_list@7..8 + target_list@7..8 + target_el@7..8 + Star@7..8 "*" + Whitespace@8..12 "\n " + from_clause@12..132 + FROM@12..16 "FROM" + Whitespace@16..22 "\n " + from_list@22..132 + table_ref@22..132 + json_table@22..126 + JSON_TABLE@22..32 "JSON_TABLE" + LParen@32..33 "(" + Whitespace@33..41 "\n " + json_value_expr@41..59 + a_expr@41..59 + c_expr@41..59 + AexprConst@41..59 + Sconst@41..59 + SCONST@41..59 "'[ {\"c1\": null} ]'" + Comma@59..60 "," + Whitespace@60..68 "\n " + a_expr@68..74 + c_expr@68..74 + AexprConst@68..74 + Sconst@68..74 + SCONST@68..74 "'$[*]'" + Whitespace@74..75 " " + COLUMNS@75..82 "COLUMNS" + LParen@82..83 "(" + Whitespace@83..84 " " + json_table_column_definition_list@84..117 + json_table_column_definition@84..117 + ColId@84..86 + IDENT@84..86 "c1" + Whitespace@86..87 " " + Typename@87..90 + SimpleTypename@87..90 + Numeric@87..90 + INT_P@87..90 "INT" + Whitespace@90..91 " " + json_table_column_path_clause_opt@91..102 + PATH@91..95 "PATH" + Whitespace@95..96 " " + Sconst@96..102 + SCONST@96..102 "'$.c1'" + Whitespace@102..103 " " + json_behavior_clause_opt@103..117 + json_behavior@103..108 + json_behavior_type@103..108 + ERROR_P@103..108 "ERROR" + Whitespace@108..109 " " + ON@109..111 "ON" + Whitespace@111..112 " " + ERROR_P@112..117 "ERROR" + Whitespace@117..118 " " + RParen@118..119 ")" + Whitespace@119..125 "\n " + RParen@125..126 ")" + Whitespace@126..127 " " + opt_alias_clause@127..132 + alias_clause@127..132 + AS@127..129 "as" + Whitespace@129..130 " " + ColId@130..132 + IDENT@130..132 "jt" + Semicolon@132..133 ";" + Whitespace@133..134 "\n" diff --git a/crates/postgresql-cst-parser/tests/data/dst/select.txt b/crates/postgresql-cst-parser/tests/data/dst/select.txt index 0a07138..3262062 100644 --- a/crates/postgresql-cst-parser/tests/data/dst/select.txt +++ b/crates/postgresql-cst-parser/tests/data/dst/select.txt @@ -1,2580 +1,2657 @@ -Root@0..3262 +Root@0..3339 SQL_COMMENT@0..53 "-- https://www.postgr ..." Whitespace@53..54 "\n" - parse_toplevel@54..3262 - stmtmulti@54..3262 - stmtmulti@54..3261 - stmtmulti@54..3230 - stmtmulti@54..3166 - stmtmulti@54..2685 - stmtmulti@54..2223 - stmtmulti@54..1779 - stmtmulti@54..1719 - stmtmulti@54..1707 - stmtmulti@54..1318 - stmtmulti@54..1207 - stmtmulti@54..1150 - stmtmulti@54..1023 - stmtmulti@54..990 - stmtmulti@54..859 - stmtmulti@54..700 - stmtmulti@54..661 - stmtmulti@54..619 - stmtmulti@54..513 - stmtmulti@54..456 - stmtmulti@54..347 - stmtmulti@54..277 - stmtmulti@54..209 - stmtmulti@54..164 - toplevel_stmt@54..164 - stmt@54..164 - SelectStmt@54..164 - select_no_parens@54..164 - select_clause@54..131 - simple_select@54..131 - SELECT@54..60 "SELECT" - Whitespace@60..61 " " - distinct_clause@61..83 - DISTINCT@61..69 "DISTINCT" - Whitespace@69..70 " " - ON@70..72 "ON" - Whitespace@72..73 " " - LParen@73..74 "(" - expr_list@74..82 - a_expr@74..82 - c_expr@74..82 - columnref@74..82 - ColId@74..82 - unreserved_keyword@74..82 - LOCATION@74..82 "location" - RParen@82..83 ")" - Whitespace@83..84 " " - target_list@84..106 - target_list@84..98 - target_list@84..92 - target_el@84..92 - a_expr@84..92 - c_expr@84..92 - columnref@84..92 - ColId@84..92 - unreserved_keyword@84..92 - LOCATION@84..92 "location" - Comma@92..93 "," - Whitespace@93..94 " " - target_el@94..98 - a_expr@94..98 - c_expr@94..98 - columnref@94..98 - ColId@94..98 - col_name_keyword@94..98 - TIME@94..98 "time" - Comma@98..99 "," - Whitespace@99..100 " " - target_el@100..106 - a_expr@100..106 - c_expr@100..106 - columnref@100..106 - ColId@100..106 - IDENT@100..106 "report" - Whitespace@106..111 "\n " - from_clause@111..131 - FROM@111..115 "FROM" - Whitespace@115..116 " " - from_list@116..131 - table_ref@116..131 - relation_expr@116..131 - qualified_name@116..131 - ColId@116..131 - IDENT@116..131 "weather_reports" - Whitespace@131..136 "\n " - sort_clause@136..164 - ORDER@136..141 "ORDER" - Whitespace@141..142 " " - BY@142..144 "BY" - Whitespace@144..145 " " - sortby_list@145..164 - sortby_list@145..153 - sortby@145..153 - a_expr@145..153 - c_expr@145..153 - columnref@145..153 - ColId@145..153 - unreserved_keyword@145..153 - LOCATION@145..153 "location" - Comma@153..154 "," - Whitespace@154..155 " " - sortby@155..164 - a_expr@155..159 - c_expr@155..159 - columnref@155..159 - ColId@155..159 - col_name_keyword@155..159 - TIME@155..159 "time" - Whitespace@159..160 " " - opt_asc_desc@160..164 - DESC@160..164 "DESC" - Semicolon@164..165 ";" - Whitespace@165..166 "\n" - toplevel_stmt@166..209 - stmt@166..209 - SelectStmt@166..209 - select_no_parens@166..209 - select_clause@166..195 - simple_select@166..195 - SELECT@166..172 "SELECT" - Whitespace@172..173 " " - opt_target_list@173..177 - target_list@173..177 - target_el@173..177 - a_expr@173..177 - c_expr@173..177 - columnref@173..177 - ColId@173..177 - unreserved_keyword@173..177 - NAME_P@173..177 "name" - Whitespace@177..178 " " - from_clause@178..195 - FROM@178..182 "FROM" - Whitespace@182..183 " " - from_list@183..195 - table_ref@183..195 - relation_expr@183..195 - qualified_name@183..195 - ColId@183..195 - IDENT@183..195 "distributors" - Whitespace@195..196 " " - sort_clause@196..209 - ORDER@196..201 "ORDER" - Whitespace@201..202 " " - BY@202..204 "BY" - Whitespace@204..205 " " - sortby_list@205..209 - sortby@205..209 - a_expr@205..209 - c_expr@205..209 - columnref@205..209 - ColId@205..209 - IDENT@205..209 "code" - Semicolon@209..210 ";" - Whitespace@210..211 "\n" - toplevel_stmt@211..277 - stmt@211..277 - SelectStmt@211..277 - select_no_parens@211..277 - simple_select@211..277 - SELECT@211..217 "SELECT" - Whitespace@217..218 " " - opt_target_list@218..219 - target_list@218..219 - target_el@218..219 - Star@218..219 "*" - Whitespace@219..220 " " - from_clause@220..262 - FROM@220..224 "FROM" - Whitespace@224..225 " " - from_list@225..262 - table_ref@225..262 - select_with_parens@225..259 - LParen@225..226 "(" - select_no_parens@226..258 - select_clause@226..247 - simple_select@226..247 - SELECT@226..232 "SELECT" - Whitespace@232..233 " " - opt_target_list@233..234 - target_list@233..234 - target_el@233..234 - Star@233..234 "*" - Whitespace@234..235 " " - from_clause@235..247 - FROM@235..239 "FROM" - Whitespace@239..240 " " - from_list@240..247 - table_ref@240..247 - relation_expr@240..247 - qualified_name@240..247 - ColId@240..247 - IDENT@240..247 "mytable" - Whitespace@247..248 " " - for_locking_clause@248..258 - for_locking_items@248..258 - for_locking_item@248..258 - for_locking_strength@248..258 - FOR@248..251 "FOR" - Whitespace@251..252 " " - UPDATE@252..258 "UPDATE" - RParen@258..259 ")" - Whitespace@259..260 " " - opt_alias_clause@260..262 - alias_clause@260..262 - ColId@260..262 - IDENT@260..262 "ss" - Whitespace@262..263 " " - where_clause@263..277 - WHERE@263..268 "WHERE" - Whitespace@268..269 " " - a_expr@269..277 - a_expr@269..273 - c_expr@269..273 - columnref@269..273 - ColId@269..273 - IDENT@269..273 "col1" - Whitespace@273..274 " " - Equals@274..275 "=" - Whitespace@275..276 " " - a_expr@276..277 - c_expr@276..277 - AexprConst@276..277 - Iconst@276..277 - ICONST@276..277 "5" - Semicolon@277..278 ";" - Whitespace@278..279 "\n" - toplevel_stmt@279..347 - stmt@279..347 - SelectStmt@279..347 - select_no_parens@279..347 - select_clause@279..330 - simple_select@279..330 - SELECT@279..285 "SELECT" - Whitespace@285..286 " " - opt_target_list@286..287 - target_list@286..287 - target_el@286..287 - Star@286..287 "*" - Whitespace@287..288 " " - from_clause@288..330 - FROM@288..292 "FROM" - Whitespace@292..293 " " - from_list@293..330 - table_ref@293..330 - select_with_parens@293..327 - LParen@293..294 "(" - select_no_parens@294..326 - select_clause@294..315 - simple_select@294..315 - SELECT@294..300 "SELECT" - Whitespace@300..301 " " - opt_target_list@301..302 - target_list@301..302 - target_el@301..302 - Star@301..302 "*" - Whitespace@302..303 " " - from_clause@303..315 - FROM@303..307 "FROM" - Whitespace@307..308 " " - from_list@308..315 - table_ref@308..315 - relation_expr@308..315 - qualified_name@308..315 - ColId@308..315 - IDENT@308..315 "mytable" - Whitespace@315..316 " " - for_locking_clause@316..326 - for_locking_items@316..326 - for_locking_item@316..326 - for_locking_strength@316..326 - FOR@316..319 "FOR" - Whitespace@319..320 " " - UPDATE@320..326 "UPDATE" - RParen@326..327 ")" - Whitespace@327..328 " " - opt_alias_clause@328..330 - alias_clause@328..330 - ColId@328..330 - IDENT@328..330 "ss" - Whitespace@330..331 " " - sort_clause@331..347 - ORDER@331..336 "ORDER" - Whitespace@336..337 " " - BY@337..339 "BY" - Whitespace@339..340 " " - sortby_list@340..347 - sortby@340..347 - a_expr@340..347 - c_expr@340..347 - columnref@340..347 - ColId@340..347 - IDENT@340..347 "column1" - Semicolon@347..348 ";" - Whitespace@348..349 "\n" - toplevel_stmt@349..456 - stmt@349..456 - SelectStmt@349..456 - select_no_parens@349..456 - simple_select@349..456 - SELECT@349..355 "SELECT" - Whitespace@355..356 " " - opt_target_list@356..399 - target_list@356..399 - target_list@356..391 - target_list@356..378 - target_list@356..370 - target_list@356..363 - target_el@356..363 - a_expr@356..363 - c_expr@356..363 - columnref@356..363 - ColId@356..357 - IDENT@356..357 "f" - indirection@357..363 - indirection_el@357..363 - Dot@357..358 "." - attr_name@358..363 - ColLabel@358..363 - IDENT@358..363 "title" - Comma@363..364 "," - Whitespace@364..365 " " - target_el@365..370 - a_expr@365..370 - c_expr@365..370 - columnref@365..370 - ColId@365..366 - IDENT@365..366 "f" - indirection@366..370 - indirection_el@366..370 - Dot@366..367 "." - attr_name@367..370 - ColLabel@367..370 - IDENT@367..370 "did" - Comma@370..371 "," - Whitespace@371..372 " " - target_el@372..378 - a_expr@372..378 - c_expr@372..378 - columnref@372..378 - ColId@372..373 - IDENT@372..373 "d" - indirection@373..378 - indirection_el@373..378 - Dot@373..374 "." - attr_name@374..378 - ColLabel@374..378 - unreserved_keyword@374..378 - NAME_P@374..378 "name" - Comma@378..379 "," - Whitespace@379..380 " " - target_el@380..391 - a_expr@380..391 - c_expr@380..391 - columnref@380..391 - ColId@380..381 - IDENT@380..381 "f" - indirection@381..391 - indirection_el@381..391 - Dot@381..382 "." - attr_name@382..391 - ColLabel@382..391 - IDENT@382..391 "date_prod" - Comma@391..392 "," - Whitespace@392..393 " " - target_el@393..399 - a_expr@393..399 - c_expr@393..399 - columnref@393..399 - ColId@393..394 - IDENT@393..394 "f" - indirection@394..399 - indirection_el@394..399 - Dot@394..395 "." - attr_name@395..399 - ColLabel@395..399 - IDENT@395..399 "kind" - Whitespace@399..404 "\n " - from_clause@404..432 - FROM@404..408 "FROM" - Whitespace@408..409 " " - from_list@409..432 - from_list@409..423 - table_ref@409..423 - relation_expr@409..421 - qualified_name@409..421 - ColId@409..421 - IDENT@409..421 "distributors" - Whitespace@421..422 " " - opt_alias_clause@422..423 - alias_clause@422..423 - ColId@422..423 - IDENT@422..423 "d" - Comma@423..424 "," - Whitespace@424..425 " " - table_ref@425..432 - relation_expr@425..430 - qualified_name@425..430 - ColId@425..430 - IDENT@425..430 "films" - Whitespace@430..431 " " - opt_alias_clause@431..432 - alias_clause@431..432 - ColId@431..432 - IDENT@431..432 "f" - Whitespace@432..437 "\n " - where_clause@437..456 - WHERE@437..442 "WHERE" - Whitespace@442..443 " " - a_expr@443..456 - a_expr@443..448 - c_expr@443..448 - columnref@443..448 - ColId@443..444 - IDENT@443..444 "f" - indirection@444..448 - indirection_el@444..448 - Dot@444..445 "." - attr_name@445..448 - ColLabel@445..448 - IDENT@445..448 "did" - Whitespace@448..449 " " - Equals@449..450 "=" - Whitespace@450..451 " " - a_expr@451..456 - c_expr@451..456 - columnref@451..456 - ColId@451..452 - IDENT@451..452 "d" - indirection@452..456 - indirection_el@452..456 - Dot@452..453 "." - attr_name@453..456 - ColLabel@453..456 - IDENT@453..456 "did" - Semicolon@456..457 ";" - Whitespace@457..458 "\n" - toplevel_stmt@458..513 - stmt@458..513 - SelectStmt@458..513 - select_no_parens@458..513 - simple_select@458..513 - SELECT@458..464 "SELECT" - Whitespace@464..465 " " - opt_target_list@465..488 - target_list@465..488 - target_list@465..469 - target_el@465..469 - a_expr@465..469 - c_expr@465..469 - columnref@465..469 - ColId@465..469 - IDENT@465..469 "kind" - Comma@469..470 "," - Whitespace@470..471 " " - target_el@471..488 - a_expr@471..479 - c_expr@471..479 - func_expr@471..479 - func_application@471..479 - func_name@471..474 - type_function_name@471..474 - IDENT@471..474 "sum" - LParen@474..475 "(" - func_arg_list@475..478 - func_arg_expr@475..478 - a_expr@475..478 - c_expr@475..478 - columnref@475..478 - ColId@475..478 - IDENT@475..478 "len" - RParen@478..479 ")" - Whitespace@479..480 " " - AS@480..482 "AS" - Whitespace@482..483 " " - ColLabel@483..488 - IDENT@483..488 "total" - Whitespace@488..489 " " - from_clause@489..499 - FROM@489..493 "FROM" - Whitespace@493..494 " " - from_list@494..499 - table_ref@494..499 - relation_expr@494..499 - qualified_name@494..499 - ColId@494..499 - IDENT@494..499 "films" - Whitespace@499..500 " " - group_clause@500..513 - GROUP_P@500..505 "GROUP" - Whitespace@505..506 " " - BY@506..508 "BY" - Whitespace@508..509 " " - group_by_list@509..513 - group_by_item@509..513 - a_expr@509..513 - c_expr@509..513 - columnref@509..513 - ColId@509..513 - IDENT@509..513 "kind" - Semicolon@513..514 ";" - Whitespace@514..515 "\n" - toplevel_stmt@515..619 - stmt@515..619 - SelectStmt@515..619 - select_no_parens@515..619 - simple_select@515..619 - SELECT@515..521 "SELECT" - Whitespace@521..522 " " - opt_target_list@522..545 - target_list@522..545 - target_list@522..526 - target_el@522..526 - a_expr@522..526 - c_expr@522..526 - columnref@522..526 - ColId@522..526 - IDENT@522..526 "kind" - Comma@526..527 "," - Whitespace@527..528 " " - target_el@528..545 - a_expr@528..536 - c_expr@528..536 - func_expr@528..536 - func_application@528..536 - func_name@528..531 - type_function_name@528..531 - IDENT@528..531 "sum" - LParen@531..532 "(" - func_arg_list@532..535 - func_arg_expr@532..535 - a_expr@532..535 - c_expr@532..535 - columnref@532..535 - ColId@532..535 - IDENT@532..535 "len" - RParen@535..536 ")" - Whitespace@536..537 " " - AS@537..539 "AS" - Whitespace@539..540 " " - ColLabel@540..545 - IDENT@540..545 "total" - Whitespace@545..550 "\n " - from_clause@550..560 - FROM@550..554 "FROM" - Whitespace@554..555 " " - from_list@555..560 - table_ref@555..560 - relation_expr@555..560 - qualified_name@555..560 - ColId@555..560 - IDENT@555..560 "films" - Whitespace@560..565 "\n " - group_clause@565..578 - GROUP_P@565..570 "GROUP" - Whitespace@570..571 " " - BY@571..573 "BY" - Whitespace@573..574 " " - group_by_list@574..578 - group_by_item@574..578 - a_expr@574..578 - c_expr@574..578 - columnref@574..578 - ColId@574..578 - IDENT@574..578 "kind" - Whitespace@578..583 "\n " - having_clause@583..619 - HAVING@583..589 "HAVING" - Whitespace@589..590 " " - a_expr@590..619 - a_expr@590..598 - c_expr@590..598 - func_expr@590..598 - func_application@590..598 - func_name@590..593 - type_function_name@590..593 - IDENT@590..593 "sum" - LParen@593..594 "(" - func_arg_list@594..597 - func_arg_expr@594..597 - a_expr@594..597 - c_expr@594..597 - columnref@594..597 - ColId@594..597 - IDENT@594..597 "len" - RParen@597..598 ")" - Whitespace@598..599 " " - Less@599..600 "<" - Whitespace@600..601 " " - a_expr@601..619 - c_expr@601..619 - AexprConst@601..619 - ConstInterval@601..609 - INTERVAL@601..609 "interval" - Whitespace@609..610 " " - Sconst@610..619 - SCONST@610..619 "'5 hours'" - Semicolon@619..620 ";" - Whitespace@620..621 "\n" - toplevel_stmt@621..661 - stmt@621..661 - SelectStmt@621..661 - select_no_parens@621..661 - select_clause@621..647 - simple_select@621..647 - SELECT@621..627 "SELECT" - Whitespace@627..628 " " - opt_target_list@628..629 - target_list@628..629 - target_el@628..629 - Star@628..629 "*" - Whitespace@629..630 " " - from_clause@630..647 - FROM@630..634 "FROM" - Whitespace@634..635 " " - from_list@635..647 - table_ref@635..647 - relation_expr@635..647 - qualified_name@635..647 - ColId@635..647 - IDENT@635..647 "distributors" - Whitespace@647..648 " " - sort_clause@648..661 - ORDER@648..653 "ORDER" - Whitespace@653..654 " " - BY@654..656 "BY" - Whitespace@656..657 " " - sortby_list@657..661 - sortby@657..661 - a_expr@657..661 - c_expr@657..661 - columnref@657..661 - ColId@657..661 - unreserved_keyword@657..661 - NAME_P@657..661 "name" - Semicolon@661..662 ";" - Whitespace@662..663 "\n" - toplevel_stmt@663..700 - stmt@663..700 - SelectStmt@663..700 - select_no_parens@663..700 - select_clause@663..689 - simple_select@663..689 - SELECT@663..669 "SELECT" - Whitespace@669..670 " " - opt_target_list@670..671 - target_list@670..671 - target_el@670..671 - Star@670..671 "*" - Whitespace@671..672 " " - from_clause@672..689 - FROM@672..676 "FROM" - Whitespace@676..677 " " - from_list@677..689 - table_ref@677..689 - relation_expr@677..689 - qualified_name@677..689 - ColId@677..689 - IDENT@677..689 "distributors" - Whitespace@689..690 " " - sort_clause@690..700 - ORDER@690..695 "ORDER" - Whitespace@695..696 " " - BY@696..698 "BY" - Whitespace@698..699 " " - sortby_list@699..700 - sortby@699..700 - a_expr@699..700 - c_expr@699..700 - AexprConst@699..700 - Iconst@699..700 - ICONST@699..700 "2" - Semicolon@700..701 ";" - Whitespace@701..702 "\n" - toplevel_stmt@702..859 - stmt@702..859 - SelectStmt@702..859 - select_no_parens@702..859 - simple_select@702..859 - select_clause@702..786 - simple_select@702..786 - SELECT@702..708 "SELECT" - Whitespace@708..709 " " - opt_target_list@709..726 - target_list@709..726 - target_el@709..726 - a_expr@709..726 - c_expr@709..726 - columnref@709..726 - ColId@709..721 - IDENT@709..721 "distributors" - indirection@721..726 - indirection_el@721..726 - Dot@721..722 "." - attr_name@722..726 - ColLabel@722..726 - unreserved_keyword@722..726 - NAME_P@722..726 "name" - Whitespace@726..731 "\n " - from_clause@731..748 - FROM@731..735 "FROM" - Whitespace@735..736 " " - from_list@736..748 - table_ref@736..748 - relation_expr@736..748 - qualified_name@736..748 - ColId@736..748 - IDENT@736..748 "distributors" - Whitespace@748..753 "\n " - where_clause@753..786 - WHERE@753..758 "WHERE" - Whitespace@758..759 " " - a_expr@759..786 - a_expr@759..776 - c_expr@759..776 - columnref@759..776 - ColId@759..771 - IDENT@759..771 "distributors" - indirection@771..776 - indirection_el@771..776 - Dot@771..772 "." - attr_name@772..776 - ColLabel@772..776 - unreserved_keyword@772..776 - NAME_P@772..776 "name" - Whitespace@776..777 " " - LIKE@777..781 "LIKE" - Whitespace@781..782 " " - a_expr@782..786 - c_expr@782..786 - AexprConst@782..786 - Sconst@782..786 - SCONST@782..786 "'W%'" - Whitespace@786..787 "\n" - UNION@787..792 "UNION" - Whitespace@792..793 "\n" - select_clause@793..859 - simple_select@793..859 - SELECT@793..799 "SELECT" - Whitespace@799..800 " " - opt_target_list@800..811 - target_list@800..811 - target_el@800..811 - a_expr@800..811 - c_expr@800..811 - columnref@800..811 - ColId@800..806 - IDENT@800..806 "actors" - indirection@806..811 - indirection_el@806..811 - Dot@806..807 "." - attr_name@807..811 - ColLabel@807..811 - unreserved_keyword@807..811 - NAME_P@807..811 "name" - Whitespace@811..816 "\n " - from_clause@816..827 - FROM@816..820 "FROM" - Whitespace@820..821 " " - from_list@821..827 - table_ref@821..827 - relation_expr@821..827 - qualified_name@821..827 - ColId@821..827 - IDENT@821..827 "actors" - Whitespace@827..832 "\n " - where_clause@832..859 - WHERE@832..837 "WHERE" - Whitespace@837..838 " " - a_expr@838..859 - a_expr@838..849 - c_expr@838..849 - columnref@838..849 - ColId@838..844 - IDENT@838..844 "actors" - indirection@844..849 - indirection_el@844..849 - Dot@844..845 "." - attr_name@845..849 - ColLabel@845..849 - unreserved_keyword@845..849 - NAME_P@845..849 "name" - Whitespace@849..850 " " - LIKE@850..854 "LIKE" - Whitespace@854..855 " " - a_expr@855..859 - c_expr@855..859 - AexprConst@855..859 - Sconst@855..859 - SCONST@855..859 "'W%'" - Semicolon@859..860 ";" - Whitespace@860..861 "\n" - toplevel_stmt@861..990 - stmt@861..990 - CreateFunctionStmt@861..990 - CREATE@861..867 "CREATE" - Whitespace@867..868 " " - FUNCTION@868..876 "FUNCTION" - Whitespace@876..877 " " - func_name@877..889 - type_function_name@877..889 - IDENT@877..889 "distributors" - func_args_with_defaults@889..894 - LParen@889..890 "(" - func_args_with_defaults_list@890..893 - func_arg_with_default@890..893 - func_arg@890..893 - func_type@890..893 - Typename@890..893 - SimpleTypename@890..893 - Numeric@890..893 - INT_P@890..893 "int" - RParen@893..894 ")" - Whitespace@894..895 " " - RETURNS@895..902 "RETURNS" - Whitespace@902..903 " " - func_return@903..921 - func_type@903..921 - Typename@903..921 - SETOF@903..908 "SETOF" - Whitespace@908..909 " " - SimpleTypename@909..921 - GenericType@909..921 - type_function_name@909..921 - IDENT@909..921 "distributors" - Whitespace@921..922 " " - opt_createfunc_opt_list@922..990 - createfunc_opt_list@922..990 - createfunc_opt_list@922..977 - createfunc_opt_item@922..977 - AS@922..924 "AS" - Whitespace@924..925 " " - func_as@925..977 - Sconst@925..977 - SCONST@925..977 "$$\n SELECT * FROM ..." - Whitespace@977..978 " " - createfunc_opt_item@978..990 - LANGUAGE@978..986 "LANGUAGE" - Whitespace@986..987 " " - NonReservedWord_or_Sconst@987..990 - NonReservedWord@987..990 - unreserved_keyword@987..990 - SQL_P@987..990 "SQL" - Semicolon@990..991 ";" - Whitespace@991..992 "\n" - toplevel_stmt@992..1023 - stmt@992..1023 - SelectStmt@992..1023 - select_no_parens@992..1023 - simple_select@992..1023 - SELECT@992..998 "SELECT" - Whitespace@998..999 " " - opt_target_list@999..1000 - target_list@999..1000 - target_el@999..1000 - Star@999..1000 "*" - Whitespace@1000..1001 " " - from_clause@1001..1023 - FROM@1001..1005 "FROM" - Whitespace@1005..1006 " " - from_list@1006..1023 - table_ref@1006..1023 - func_table@1006..1023 - func_expr_windowless@1006..1023 - func_application@1006..1023 - func_name@1006..1018 - type_function_name@1006..1018 - IDENT@1006..1018 "distributors" - LParen@1018..1019 "(" - func_arg_list@1019..1022 - func_arg_expr@1019..1022 - a_expr@1019..1022 - c_expr@1019..1022 - AexprConst@1019..1022 - Iconst@1019..1022 - ICONST@1019..1022 "111" - RParen@1022..1023 ")" - Semicolon@1023..1024 ";" - Whitespace@1024..1025 "\n" - toplevel_stmt@1025..1150 - stmt@1025..1150 - CreateFunctionStmt@1025..1150 - CREATE@1025..1031 "CREATE" - Whitespace@1031..1032 " " - FUNCTION@1032..1040 "FUNCTION" - Whitespace@1040..1041 " " - func_name@1041..1055 - type_function_name@1041..1055 - IDENT@1041..1055 "distributors_2" - func_args_with_defaults@1055..1060 - LParen@1055..1056 "(" - func_args_with_defaults_list@1056..1059 - func_arg_with_default@1056..1059 - func_arg@1056..1059 - func_type@1056..1059 - Typename@1056..1059 - SimpleTypename@1056..1059 - Numeric@1056..1059 - INT_P@1056..1059 "int" - RParen@1059..1060 ")" - Whitespace@1060..1061 " " - RETURNS@1061..1068 "RETURNS" - Whitespace@1068..1069 " " - func_return@1069..1081 - func_type@1069..1081 - Typename@1069..1081 - SETOF@1069..1074 "SETOF" - Whitespace@1074..1075 " " - SimpleTypename@1075..1081 - GenericType@1075..1081 - type_function_name@1075..1081 - IDENT@1075..1081 "record" - Whitespace@1081..1082 " " - opt_createfunc_opt_list@1082..1150 - createfunc_opt_list@1082..1150 - createfunc_opt_list@1082..1137 - createfunc_opt_item@1082..1137 - AS@1082..1084 "AS" - Whitespace@1084..1085 " " - func_as@1085..1137 - Sconst@1085..1137 - SCONST@1085..1137 "$$\n SELECT * FROM ..." - Whitespace@1137..1138 " " - createfunc_opt_item@1138..1150 - LANGUAGE@1138..1146 "LANGUAGE" - Whitespace@1146..1147 " " - NonReservedWord_or_Sconst@1147..1150 - NonReservedWord@1147..1150 - unreserved_keyword@1147..1150 - SQL_P@1147..1150 "SQL" - Semicolon@1150..1151 ";" - Whitespace@1151..1153 "\n\n" - toplevel_stmt@1153..1207 - stmt@1153..1207 - SelectStmt@1153..1207 - select_no_parens@1153..1207 - simple_select@1153..1207 - SELECT@1153..1159 "SELECT" - Whitespace@1159..1160 " " - opt_target_list@1160..1161 - target_list@1160..1161 - target_el@1160..1161 - Star@1160..1161 "*" - Whitespace@1161..1162 " " - from_clause@1162..1207 - FROM@1162..1166 "FROM" - Whitespace@1166..1167 " " - from_list@1167..1207 - table_ref@1167..1207 - func_table@1167..1186 - func_expr_windowless@1167..1186 - func_application@1167..1186 - func_name@1167..1181 - type_function_name@1167..1181 - IDENT@1167..1181 "distributors_2" - LParen@1181..1182 "(" - func_arg_list@1182..1185 - func_arg_expr@1182..1185 - a_expr@1182..1185 - c_expr@1182..1185 - AexprConst@1182..1185 - Iconst@1182..1185 - ICONST@1182..1185 "111" - RParen@1185..1186 ")" - Whitespace@1186..1187 " " - func_alias_clause@1187..1207 - AS@1187..1189 "AS" - Whitespace@1189..1190 " " - LParen@1190..1191 "(" - TableFuncElementList@1191..1206 - TableFuncElementList@1191..1197 - TableFuncElement@1191..1197 - ColId@1191..1193 - IDENT@1191..1193 "f1" - Whitespace@1193..1194 " " - Typename@1194..1197 - SimpleTypename@1194..1197 - Numeric@1194..1197 - INT_P@1194..1197 "int" - Comma@1197..1198 "," - Whitespace@1198..1199 " " - TableFuncElement@1199..1206 - ColId@1199..1201 - IDENT@1199..1201 "f2" - Whitespace@1201..1202 " " - Typename@1202..1206 - SimpleTypename@1202..1206 - GenericType@1202..1206 - type_function_name@1202..1206 - unreserved_keyword@1202..1206 - TEXT_P@1202..1206 "text" - RParen@1206..1207 ")" - Semicolon@1207..1208 ";" - Whitespace@1208..1209 "\n" - toplevel_stmt@1209..1318 - stmt@1209..1318 - SelectStmt@1209..1318 - select_no_parens@1209..1318 - with_clause@1209..1276 - WITH@1209..1213 "WITH" - Whitespace@1213..1214 " " - cte_list@1214..1276 - common_table_expr@1214..1276 - name@1214..1215 - ColId@1214..1215 - IDENT@1214..1215 "t" - Whitespace@1215..1216 " " - AS@1216..1218 "AS" - Whitespace@1218..1219 " " - LParen@1219..1220 "(" - Whitespace@1220..1225 "\n " - PreparableStmt@1225..1272 - SelectStmt@1225..1272 - select_no_parens@1225..1272 - simple_select@1225..1272 - SELECT@1225..1231 "SELECT" - Whitespace@1231..1232 " " - opt_target_list@1232..1245 - target_list@1232..1245 - target_el@1232..1245 - a_expr@1232..1240 - c_expr@1232..1240 - func_expr@1232..1240 - func_application@1232..1240 - func_name@1232..1238 - type_function_name@1232..1238 - IDENT@1232..1238 "random" - LParen@1238..1239 "(" - RParen@1239..1240 ")" - Whitespace@1240..1241 " " - AS@1241..1243 "as" - Whitespace@1243..1244 " " - ColLabel@1244..1245 - IDENT@1244..1245 "x" - Whitespace@1245..1246 " " - from_clause@1246..1272 - FROM@1246..1250 "FROM" - Whitespace@1250..1251 " " - from_list@1251..1272 - table_ref@1251..1272 - func_table@1251..1272 - func_expr_windowless@1251..1272 - func_application@1251..1272 - func_name@1251..1266 - type_function_name@1251..1266 - IDENT@1251..1266 "generate_series" - LParen@1266..1267 "(" - func_arg_list@1267..1271 - func_arg_list@1267..1268 - func_arg_expr@1267..1268 - a_expr@1267..1268 - c_expr@1267..1268 - AexprConst@1267..1268 - Iconst@1267..1268 - ICONST@1267..1268 "1" - Comma@1268..1269 "," - Whitespace@1269..1270 " " - func_arg_expr@1270..1271 - a_expr@1270..1271 - c_expr@1270..1271 - AexprConst@1270..1271 - Iconst@1270..1271 - ICONST@1270..1271 "3" - RParen@1271..1272 ")" - Whitespace@1272..1275 "\n " - RParen@1275..1276 ")" - Whitespace@1276..1277 "\n" - select_clause@1277..1318 - simple_select@1277..1318 - select_clause@1277..1292 - simple_select@1277..1292 - SELECT@1277..1283 "SELECT" - Whitespace@1283..1284 " " - opt_target_list@1284..1285 - target_list@1284..1285 - target_el@1284..1285 - Star@1284..1285 "*" - Whitespace@1285..1286 " " - from_clause@1286..1292 - FROM@1286..1290 "FROM" - Whitespace@1290..1291 " " - from_list@1291..1292 - table_ref@1291..1292 - relation_expr@1291..1292 - qualified_name@1291..1292 - ColId@1291..1292 - IDENT@1291..1292 "t" - Whitespace@1292..1293 "\n" - UNION@1293..1298 "UNION" - Whitespace@1298..1299 " " - set_quantifier@1299..1302 - ALL@1299..1302 "ALL" - Whitespace@1302..1303 "\n" - select_clause@1303..1318 - simple_select@1303..1318 - SELECT@1303..1309 "SELECT" - Whitespace@1309..1310 " " - opt_target_list@1310..1311 - target_list@1310..1311 - target_el@1310..1311 - Star@1310..1311 "*" - Whitespace@1311..1312 " " - from_clause@1312..1318 - FROM@1312..1316 "FROM" - Whitespace@1316..1317 " " - from_list@1317..1318 - table_ref@1317..1318 - relation_expr@1317..1318 - qualified_name@1317..1318 - ColId@1317..1318 - IDENT@1317..1318 "t" - Semicolon@1318..1319 ";" - Whitespace@1319..1320 "\n" - toplevel_stmt@1320..1707 - stmt@1320..1707 - SelectStmt@1320..1707 - select_no_parens@1320..1707 - with_clause@1320..1652 - WITH@1320..1324 "WITH" - Whitespace@1324..1325 " " - RECURSIVE@1325..1334 "RECURSIVE" - Whitespace@1334..1335 " " - cte_list@1335..1652 - common_table_expr@1335..1652 - name@1335..1353 - ColId@1335..1353 - IDENT@1335..1353 "employee_recursive" - opt_name_list@1353..1392 - LParen@1353..1354 "(" - name_list@1354..1391 - name_list@1354..1377 - name_list@1354..1362 - name@1354..1362 - ColId@1354..1362 - IDENT@1354..1362 "distance" - Comma@1362..1363 "," - Whitespace@1363..1364 " " - name@1364..1377 - ColId@1364..1377 - IDENT@1364..1377 "employee_name" - Comma@1377..1378 "," - Whitespace@1378..1379 " " - name@1379..1391 - ColId@1379..1391 - IDENT@1379..1391 "manager_name" - RParen@1391..1392 ")" - Whitespace@1392..1393 " " - AS@1393..1395 "AS" - Whitespace@1395..1396 " " - LParen@1396..1397 "(" - Whitespace@1397..1402 "\n " - PreparableStmt@1402..1648 - SelectStmt@1402..1648 - select_no_parens@1402..1648 - simple_select@1402..1648 - select_clause@1402..1489 - simple_select@1402..1489 - SELECT@1402..1408 "SELECT" - Whitespace@1408..1409 " " - opt_target_list@1409..1439 - target_list@1409..1439 - target_list@1409..1425 - target_list@1409..1410 - target_el@1409..1410 - a_expr@1409..1410 - c_expr@1409..1410 - AexprConst@1409..1410 - Iconst@1409..1410 - ICONST@1409..1410 "1" - Comma@1410..1411 "," - Whitespace@1411..1412 " " - target_el@1412..1425 - a_expr@1412..1425 - c_expr@1412..1425 - columnref@1412..1425 - ColId@1412..1425 - IDENT@1412..1425 "employee_name" - Comma@1425..1426 "," - Whitespace@1426..1427 " " - target_el@1427..1439 - a_expr@1427..1439 - c_expr@1427..1439 - columnref@1427..1439 - ColId@1427..1439 - IDENT@1427..1439 "manager_name" - Whitespace@1439..1444 "\n " - from_clause@1444..1457 - FROM@1444..1448 "FROM" - Whitespace@1448..1449 " " - from_list@1449..1457 - table_ref@1449..1457 - relation_expr@1449..1457 - qualified_name@1449..1457 - ColId@1449..1457 - IDENT@1449..1457 "employee" - Whitespace@1457..1462 "\n " - where_clause@1462..1489 - WHERE@1462..1467 "WHERE" - Whitespace@1467..1468 " " - a_expr@1468..1489 - a_expr@1468..1480 - c_expr@1468..1480 - columnref@1468..1480 - ColId@1468..1480 - IDENT@1468..1480 "manager_name" - Whitespace@1480..1481 " " - Equals@1481..1482 "=" - Whitespace@1482..1483 " " - a_expr@1483..1489 - c_expr@1483..1489 - AexprConst@1483..1489 - Sconst@1483..1489 - SCONST@1483..1489 "'Mary'" - Whitespace@1489..1492 "\n " - UNION@1492..1497 "UNION" - Whitespace@1497..1498 " " - set_quantifier@1498..1501 - ALL@1498..1501 "ALL" - Whitespace@1501..1506 "\n " - select_clause@1506..1648 - simple_select@1506..1648 - SELECT@1506..1512 "SELECT" - Whitespace@1512..1513 " " - opt_target_list@1513..1561 - target_list@1513..1561 - target_list@1513..1545 - target_list@1513..1528 - target_el@1513..1528 - a_expr@1513..1528 - a_expr@1513..1524 - c_expr@1513..1524 - columnref@1513..1524 - ColId@1513..1515 - IDENT@1513..1515 "er" - indirection@1515..1524 - indirection_el@1515..1524 - Dot@1515..1516 "." - attr_name@1516..1524 - ColLabel@1516..1524 - IDENT@1516..1524 "distance" - Whitespace@1524..1525 " " - Plus@1525..1526 "+" - Whitespace@1526..1527 " " - a_expr@1527..1528 - c_expr@1527..1528 - AexprConst@1527..1528 - Iconst@1527..1528 - ICONST@1527..1528 "1" - Comma@1528..1529 "," - Whitespace@1529..1530 " " - target_el@1530..1545 - a_expr@1530..1545 - c_expr@1530..1545 - columnref@1530..1545 - ColId@1530..1531 - IDENT@1530..1531 "e" - indirection@1531..1545 - indirection_el@1531..1545 - Dot@1531..1532 "." - attr_name@1532..1545 - ColLabel@1532..1545 - IDENT@1532..1545 "employee_name" - Comma@1545..1546 "," - Whitespace@1546..1547 " " - target_el@1547..1561 - a_expr@1547..1561 - c_expr@1547..1561 - columnref@1547..1561 - ColId@1547..1548 - IDENT@1547..1548 "e" - indirection@1548..1561 - indirection_el@1548..1561 - Dot@1548..1549 "." - attr_name@1549..1561 - ColLabel@1549..1561 - IDENT@1549..1561 "manager_name" - Whitespace@1561..1566 "\n " - from_clause@1566..1604 - FROM@1566..1570 "FROM" - Whitespace@1570..1571 " " - from_list@1571..1604 - from_list@1571..1592 - table_ref@1571..1592 - relation_expr@1571..1589 - qualified_name@1571..1589 - ColId@1571..1589 - IDENT@1571..1589 "employee_recursive" - Whitespace@1589..1590 " " - opt_alias_clause@1590..1592 - alias_clause@1590..1592 - ColId@1590..1592 - IDENT@1590..1592 "er" - Comma@1592..1593 "," - Whitespace@1593..1594 " " - table_ref@1594..1604 - relation_expr@1594..1602 - qualified_name@1594..1602 - ColId@1594..1602 - IDENT@1594..1602 "employee" - Whitespace@1602..1603 " " - opt_alias_clause@1603..1604 - alias_clause@1603..1604 - ColId@1603..1604 - IDENT@1603..1604 "e" - Whitespace@1604..1609 "\n " - where_clause@1609..1648 - WHERE@1609..1614 "WHERE" - Whitespace@1614..1615 " " - a_expr@1615..1648 - a_expr@1615..1631 - c_expr@1615..1631 - columnref@1615..1631 - ColId@1615..1617 - IDENT@1615..1617 "er" - indirection@1617..1631 - indirection_el@1617..1631 - Dot@1617..1618 "." - attr_name@1618..1631 - ColLabel@1618..1631 - IDENT@1618..1631 "employee_name" - Whitespace@1631..1632 " " - Equals@1632..1633 "=" - Whitespace@1633..1634 " " - a_expr@1634..1648 - c_expr@1634..1648 - columnref@1634..1648 - ColId@1634..1635 - IDENT@1634..1635 "e" - indirection@1635..1648 - indirection_el@1635..1648 - Dot@1635..1636 "." - attr_name@1636..1648 - ColLabel@1636..1648 - IDENT@1636..1648 "manager_name" - Whitespace@1648..1651 "\n " - RParen@1651..1652 ")" - Whitespace@1652..1653 "\n" - select_clause@1653..1707 - simple_select@1653..1707 - SELECT@1653..1659 "SELECT" - Whitespace@1659..1660 " " - opt_target_list@1660..1683 - target_list@1660..1683 - target_list@1660..1668 - target_el@1660..1668 - a_expr@1660..1668 - c_expr@1660..1668 - columnref@1660..1668 - ColId@1660..1668 - IDENT@1660..1668 "distance" - Comma@1668..1669 "," - Whitespace@1669..1670 " " - target_el@1670..1683 - a_expr@1670..1683 - c_expr@1670..1683 - columnref@1670..1683 - ColId@1670..1683 - IDENT@1670..1683 "employee_name" - Whitespace@1683..1684 " " - from_clause@1684..1707 - FROM@1684..1688 "FROM" - Whitespace@1688..1689 " " - from_list@1689..1707 - table_ref@1689..1707 - relation_expr@1689..1707 - qualified_name@1689..1707 - ColId@1689..1707 - IDENT@1689..1707 "employee_recursive" - Semicolon@1707..1708 ";" - Whitespace@1708..1709 "\n" - toplevel_stmt@1709..1719 - stmt@1709..1719 - SelectStmt@1709..1719 - select_no_parens@1709..1719 - simple_select@1709..1719 - SELECT@1709..1715 "SELECT" - Whitespace@1715..1716 " " - opt_target_list@1716..1719 - target_list@1716..1719 - target_el@1716..1719 - a_expr@1716..1719 - a_expr@1716..1717 - c_expr@1716..1717 - AexprConst@1716..1717 - Iconst@1716..1717 - ICONST@1716..1717 "2" - Plus@1717..1718 "+" - a_expr@1718..1719 - c_expr@1718..1719 - AexprConst@1718..1719 - Iconst@1718..1719 - ICONST@1718..1719 "2" - Semicolon@1719..1720 ";" - Whitespace@1720..1721 "\n" - toplevel_stmt@1721..1779 - stmt@1721..1779 - SelectStmt@1721..1779 - select_no_parens@1721..1779 - simple_select@1721..1779 - SELECT@1721..1727 "SELECT" - Whitespace@1727..1728 " " - opt_target_list@1728..1742 - target_list@1728..1742 - target_el@1728..1742 - a_expr@1728..1742 - c_expr@1728..1742 - columnref@1728..1742 - ColId@1728..1740 - IDENT@1728..1740 "distributors" - indirection@1740..1742 - indirection_el@1740..1742 - Dot@1740..1741 "." - Star@1741..1742 "*" - Whitespace@1742..1743 " " - where_clause@1743..1779 - WHERE@1743..1748 "WHERE" - Whitespace@1748..1749 " " - a_expr@1749..1779 - a_expr@1749..1766 - c_expr@1749..1766 - columnref@1749..1766 - ColId@1749..1761 - IDENT@1749..1761 "distributors" - indirection@1761..1766 - indirection_el@1761..1766 - Dot@1761..1762 "." - attr_name@1762..1766 - ColLabel@1762..1766 - unreserved_keyword@1762..1766 - NAME_P@1762..1766 "name" - Whitespace@1766..1767 " " - Equals@1767..1768 "=" - Whitespace@1768..1769 " " - a_expr@1769..1779 - c_expr@1769..1779 - AexprConst@1769..1779 - Sconst@1769..1779 - SCONST@1769..1779 "'Westward'" - Semicolon@1779..1780 ";" - Whitespace@1780..1781 "\n" - toplevel_stmt@1781..2223 - stmt@1781..2223 - SelectStmt@1781..2223 - select_no_parens@1781..2223 - with_clause@1781..2028 - WITH@1781..1785 "WITH" - Whitespace@1785..1786 " " - cte_list@1786..2028 - cte_list@1786..1889 - common_table_expr@1786..1889 - name@1786..1800 - ColId@1786..1800 - IDENT@1786..1800 "regional_sales" - Whitespace@1800..1801 " " - AS@1801..1803 "AS" - Whitespace@1803..1804 " " - LParen@1804..1805 "(" - Whitespace@1805..1810 "\n " - PreparableStmt@1810..1887 - SelectStmt@1810..1887 - select_no_parens@1810..1887 - simple_select@1810..1887 - SELECT@1810..1816 "SELECT" - Whitespace@1816..1817 " " - opt_target_list@1817..1851 - target_list@1817..1851 - target_list@1817..1823 - target_el@1817..1823 - a_expr@1817..1823 - c_expr@1817..1823 - columnref@1817..1823 - ColId@1817..1823 - IDENT@1817..1823 "region" - Comma@1823..1824 "," - Whitespace@1824..1825 " " - target_el@1825..1851 - a_expr@1825..1836 - c_expr@1825..1836 - func_expr@1825..1836 - func_application@1825..1836 - func_name@1825..1828 - type_function_name@1825..1828 - IDENT@1825..1828 "SUM" - LParen@1828..1829 "(" - func_arg_list@1829..1835 - func_arg_expr@1829..1835 - a_expr@1829..1835 - c_expr@1829..1835 - columnref@1829..1835 - ColId@1829..1835 - IDENT@1829..1835 "amount" - RParen@1835..1836 ")" - Whitespace@1836..1837 " " - AS@1837..1839 "AS" - Whitespace@1839..1840 " " - ColLabel@1840..1851 - IDENT@1840..1851 "total_sales" - Whitespace@1851..1856 "\n " - from_clause@1856..1867 - FROM@1856..1860 "FROM" - Whitespace@1860..1861 " " - from_list@1861..1867 - table_ref@1861..1867 - relation_expr@1861..1867 - qualified_name@1861..1867 - ColId@1861..1867 - IDENT@1861..1867 "orders" - Whitespace@1867..1872 "\n " - group_clause@1872..1887 - GROUP_P@1872..1877 "GROUP" - Whitespace@1877..1878 " " - BY@1878..1880 "BY" - Whitespace@1880..1881 " " - group_by_list@1881..1887 - group_by_item@1881..1887 - a_expr@1881..1887 - c_expr@1881..1887 - columnref@1881..1887 - ColId@1881..1887 - IDENT@1881..1887 "region" - Whitespace@1887..1888 "\n" - RParen@1888..1889 ")" - Comma@1889..1890 "," - Whitespace@1890..1891 " " - common_table_expr@1891..2028 - name@1891..1902 - ColId@1891..1902 - IDENT@1891..1902 "top_regions" - Whitespace@1902..1903 " " - AS@1903..1905 "AS" - Whitespace@1905..1906 " " - LParen@1906..1907 "(" - Whitespace@1907..1912 "\n " - PreparableStmt@1912..2026 - SelectStmt@1912..2026 - select_no_parens@1912..2026 - simple_select@1912..2026 - SELECT@1912..1918 "SELECT" - Whitespace@1918..1919 " " - opt_target_list@1919..1925 - target_list@1919..1925 - target_el@1919..1925 - a_expr@1919..1925 - c_expr@1919..1925 - columnref@1919..1925 - ColId@1919..1925 - IDENT@1919..1925 "region" - Whitespace@1925..1930 "\n " - from_clause@1930..1949 - FROM@1930..1934 "FROM" - Whitespace@1934..1935 " " - from_list@1935..1949 - table_ref@1935..1949 - relation_expr@1935..1949 - qualified_name@1935..1949 - ColId@1935..1949 - IDENT@1935..1949 "regional_sales" - Whitespace@1949..1954 "\n " - where_clause@1954..2026 - WHERE@1954..1959 "WHERE" - Whitespace@1959..1960 " " - a_expr@1960..2026 - a_expr@1960..1971 - c_expr@1960..1971 - columnref@1960..1971 - ColId@1960..1971 - IDENT@1960..1971 "total_sales" - Whitespace@1971..1972 " " - Greater@1972..1973 ">" - Whitespace@1973..1974 " " - a_expr@1974..2026 - c_expr@1974..2026 - select_with_parens@1974..2026 - LParen@1974..1975 "(" - select_no_parens@1975..2025 - simple_select@1975..2025 - SELECT@1975..1981 "SELECT" - Whitespace@1981..1982 " " - opt_target_list@1982..2005 - target_list@1982..2005 - target_el@1982..2005 - a_expr@1982..2005 - a_expr@1982..2002 - a_expr@1982..1998 - c_expr@1982..1998 - func_expr@1982..1998 - func_application@1982..1998 - func_name@1982..1985 - type_function_name@1982..1985 - IDENT@1982..1985 "SUM" - LParen@1985..1986 "(" - func_arg_list@1986..1997 - func_arg_expr@1986..1997 - a_expr@1986..1997 - c_expr@1986..1997 - columnref@1986..1997 - ColId@1986..1997 - IDENT@1986..1997 "total_sales" - RParen@1997..1998 ")" - Star@1998..1999 "*" - a_expr@1999..2002 - c_expr@1999..2002 - AexprConst@1999..2002 - FCONST@1999..2002 "1.1" - Slash@2002..2003 "/" - a_expr@2003..2005 - c_expr@2003..2005 - AexprConst@2003..2005 - Iconst@2003..2005 - ICONST@2003..2005 "10" - Whitespace@2005..2006 " " - from_clause@2006..2025 - FROM@2006..2010 "FROM" - Whitespace@2010..2011 " " - from_list@2011..2025 - table_ref@2011..2025 - relation_expr@2011..2025 - qualified_name@2011..2025 - ColId@2011..2025 - IDENT@2011..2025 "regional_sales" - RParen@2025..2026 ")" - Whitespace@2026..2027 "\n" - RParen@2027..2028 ")" - Whitespace@2028..2029 "\n" - select_clause@2029..2223 - simple_select@2029..2223 - SELECT@2029..2035 "SELECT" - Whitespace@2035..2036 " " - opt_target_list@2036..2137 - target_list@2036..2137 - target_list@2036..2099 - target_list@2036..2059 - target_list@2036..2042 - target_el@2036..2042 - a_expr@2036..2042 - c_expr@2036..2042 - columnref@2036..2042 - ColId@2036..2042 - IDENT@2036..2042 "region" - Comma@2042..2043 "," - Whitespace@2043..2052 "\n " - target_el@2052..2059 - a_expr@2052..2059 - c_expr@2052..2059 - columnref@2052..2059 - ColId@2052..2059 - IDENT@2052..2059 "product" - Comma@2059..2060 "," - Whitespace@2060..2069 "\n " - target_el@2069..2099 - a_expr@2069..2082 - c_expr@2069..2082 - func_expr@2069..2082 - func_application@2069..2082 - func_name@2069..2072 - type_function_name@2069..2072 - IDENT@2069..2072 "SUM" - LParen@2072..2073 "(" - func_arg_list@2073..2081 - func_arg_expr@2073..2081 - a_expr@2073..2081 - c_expr@2073..2081 - columnref@2073..2081 - ColId@2073..2081 - IDENT@2073..2081 "quantity" - RParen@2081..2082 ")" - Whitespace@2082..2083 " " - AS@2083..2085 "AS" - Whitespace@2085..2086 " " - ColLabel@2086..2099 - IDENT@2086..2099 "product_units" - Comma@2099..2100 "," - Whitespace@2100..2109 "\n " - target_el@2109..2137 - a_expr@2109..2120 - c_expr@2109..2120 - func_expr@2109..2120 - func_application@2109..2120 - func_name@2109..2112 - type_function_name@2109..2112 - IDENT@2109..2112 "SUM" - LParen@2112..2113 "(" - func_arg_list@2113..2119 - func_arg_expr@2113..2119 - a_expr@2113..2119 - c_expr@2113..2119 - columnref@2113..2119 - ColId@2113..2119 - IDENT@2113..2119 "amount" - RParen@2119..2120 ")" - Whitespace@2120..2121 " " - AS@2121..2123 "AS" - Whitespace@2123..2124 " " - ColLabel@2124..2137 - IDENT@2124..2137 "product_sales" - Whitespace@2137..2138 "\n" - from_clause@2138..2149 - FROM@2138..2142 "FROM" - Whitespace@2142..2143 " " - from_list@2143..2149 - table_ref@2143..2149 - relation_expr@2143..2149 - qualified_name@2143..2149 - ColId@2143..2149 - IDENT@2143..2149 "orders" - Whitespace@2149..2150 "\n" - where_clause@2150..2198 - WHERE@2150..2155 "WHERE" - Whitespace@2155..2156 " " - a_expr@2156..2198 - a_expr@2156..2162 - c_expr@2156..2162 - columnref@2156..2162 - ColId@2156..2162 - IDENT@2156..2162 "region" - Whitespace@2162..2163 " " - IN_P@2163..2165 "IN" - Whitespace@2165..2166 " " - in_expr@2166..2198 - select_with_parens@2166..2198 - LParen@2166..2167 "(" - select_no_parens@2167..2197 - simple_select@2167..2197 - SELECT@2167..2173 "SELECT" - Whitespace@2173..2174 " " - opt_target_list@2174..2180 - target_list@2174..2180 - target_el@2174..2180 - a_expr@2174..2180 - c_expr@2174..2180 - columnref@2174..2180 - ColId@2174..2180 - IDENT@2174..2180 "region" - Whitespace@2180..2181 " " - from_clause@2181..2197 - FROM@2181..2185 "FROM" - Whitespace@2185..2186 " " - from_list@2186..2197 - table_ref@2186..2197 - relation_expr@2186..2197 - qualified_name@2186..2197 - ColId@2186..2197 - IDENT@2186..2197 "top_regions" - RParen@2197..2198 ")" - Whitespace@2198..2199 "\n" - group_clause@2199..2223 - GROUP_P@2199..2204 "GROUP" - Whitespace@2204..2205 " " - BY@2205..2207 "BY" - Whitespace@2207..2208 " " - group_by_list@2208..2223 - group_by_list@2208..2214 - group_by_item@2208..2214 - a_expr@2208..2214 - c_expr@2208..2214 - columnref@2208..2214 - ColId@2208..2214 - IDENT@2208..2214 "region" - Comma@2214..2215 "," - Whitespace@2215..2216 " " - group_by_item@2216..2223 - a_expr@2216..2223 - c_expr@2216..2223 - columnref@2216..2223 - ColId@2216..2223 - IDENT@2216..2223 "product" - Semicolon@2223..2224 ";" - Whitespace@2224..2225 "\n" - toplevel_stmt@2225..2685 - stmt@2225..2685 - SelectStmt@2225..2685 - select_no_parens@2225..2685 - with_clause@2225..2468 - WITH@2225..2229 "WITH" - Whitespace@2229..2230 " " - cte_list@2230..2468 - cte_list@2230..2333 - common_table_expr@2230..2333 - name@2230..2244 - ColId@2230..2244 - IDENT@2230..2244 "regional_sales" - Whitespace@2244..2245 " " - AS@2245..2247 "AS" - Whitespace@2247..2248 " " - LParen@2248..2249 "(" - Whitespace@2249..2254 "\n " - PreparableStmt@2254..2331 - SelectStmt@2254..2331 - select_no_parens@2254..2331 - simple_select@2254..2331 - SELECT@2254..2260 "SELECT" - Whitespace@2260..2261 " " - opt_target_list@2261..2295 - target_list@2261..2295 - target_list@2261..2267 - target_el@2261..2267 - a_expr@2261..2267 - c_expr@2261..2267 - columnref@2261..2267 - ColId@2261..2267 - IDENT@2261..2267 "region" - Comma@2267..2268 "," - Whitespace@2268..2269 " " - target_el@2269..2295 - a_expr@2269..2280 - c_expr@2269..2280 - func_expr@2269..2280 - func_application@2269..2280 - func_name@2269..2272 - type_function_name@2269..2272 - IDENT@2269..2272 "SUM" - LParen@2272..2273 "(" - func_arg_list@2273..2279 - func_arg_expr@2273..2279 - a_expr@2273..2279 - c_expr@2273..2279 - columnref@2273..2279 - ColId@2273..2279 - IDENT@2273..2279 "amount" - RParen@2279..2280 ")" - Whitespace@2280..2281 " " - AS@2281..2283 "AS" - Whitespace@2283..2284 " " - ColLabel@2284..2295 - IDENT@2284..2295 "total_sales" - Whitespace@2295..2300 "\n " - from_clause@2300..2311 - FROM@2300..2304 "FROM" - Whitespace@2304..2305 " " - from_list@2305..2311 - table_ref@2305..2311 - relation_expr@2305..2311 - qualified_name@2305..2311 - ColId@2305..2311 - IDENT@2305..2311 "orders" - Whitespace@2311..2316 "\n " - group_clause@2316..2331 - GROUP_P@2316..2321 "GROUP" - Whitespace@2321..2322 " " - BY@2322..2324 "BY" - Whitespace@2324..2325 " " - group_by_list@2325..2331 - group_by_item@2325..2331 - a_expr@2325..2331 - c_expr@2325..2331 - columnref@2325..2331 - ColId@2325..2331 - IDENT@2325..2331 "region" - Whitespace@2331..2332 "\n" - RParen@2332..2333 ")" - Comma@2333..2334 "," - Whitespace@2334..2335 " " - common_table_expr@2335..2468 - name@2335..2346 - ColId@2335..2346 - IDENT@2335..2346 "top_regions" - Whitespace@2346..2347 " " - AS@2347..2349 "AS" - Whitespace@2349..2350 " " - LParen@2350..2351 "(" - Whitespace@2351..2356 "\n " - PreparableStmt@2356..2466 - SelectStmt@2356..2466 - select_no_parens@2356..2466 - simple_select@2356..2466 - SELECT@2356..2362 "SELECT" - Whitespace@2362..2363 " " - opt_target_list@2363..2369 - target_list@2363..2369 - target_el@2363..2369 - a_expr@2363..2369 - c_expr@2363..2369 - columnref@2363..2369 - ColId@2363..2369 - IDENT@2363..2369 "region" - Whitespace@2369..2374 "\n " - from_clause@2374..2393 - FROM@2374..2378 "FROM" - Whitespace@2378..2379 " " - from_list@2379..2393 - table_ref@2379..2393 - relation_expr@2379..2393 - qualified_name@2379..2393 - ColId@2379..2393 - IDENT@2379..2393 "regional_sales" - Whitespace@2393..2398 "\n " - where_clause@2398..2466 - WHERE@2398..2403 "WHERE" - Whitespace@2403..2404 " " - a_expr@2404..2466 - a_expr@2404..2415 - c_expr@2404..2415 - columnref@2404..2415 - ColId@2404..2415 - IDENT@2404..2415 "total_sales" - Whitespace@2415..2416 " " - Greater@2416..2417 ">" - Whitespace@2417..2418 " " - a_expr@2418..2466 - c_expr@2418..2466 - select_with_parens@2418..2466 - LParen@2418..2419 "(" - select_no_parens@2419..2465 - simple_select@2419..2465 - SELECT@2419..2425 "SELECT" - Whitespace@2425..2426 " " - opt_target_list@2426..2445 - target_list@2426..2445 - target_el@2426..2445 - a_expr@2426..2445 - a_expr@2426..2442 - c_expr@2426..2442 - func_expr@2426..2442 - func_application@2426..2442 - func_name@2426..2429 - type_function_name@2426..2429 - IDENT@2426..2429 "SUM" - LParen@2429..2430 "(" - func_arg_list@2430..2441 - func_arg_expr@2430..2441 - a_expr@2430..2441 - c_expr@2430..2441 - columnref@2430..2441 - ColId@2430..2441 - IDENT@2430..2441 "total_sales" - RParen@2441..2442 ")" - Slash@2442..2443 "/" - a_expr@2443..2445 - c_expr@2443..2445 - AexprConst@2443..2445 - Iconst@2443..2445 - ICONST@2443..2445 "10" - Whitespace@2445..2446 " " - from_clause@2446..2465 - FROM@2446..2450 "FROM" - Whitespace@2450..2451 " " - from_list@2451..2465 - table_ref@2451..2465 - relation_expr@2451..2465 - qualified_name@2451..2465 - ColId@2451..2465 - IDENT@2451..2465 "regional_sales" - RParen@2465..2466 ")" - Whitespace@2466..2467 "\n" - RParen@2467..2468 ")" - Whitespace@2468..2469 "\n" - select_clause@2469..2685 - simple_select@2469..2685 - SELECT@2469..2475 "SELECT" - Whitespace@2475..2476 " " - opt_target_list@2476..2599 - target_list@2476..2599 - target_list@2476..2577 - target_list@2476..2539 - target_list@2476..2499 - target_list@2476..2482 - target_el@2476..2482 - a_expr@2476..2482 - c_expr@2476..2482 - columnref@2476..2482 - ColId@2476..2482 - IDENT@2476..2482 "region" - Comma@2482..2483 "," - Whitespace@2483..2492 "\n " - target_el@2492..2499 - a_expr@2492..2499 - c_expr@2492..2499 - columnref@2492..2499 - ColId@2492..2499 - IDENT@2492..2499 "product" - Comma@2499..2500 "," - Whitespace@2500..2509 "\n " - target_el@2509..2539 - a_expr@2509..2522 - c_expr@2509..2522 - func_expr@2509..2522 - func_application@2509..2522 - func_name@2509..2512 - type_function_name@2509..2512 - IDENT@2509..2512 "SUM" - LParen@2512..2513 "(" - func_arg_list@2513..2521 - func_arg_expr@2513..2521 - a_expr@2513..2521 - c_expr@2513..2521 - columnref@2513..2521 - ColId@2513..2521 - IDENT@2513..2521 "quantity" - RParen@2521..2522 ")" - Whitespace@2522..2523 " " - AS@2523..2525 "AS" - Whitespace@2525..2526 " " - ColLabel@2526..2539 - IDENT@2526..2539 "product_units" - Comma@2539..2540 "," - Whitespace@2540..2549 "\n " - target_el@2549..2577 - a_expr@2549..2560 - c_expr@2549..2560 - func_expr@2549..2560 - func_application@2549..2560 - func_name@2549..2552 - type_function_name@2549..2552 - IDENT@2549..2552 "SUM" - LParen@2552..2553 "(" - func_arg_list@2553..2559 - func_arg_expr@2553..2559 - a_expr@2553..2559 - c_expr@2553..2559 - columnref@2553..2559 - ColId@2553..2559 - IDENT@2553..2559 "amount" - RParen@2559..2560 ")" - Whitespace@2560..2561 " " - AS@2561..2563 "AS" - Whitespace@2563..2564 " " - ColLabel@2564..2577 - IDENT@2564..2577 "product_sales" - Comma@2577..2578 "," - Whitespace@2578..2587 "\n " - target_el@2587..2599 - a_expr@2587..2594 - a_expr@2587..2590 - a_expr@2587..2588 - c_expr@2587..2588 - AexprConst@2587..2588 - Iconst@2587..2588 - ICONST@2587..2588 "1" - Star@2588..2589 "*" - a_expr@2589..2590 - c_expr@2589..2590 - AexprConst@2589..2590 - Iconst@2589..2590 - ICONST@2589..2590 "2" - Minus@2590..2591 "-" - a_expr@2591..2594 - a_expr@2591..2592 - c_expr@2591..2592 - AexprConst@2591..2592 - Iconst@2591..2592 - ICONST@2591..2592 "3" - Slash@2592..2593 "/" - a_expr@2593..2594 - c_expr@2593..2594 - AexprConst@2593..2594 - Iconst@2593..2594 - ICONST@2593..2594 "4" - Whitespace@2594..2595 " " - AS@2595..2597 "as" - Whitespace@2597..2598 " " - ColLabel@2598..2599 - IDENT@2598..2599 "X" - Whitespace@2599..2600 "\n" - from_clause@2600..2611 - FROM@2600..2604 "FROM" - Whitespace@2604..2605 " " - from_list@2605..2611 - table_ref@2605..2611 - relation_expr@2605..2611 - qualified_name@2605..2611 - ColId@2605..2611 - IDENT@2605..2611 "orders" - Whitespace@2611..2612 "\n" - where_clause@2612..2660 - WHERE@2612..2617 "WHERE" - Whitespace@2617..2618 " " - a_expr@2618..2660 - a_expr@2618..2624 - c_expr@2618..2624 - columnref@2618..2624 - ColId@2618..2624 - IDENT@2618..2624 "region" - Whitespace@2624..2625 " " - IN_P@2625..2627 "IN" - Whitespace@2627..2628 " " - in_expr@2628..2660 - select_with_parens@2628..2660 - LParen@2628..2629 "(" - select_no_parens@2629..2659 - simple_select@2629..2659 - SELECT@2629..2635 "SELECT" - Whitespace@2635..2636 " " - opt_target_list@2636..2642 - target_list@2636..2642 - target_el@2636..2642 - a_expr@2636..2642 - c_expr@2636..2642 - columnref@2636..2642 - ColId@2636..2642 - IDENT@2636..2642 "region" - Whitespace@2642..2643 " " - from_clause@2643..2659 - FROM@2643..2647 "FROM" - Whitespace@2647..2648 " " - from_list@2648..2659 - table_ref@2648..2659 - relation_expr@2648..2659 - qualified_name@2648..2659 - ColId@2648..2659 - IDENT@2648..2659 "top_regions" - RParen@2659..2660 ")" - Whitespace@2660..2661 "\n" - group_clause@2661..2685 - GROUP_P@2661..2666 "GROUP" - Whitespace@2666..2667 " " - BY@2667..2669 "BY" - Whitespace@2669..2670 " " - group_by_list@2670..2685 - group_by_list@2670..2676 - group_by_item@2670..2676 - a_expr@2670..2676 - c_expr@2670..2676 - columnref@2670..2676 - ColId@2670..2676 - IDENT@2670..2676 "region" - Comma@2676..2677 "," - Whitespace@2677..2678 " " - group_by_item@2678..2685 - a_expr@2678..2685 - c_expr@2678..2685 - columnref@2678..2685 - ColId@2678..2685 - IDENT@2678..2685 "product" - Semicolon@2685..2686 ";" - Whitespace@2686..2687 "\n" - toplevel_stmt@2687..3166 - stmt@2687..3166 - SelectStmt@2687..3166 - select_no_parens@2687..3166 - with_clause@2687..2930 - WITH@2687..2691 "WITH" - Whitespace@2691..2692 " " - cte_list@2692..2930 - cte_list@2692..2795 - common_table_expr@2692..2795 - name@2692..2706 - ColId@2692..2706 - IDENT@2692..2706 "regional_sales" - Whitespace@2706..2707 " " - AS@2707..2709 "AS" - Whitespace@2709..2710 " " - LParen@2710..2711 "(" - Whitespace@2711..2716 "\n " - PreparableStmt@2716..2793 - SelectStmt@2716..2793 - select_no_parens@2716..2793 - simple_select@2716..2793 - SELECT@2716..2722 "SELECT" - Whitespace@2722..2723 " " - opt_target_list@2723..2757 - target_list@2723..2757 - target_list@2723..2729 - target_el@2723..2729 - a_expr@2723..2729 - c_expr@2723..2729 - columnref@2723..2729 - ColId@2723..2729 - IDENT@2723..2729 "region" - Comma@2729..2730 "," - Whitespace@2730..2731 " " - target_el@2731..2757 - a_expr@2731..2742 - c_expr@2731..2742 - func_expr@2731..2742 - func_application@2731..2742 - func_name@2731..2734 - type_function_name@2731..2734 - IDENT@2731..2734 "SUM" - LParen@2734..2735 "(" - func_arg_list@2735..2741 - func_arg_expr@2735..2741 - a_expr@2735..2741 - c_expr@2735..2741 - columnref@2735..2741 - ColId@2735..2741 - IDENT@2735..2741 "amount" - RParen@2741..2742 ")" - Whitespace@2742..2743 " " - AS@2743..2745 "AS" - Whitespace@2745..2746 " " - ColLabel@2746..2757 - IDENT@2746..2757 "total_sales" - Whitespace@2757..2762 "\n " - from_clause@2762..2773 - FROM@2762..2766 "FROM" - Whitespace@2766..2767 " " - from_list@2767..2773 - table_ref@2767..2773 - relation_expr@2767..2773 - qualified_name@2767..2773 - ColId@2767..2773 - IDENT@2767..2773 "orders" - Whitespace@2773..2778 "\n " - group_clause@2778..2793 - GROUP_P@2778..2783 "GROUP" - Whitespace@2783..2784 " " - BY@2784..2786 "BY" - Whitespace@2786..2787 " " - group_by_list@2787..2793 - group_by_item@2787..2793 - a_expr@2787..2793 - c_expr@2787..2793 - columnref@2787..2793 - ColId@2787..2793 - IDENT@2787..2793 "region" - Whitespace@2793..2794 "\n" - RParen@2794..2795 ")" - Comma@2795..2796 "," - Whitespace@2796..2797 " " - common_table_expr@2797..2930 - name@2797..2808 - ColId@2797..2808 - IDENT@2797..2808 "top_regions" - Whitespace@2808..2809 " " - AS@2809..2811 "AS" - Whitespace@2811..2812 " " - LParen@2812..2813 "(" - Whitespace@2813..2818 "\n " - PreparableStmt@2818..2928 - SelectStmt@2818..2928 - select_no_parens@2818..2928 - simple_select@2818..2928 - SELECT@2818..2824 "SELECT" - Whitespace@2824..2825 " " - opt_target_list@2825..2831 - target_list@2825..2831 - target_el@2825..2831 - a_expr@2825..2831 - c_expr@2825..2831 - columnref@2825..2831 - ColId@2825..2831 - IDENT@2825..2831 "region" - Whitespace@2831..2836 "\n " - from_clause@2836..2855 - FROM@2836..2840 "FROM" - Whitespace@2840..2841 " " - from_list@2841..2855 - table_ref@2841..2855 - relation_expr@2841..2855 - qualified_name@2841..2855 - ColId@2841..2855 - IDENT@2841..2855 "regional_sales" - Whitespace@2855..2860 "\n " - where_clause@2860..2928 - WHERE@2860..2865 "WHERE" - Whitespace@2865..2866 " " - a_expr@2866..2928 - a_expr@2866..2877 - c_expr@2866..2877 - columnref@2866..2877 - ColId@2866..2877 - IDENT@2866..2877 "total_sales" - Whitespace@2877..2878 " " - Greater@2878..2879 ">" - Whitespace@2879..2880 " " - a_expr@2880..2928 - c_expr@2880..2928 - select_with_parens@2880..2928 - LParen@2880..2881 "(" - select_no_parens@2881..2927 - simple_select@2881..2927 - SELECT@2881..2887 "SELECT" - Whitespace@2887..2888 " " - opt_target_list@2888..2907 - target_list@2888..2907 - target_el@2888..2907 - a_expr@2888..2907 - a_expr@2888..2904 - c_expr@2888..2904 - func_expr@2888..2904 - func_application@2888..2904 - func_name@2888..2891 - type_function_name@2888..2891 - IDENT@2888..2891 "SUM" - LParen@2891..2892 "(" - func_arg_list@2892..2903 - func_arg_expr@2892..2903 - a_expr@2892..2903 - c_expr@2892..2903 - columnref@2892..2903 - ColId@2892..2903 - IDENT@2892..2903 "total_sales" - RParen@2903..2904 ")" - Slash@2904..2905 "/" - a_expr@2905..2907 - c_expr@2905..2907 - AexprConst@2905..2907 - Iconst@2905..2907 - ICONST@2905..2907 "10" - Whitespace@2907..2908 " " - from_clause@2908..2927 - FROM@2908..2912 "FROM" - Whitespace@2912..2913 " " - from_list@2913..2927 - table_ref@2913..2927 - relation_expr@2913..2927 - qualified_name@2913..2927 - ColId@2913..2927 - IDENT@2913..2927 "regional_sales" - RParen@2927..2928 ")" - Whitespace@2928..2929 "\n" - RParen@2929..2930 ")" - Whitespace@2930..2931 "\n" - SQL_COMMENT@2931..2938 "-- test" - Whitespace@2938..2939 "\n" - C_COMMENT@2939..2949 "/* test */" - Whitespace@2949..2950 "\n" - select_clause@2950..3166 - simple_select@2950..3166 - SELECT@2950..2956 "SELECT" - Whitespace@2956..2957 " " - opt_target_list@2957..3080 - target_list@2957..3080 - target_list@2957..3058 - target_list@2957..3020 - target_list@2957..2980 - target_list@2957..2963 - target_el@2957..2963 - a_expr@2957..2963 - c_expr@2957..2963 - columnref@2957..2963 - ColId@2957..2963 - IDENT@2957..2963 "region" - Comma@2963..2964 "," - Whitespace@2964..2973 "\n " - target_el@2973..2980 - a_expr@2973..2980 - c_expr@2973..2980 - columnref@2973..2980 - ColId@2973..2980 - IDENT@2973..2980 "product" - Comma@2980..2981 "," - Whitespace@2981..2990 "\n " - target_el@2990..3020 - a_expr@2990..3003 - c_expr@2990..3003 - func_expr@2990..3003 - func_application@2990..3003 - func_name@2990..2993 - type_function_name@2990..2993 - IDENT@2990..2993 "SUM" - LParen@2993..2994 "(" - func_arg_list@2994..3002 - func_arg_expr@2994..3002 - a_expr@2994..3002 - c_expr@2994..3002 - columnref@2994..3002 - ColId@2994..3002 - IDENT@2994..3002 "quantity" - RParen@3002..3003 ")" - Whitespace@3003..3004 " " - AS@3004..3006 "AS" - Whitespace@3006..3007 " " - ColLabel@3007..3020 - IDENT@3007..3020 "product_units" - Comma@3020..3021 "," - Whitespace@3021..3030 "\n " - target_el@3030..3058 - a_expr@3030..3041 - c_expr@3030..3041 - func_expr@3030..3041 - func_application@3030..3041 - func_name@3030..3033 - type_function_name@3030..3033 - IDENT@3030..3033 "SUM" - LParen@3033..3034 "(" - func_arg_list@3034..3040 - func_arg_expr@3034..3040 - a_expr@3034..3040 - c_expr@3034..3040 - columnref@3034..3040 - ColId@3034..3040 - IDENT@3034..3040 "amount" - RParen@3040..3041 ")" - Whitespace@3041..3042 " " - AS@3042..3044 "AS" - Whitespace@3044..3045 " " - ColLabel@3045..3058 - IDENT@3045..3058 "product_sales" - Comma@3058..3059 "," - Whitespace@3059..3068 "\n " - target_el@3068..3080 - a_expr@3068..3075 - a_expr@3068..3071 - a_expr@3068..3069 - c_expr@3068..3069 - AexprConst@3068..3069 - Iconst@3068..3069 - ICONST@3068..3069 "1" - Star@3069..3070 "*" - a_expr@3070..3071 - c_expr@3070..3071 - AexprConst@3070..3071 - Iconst@3070..3071 - ICONST@3070..3071 "2" - Minus@3071..3072 "-" - a_expr@3072..3075 - a_expr@3072..3073 - c_expr@3072..3073 - AexprConst@3072..3073 - Iconst@3072..3073 - ICONST@3072..3073 "3" - Slash@3073..3074 "/" - a_expr@3074..3075 - c_expr@3074..3075 - AexprConst@3074..3075 - Iconst@3074..3075 - ICONST@3074..3075 "4" - Whitespace@3075..3076 " " - AS@3076..3078 "as" - Whitespace@3078..3079 " " - ColLabel@3079..3080 - IDENT@3079..3080 "X" - Whitespace@3080..3081 "\n" - from_clause@3081..3092 - FROM@3081..3085 "FROM" - Whitespace@3085..3086 " " - from_list@3086..3092 - table_ref@3086..3092 - relation_expr@3086..3092 - qualified_name@3086..3092 - ColId@3086..3092 - IDENT@3086..3092 "orders" - Whitespace@3092..3093 "\n" - where_clause@3093..3141 - WHERE@3093..3098 "WHERE" - Whitespace@3098..3099 " " - a_expr@3099..3141 - a_expr@3099..3105 - c_expr@3099..3105 - columnref@3099..3105 - ColId@3099..3105 - IDENT@3099..3105 "region" - Whitespace@3105..3106 " " - IN_P@3106..3108 "IN" - Whitespace@3108..3109 " " - in_expr@3109..3141 - select_with_parens@3109..3141 - LParen@3109..3110 "(" - select_no_parens@3110..3140 - simple_select@3110..3140 - SELECT@3110..3116 "SELECT" - Whitespace@3116..3117 " " - opt_target_list@3117..3123 - target_list@3117..3123 - target_el@3117..3123 - a_expr@3117..3123 - c_expr@3117..3123 - columnref@3117..3123 - ColId@3117..3123 - IDENT@3117..3123 "region" - Whitespace@3123..3124 " " - from_clause@3124..3140 - FROM@3124..3128 "FROM" - Whitespace@3128..3129 " " - from_list@3129..3140 - table_ref@3129..3140 - relation_expr@3129..3140 - qualified_name@3129..3140 - ColId@3129..3140 - IDENT@3129..3140 "top_regions" - RParen@3140..3141 ")" - Whitespace@3141..3142 "\n" - group_clause@3142..3166 - GROUP_P@3142..3147 "GROUP" - Whitespace@3147..3148 " " - BY@3148..3150 "BY" - Whitespace@3150..3151 " " - group_by_list@3151..3166 - group_by_list@3151..3157 - group_by_item@3151..3157 - a_expr@3151..3157 - c_expr@3151..3157 - columnref@3151..3157 - ColId@3151..3157 - IDENT@3151..3157 "region" - Comma@3157..3158 "," - Whitespace@3158..3159 " " - group_by_item@3159..3166 - a_expr@3159..3166 - c_expr@3159..3166 - columnref@3159..3166 - ColId@3159..3166 - IDENT@3159..3166 "product" - Semicolon@3166..3167 ";" - Whitespace@3167..3168 "\n" - SQL_COMMENT@3168..3172 "-- a" - Whitespace@3172..3173 "\n" - C_COMMENT@3173..3180 "/* b */" - Whitespace@3180..3181 "\n" - toplevel_stmt@3181..3230 - stmt@3181..3230 - SelectStmt@3181..3230 - select_no_parens@3181..3230 - simple_select@3181..3230 - SELECT@3181..3187 "SELECT" - Whitespace@3187..3188 " " - C_COMMENT@3188..3194 "/*$c*/" - opt_target_list@3194..3230 - target_list@3194..3230 - target_list@3194..3215 - target_list@3194..3200 - target_el@3194..3200 - a_expr@3194..3195 - c_expr@3194..3195 - AexprConst@3194..3195 - Iconst@3194..3195 - ICONST@3194..3195 "0" - Whitespace@3195..3196 " " - AS@3196..3198 "as" - Whitespace@3198..3199 " " - ColLabel@3199..3200 - IDENT@3199..3200 "a" - Comma@3200..3201 "," - Whitespace@3201..3202 " " - SQL_COMMENT@3202..3206 "-- d" - Whitespace@3206..3207 "\n" - SQL_COMMENT@3207..3211 "-- e" - Whitespace@3211..3212 "\n" - target_el@3212..3215 - a_expr@3212..3213 - c_expr@3212..3213 - columnref@3212..3213 - ColId@3212..3213 - IDENT@3212..3213 "b" - Whitespace@3213..3214 " " - BareColLabel@3214..3215 - IDENT@3214..3215 "b" - Whitespace@3215..3216 " " - SQL_COMMENT@3216..3220 "-- f" - Whitespace@3220..3221 "\n" - Comma@3221..3222 "," - Whitespace@3222..3229 " " - target_el@3229..3230 - a_expr@3229..3230 - c_expr@3229..3230 - columnref@3229..3230 - ColId@3229..3230 - IDENT@3229..3230 "c" - Whitespace@3230..3231 " " - SQL_COMMENT@3231..3235 "-- g" - Whitespace@3235..3236 "\n" - Semicolon@3236..3237 ";" - Whitespace@3237..3238 " " - SQL_COMMENT@3238..3242 "-- h" - Whitespace@3242..3243 "\n" - toplevel_stmt@3243..3261 - stmt@3243..3261 - SelectStmt@3243..3261 - select_no_parens@3243..3261 - simple_select@3243..3261 - SELECT@3243..3249 "SELECT" - Whitespace@3249..3250 " " - opt_target_list@3250..3261 - target_list@3250..3261 - target_el@3250..3261 - a_expr@3250..3254 - a_expr@3250..3251 - c_expr@3250..3251 - AexprConst@3250..3251 - Iconst@3250..3251 - ICONST@3250..3251 "1" - Star@3251..3252 "*" - a_expr@3252..3254 - Minus@3252..3253 "-" - a_expr@3253..3254 - c_expr@3253..3254 - AexprConst@3253..3254 - Iconst@3253..3254 - ICONST@3253..3254 "1" - Whitespace@3254..3255 " " - AS@3255..3257 "as" - Whitespace@3257..3258 " " - ColLabel@3258..3261 - IDENT@3258..3261 "あ" - Semicolon@3261..3262 ";" + parse_toplevel@54..3338 + stmtmulti@54..3338 + stmtmulti@54..3337 + stmtmulti@54..3317 + stmtmulti@54..3293 + stmtmulti@54..3271 + stmtmulti@54..3253 + stmtmulti@54..3230 + stmtmulti@54..3166 + stmtmulti@54..2685 + stmtmulti@54..2223 + stmtmulti@54..1779 + stmtmulti@54..1719 + stmtmulti@54..1707 + stmtmulti@54..1318 + stmtmulti@54..1207 + stmtmulti@54..1150 + stmtmulti@54..1023 + stmtmulti@54..990 + stmtmulti@54..859 + stmtmulti@54..700 + stmtmulti@54..661 + stmtmulti@54..619 + stmtmulti@54..513 + stmtmulti@54..456 + stmtmulti@54..347 + stmtmulti@54..277 + stmtmulti@54..209 + stmtmulti@54..164 + toplevel_stmt@54..164 + stmt@54..164 + SelectStmt@54..164 + select_no_parens@54..164 + select_clause@54..131 + simple_select@54..131 + SELECT@54..60 "SELECT" + Whitespace@60..61 " " + distinct_clause@61..83 + DISTINCT@61..69 "DISTINCT" + Whitespace@69..70 " " + ON@70..72 "ON" + Whitespace@72..73 " " + LParen@73..74 "(" + expr_list@74..82 + a_expr@74..82 + c_expr@74..82 + columnref@74..82 + ColId@74..82 + unreserved_keyword@74..82 + LOCATION@74..82 "location" + RParen@82..83 ")" + Whitespace@83..84 " " + target_list@84..106 + target_list@84..98 + target_list@84..92 + target_el@84..92 + a_expr@84..92 + c_expr@84..92 + columnref@84..92 + ColId@84..92 + unreserved_keyword@84..92 + LOCATION@84..92 "location" + Comma@92..93 "," + Whitespace@93..94 " " + target_el@94..98 + a_expr@94..98 + c_expr@94..98 + columnref@94..98 + ColId@94..98 + col_name_keyword@94..98 + TIME@94..98 "time" + Comma@98..99 "," + Whitespace@99..100 " " + target_el@100..106 + a_expr@100..106 + c_expr@100..106 + columnref@100..106 + ColId@100..106 + IDENT@100..106 "report" + Whitespace@106..111 "\n " + from_clause@111..131 + FROM@111..115 "FROM" + Whitespace@115..116 " " + from_list@116..131 + table_ref@116..131 + relation_expr@116..131 + qualified_name@116..131 + ColId@116..131 + IDENT@116..131 "weather_reports" + Whitespace@131..136 "\n " + sort_clause@136..164 + ORDER@136..141 "ORDER" + Whitespace@141..142 " " + BY@142..144 "BY" + Whitespace@144..145 " " + sortby_list@145..164 + sortby_list@145..153 + sortby@145..153 + a_expr@145..153 + c_expr@145..153 + columnref@145..153 + ColId@145..153 + unreserved_keyword@145..153 + LOCATION@145..153 "location" + Comma@153..154 "," + Whitespace@154..155 " " + sortby@155..164 + a_expr@155..159 + c_expr@155..159 + columnref@155..159 + ColId@155..159 + col_name_keyword@155..159 + TIME@155..159 "time" + Whitespace@159..160 " " + opt_asc_desc@160..164 + DESC@160..164 "DESC" + Semicolon@164..165 ";" + Whitespace@165..166 "\n" + toplevel_stmt@166..209 + stmt@166..209 + SelectStmt@166..209 + select_no_parens@166..209 + select_clause@166..195 + simple_select@166..195 + SELECT@166..172 "SELECT" + Whitespace@172..173 " " + opt_target_list@173..177 + target_list@173..177 + target_el@173..177 + a_expr@173..177 + c_expr@173..177 + columnref@173..177 + ColId@173..177 + unreserved_keyword@173..177 + NAME_P@173..177 "name" + Whitespace@177..178 " " + from_clause@178..195 + FROM@178..182 "FROM" + Whitespace@182..183 " " + from_list@183..195 + table_ref@183..195 + relation_expr@183..195 + qualified_name@183..195 + ColId@183..195 + IDENT@183..195 "distributors" + Whitespace@195..196 " " + sort_clause@196..209 + ORDER@196..201 "ORDER" + Whitespace@201..202 " " + BY@202..204 "BY" + Whitespace@204..205 " " + sortby_list@205..209 + sortby@205..209 + a_expr@205..209 + c_expr@205..209 + columnref@205..209 + ColId@205..209 + IDENT@205..209 "code" + Semicolon@209..210 ";" + Whitespace@210..211 "\n" + toplevel_stmt@211..277 + stmt@211..277 + SelectStmt@211..277 + select_no_parens@211..277 + simple_select@211..277 + SELECT@211..217 "SELECT" + Whitespace@217..218 " " + opt_target_list@218..219 + target_list@218..219 + target_el@218..219 + Star@218..219 "*" + Whitespace@219..220 " " + from_clause@220..262 + FROM@220..224 "FROM" + Whitespace@224..225 " " + from_list@225..262 + table_ref@225..262 + select_with_parens@225..259 + LParen@225..226 "(" + select_no_parens@226..258 + select_clause@226..247 + simple_select@226..247 + SELECT@226..232 "SELECT" + Whitespace@232..233 " " + opt_target_list@233..234 + target_list@233..234 + target_el@233..234 + Star@233..234 "*" + Whitespace@234..235 " " + from_clause@235..247 + FROM@235..239 "FROM" + Whitespace@239..240 " " + from_list@240..247 + table_ref@240..247 + relation_expr@240..247 + qualified_name@240..247 + ColId@240..247 + IDENT@240..247 "mytable" + Whitespace@247..248 " " + for_locking_clause@248..258 + for_locking_items@248..258 + for_locking_item@248..258 + for_locking_strength@248..258 + FOR@248..251 "FOR" + Whitespace@251..252 " " + UPDATE@252..258 "UPDATE" + RParen@258..259 ")" + Whitespace@259..260 " " + opt_alias_clause@260..262 + alias_clause@260..262 + ColId@260..262 + IDENT@260..262 "ss" + Whitespace@262..263 " " + where_clause@263..277 + WHERE@263..268 "WHERE" + Whitespace@268..269 " " + a_expr@269..277 + a_expr@269..273 + c_expr@269..273 + columnref@269..273 + ColId@269..273 + IDENT@269..273 "col1" + Whitespace@273..274 " " + Equals@274..275 "=" + Whitespace@275..276 " " + a_expr@276..277 + c_expr@276..277 + AexprConst@276..277 + Iconst@276..277 + ICONST@276..277 "5" + Semicolon@277..278 ";" + Whitespace@278..279 "\n" + toplevel_stmt@279..347 + stmt@279..347 + SelectStmt@279..347 + select_no_parens@279..347 + select_clause@279..330 + simple_select@279..330 + SELECT@279..285 "SELECT" + Whitespace@285..286 " " + opt_target_list@286..287 + target_list@286..287 + target_el@286..287 + Star@286..287 "*" + Whitespace@287..288 " " + from_clause@288..330 + FROM@288..292 "FROM" + Whitespace@292..293 " " + from_list@293..330 + table_ref@293..330 + select_with_parens@293..327 + LParen@293..294 "(" + select_no_parens@294..326 + select_clause@294..315 + simple_select@294..315 + SELECT@294..300 "SELECT" + Whitespace@300..301 " " + opt_target_list@301..302 + target_list@301..302 + target_el@301..302 + Star@301..302 "*" + Whitespace@302..303 " " + from_clause@303..315 + FROM@303..307 "FROM" + Whitespace@307..308 " " + from_list@308..315 + table_ref@308..315 + relation_expr@308..315 + qualified_name@308..315 + ColId@308..315 + IDENT@308..315 "mytable" + Whitespace@315..316 " " + for_locking_clause@316..326 + for_locking_items@316..326 + for_locking_item@316..326 + for_locking_strength@316..326 + FOR@316..319 "FOR" + Whitespace@319..320 " " + UPDATE@320..326 "UPDATE" + RParen@326..327 ")" + Whitespace@327..328 " " + opt_alias_clause@328..330 + alias_clause@328..330 + ColId@328..330 + IDENT@328..330 "ss" + Whitespace@330..331 " " + sort_clause@331..347 + ORDER@331..336 "ORDER" + Whitespace@336..337 " " + BY@337..339 "BY" + Whitespace@339..340 " " + sortby_list@340..347 + sortby@340..347 + a_expr@340..347 + c_expr@340..347 + columnref@340..347 + ColId@340..347 + IDENT@340..347 "column1" + Semicolon@347..348 ";" + Whitespace@348..349 "\n" + toplevel_stmt@349..456 + stmt@349..456 + SelectStmt@349..456 + select_no_parens@349..456 + simple_select@349..456 + SELECT@349..355 "SELECT" + Whitespace@355..356 " " + opt_target_list@356..399 + target_list@356..399 + target_list@356..391 + target_list@356..378 + target_list@356..370 + target_list@356..363 + target_el@356..363 + a_expr@356..363 + c_expr@356..363 + columnref@356..363 + ColId@356..357 + IDENT@356..357 "f" + indirection@357..363 + indirection_el@357..363 + Dot@357..358 "." + attr_name@358..363 + ColLabel@358..363 + IDENT@358..363 "title" + Comma@363..364 "," + Whitespace@364..365 " " + target_el@365..370 + a_expr@365..370 + c_expr@365..370 + columnref@365..370 + ColId@365..366 + IDENT@365..366 "f" + indirection@366..370 + indirection_el@366..370 + Dot@366..367 "." + attr_name@367..370 + ColLabel@367..370 + IDENT@367..370 "did" + Comma@370..371 "," + Whitespace@371..372 " " + target_el@372..378 + a_expr@372..378 + c_expr@372..378 + columnref@372..378 + ColId@372..373 + IDENT@372..373 "d" + indirection@373..378 + indirection_el@373..378 + Dot@373..374 "." + attr_name@374..378 + ColLabel@374..378 + unreserved_keyword@374..378 + NAME_P@374..378 "name" + Comma@378..379 "," + Whitespace@379..380 " " + target_el@380..391 + a_expr@380..391 + c_expr@380..391 + columnref@380..391 + ColId@380..381 + IDENT@380..381 "f" + indirection@381..391 + indirection_el@381..391 + Dot@381..382 "." + attr_name@382..391 + ColLabel@382..391 + IDENT@382..391 "date_prod" + Comma@391..392 "," + Whitespace@392..393 " " + target_el@393..399 + a_expr@393..399 + c_expr@393..399 + columnref@393..399 + ColId@393..394 + IDENT@393..394 "f" + indirection@394..399 + indirection_el@394..399 + Dot@394..395 "." + attr_name@395..399 + ColLabel@395..399 + IDENT@395..399 "kind" + Whitespace@399..404 "\n " + from_clause@404..432 + FROM@404..408 "FROM" + Whitespace@408..409 " " + from_list@409..432 + from_list@409..423 + table_ref@409..423 + relation_expr@409..421 + qualified_name@409..421 + ColId@409..421 + IDENT@409..421 "distributors" + Whitespace@421..422 " " + opt_alias_clause@422..423 + alias_clause@422..423 + ColId@422..423 + IDENT@422..423 "d" + Comma@423..424 "," + Whitespace@424..425 " " + table_ref@425..432 + relation_expr@425..430 + qualified_name@425..430 + ColId@425..430 + IDENT@425..430 "films" + Whitespace@430..431 " " + opt_alias_clause@431..432 + alias_clause@431..432 + ColId@431..432 + IDENT@431..432 "f" + Whitespace@432..437 "\n " + where_clause@437..456 + WHERE@437..442 "WHERE" + Whitespace@442..443 " " + a_expr@443..456 + a_expr@443..448 + c_expr@443..448 + columnref@443..448 + ColId@443..444 + IDENT@443..444 "f" + indirection@444..448 + indirection_el@444..448 + Dot@444..445 "." + attr_name@445..448 + ColLabel@445..448 + IDENT@445..448 "did" + Whitespace@448..449 " " + Equals@449..450 "=" + Whitespace@450..451 " " + a_expr@451..456 + c_expr@451..456 + columnref@451..456 + ColId@451..452 + IDENT@451..452 "d" + indirection@452..456 + indirection_el@452..456 + Dot@452..453 "." + attr_name@453..456 + ColLabel@453..456 + IDENT@453..456 "did" + Semicolon@456..457 ";" + Whitespace@457..458 "\n" + toplevel_stmt@458..513 + stmt@458..513 + SelectStmt@458..513 + select_no_parens@458..513 + simple_select@458..513 + SELECT@458..464 "SELECT" + Whitespace@464..465 " " + opt_target_list@465..488 + target_list@465..488 + target_list@465..469 + target_el@465..469 + a_expr@465..469 + c_expr@465..469 + columnref@465..469 + ColId@465..469 + IDENT@465..469 "kind" + Comma@469..470 "," + Whitespace@470..471 " " + target_el@471..488 + a_expr@471..479 + c_expr@471..479 + func_expr@471..479 + func_application@471..479 + func_name@471..474 + type_function_name@471..474 + IDENT@471..474 "sum" + LParen@474..475 "(" + func_arg_list@475..478 + func_arg_expr@475..478 + a_expr@475..478 + c_expr@475..478 + columnref@475..478 + ColId@475..478 + IDENT@475..478 "len" + RParen@478..479 ")" + Whitespace@479..480 " " + AS@480..482 "AS" + Whitespace@482..483 " " + ColLabel@483..488 + IDENT@483..488 "total" + Whitespace@488..489 " " + from_clause@489..499 + FROM@489..493 "FROM" + Whitespace@493..494 " " + from_list@494..499 + table_ref@494..499 + relation_expr@494..499 + qualified_name@494..499 + ColId@494..499 + IDENT@494..499 "films" + Whitespace@499..500 " " + group_clause@500..513 + GROUP_P@500..505 "GROUP" + Whitespace@505..506 " " + BY@506..508 "BY" + Whitespace@508..509 " " + group_by_list@509..513 + group_by_item@509..513 + a_expr@509..513 + c_expr@509..513 + columnref@509..513 + ColId@509..513 + IDENT@509..513 "kind" + Semicolon@513..514 ";" + Whitespace@514..515 "\n" + toplevel_stmt@515..619 + stmt@515..619 + SelectStmt@515..619 + select_no_parens@515..619 + simple_select@515..619 + SELECT@515..521 "SELECT" + Whitespace@521..522 " " + opt_target_list@522..545 + target_list@522..545 + target_list@522..526 + target_el@522..526 + a_expr@522..526 + c_expr@522..526 + columnref@522..526 + ColId@522..526 + IDENT@522..526 "kind" + Comma@526..527 "," + Whitespace@527..528 " " + target_el@528..545 + a_expr@528..536 + c_expr@528..536 + func_expr@528..536 + func_application@528..536 + func_name@528..531 + type_function_name@528..531 + IDENT@528..531 "sum" + LParen@531..532 "(" + func_arg_list@532..535 + func_arg_expr@532..535 + a_expr@532..535 + c_expr@532..535 + columnref@532..535 + ColId@532..535 + IDENT@532..535 "len" + RParen@535..536 ")" + Whitespace@536..537 " " + AS@537..539 "AS" + Whitespace@539..540 " " + ColLabel@540..545 + IDENT@540..545 "total" + Whitespace@545..550 "\n " + from_clause@550..560 + FROM@550..554 "FROM" + Whitespace@554..555 " " + from_list@555..560 + table_ref@555..560 + relation_expr@555..560 + qualified_name@555..560 + ColId@555..560 + IDENT@555..560 "films" + Whitespace@560..565 "\n " + group_clause@565..578 + GROUP_P@565..570 "GROUP" + Whitespace@570..571 " " + BY@571..573 "BY" + Whitespace@573..574 " " + group_by_list@574..578 + group_by_item@574..578 + a_expr@574..578 + c_expr@574..578 + columnref@574..578 + ColId@574..578 + IDENT@574..578 "kind" + Whitespace@578..583 "\n " + having_clause@583..619 + HAVING@583..589 "HAVING" + Whitespace@589..590 " " + a_expr@590..619 + a_expr@590..598 + c_expr@590..598 + func_expr@590..598 + func_application@590..598 + func_name@590..593 + type_function_name@590..593 + IDENT@590..593 "sum" + LParen@593..594 "(" + func_arg_list@594..597 + func_arg_expr@594..597 + a_expr@594..597 + c_expr@594..597 + columnref@594..597 + ColId@594..597 + IDENT@594..597 "len" + RParen@597..598 ")" + Whitespace@598..599 " " + Less@599..600 "<" + Whitespace@600..601 " " + a_expr@601..619 + c_expr@601..619 + AexprConst@601..619 + ConstInterval@601..609 + INTERVAL@601..609 "interval" + Whitespace@609..610 " " + Sconst@610..619 + SCONST@610..619 "'5 hours'" + Semicolon@619..620 ";" + Whitespace@620..621 "\n" + toplevel_stmt@621..661 + stmt@621..661 + SelectStmt@621..661 + select_no_parens@621..661 + select_clause@621..647 + simple_select@621..647 + SELECT@621..627 "SELECT" + Whitespace@627..628 " " + opt_target_list@628..629 + target_list@628..629 + target_el@628..629 + Star@628..629 "*" + Whitespace@629..630 " " + from_clause@630..647 + FROM@630..634 "FROM" + Whitespace@634..635 " " + from_list@635..647 + table_ref@635..647 + relation_expr@635..647 + qualified_name@635..647 + ColId@635..647 + IDENT@635..647 "distributors" + Whitespace@647..648 " " + sort_clause@648..661 + ORDER@648..653 "ORDER" + Whitespace@653..654 " " + BY@654..656 "BY" + Whitespace@656..657 " " + sortby_list@657..661 + sortby@657..661 + a_expr@657..661 + c_expr@657..661 + columnref@657..661 + ColId@657..661 + unreserved_keyword@657..661 + NAME_P@657..661 "name" + Semicolon@661..662 ";" + Whitespace@662..663 "\n" + toplevel_stmt@663..700 + stmt@663..700 + SelectStmt@663..700 + select_no_parens@663..700 + select_clause@663..689 + simple_select@663..689 + SELECT@663..669 "SELECT" + Whitespace@669..670 " " + opt_target_list@670..671 + target_list@670..671 + target_el@670..671 + Star@670..671 "*" + Whitespace@671..672 " " + from_clause@672..689 + FROM@672..676 "FROM" + Whitespace@676..677 " " + from_list@677..689 + table_ref@677..689 + relation_expr@677..689 + qualified_name@677..689 + ColId@677..689 + IDENT@677..689 "distributors" + Whitespace@689..690 " " + sort_clause@690..700 + ORDER@690..695 "ORDER" + Whitespace@695..696 " " + BY@696..698 "BY" + Whitespace@698..699 " " + sortby_list@699..700 + sortby@699..700 + a_expr@699..700 + c_expr@699..700 + AexprConst@699..700 + Iconst@699..700 + ICONST@699..700 "2" + Semicolon@700..701 ";" + Whitespace@701..702 "\n" + toplevel_stmt@702..859 + stmt@702..859 + SelectStmt@702..859 + select_no_parens@702..859 + simple_select@702..859 + select_clause@702..786 + simple_select@702..786 + SELECT@702..708 "SELECT" + Whitespace@708..709 " " + opt_target_list@709..726 + target_list@709..726 + target_el@709..726 + a_expr@709..726 + c_expr@709..726 + columnref@709..726 + ColId@709..721 + IDENT@709..721 "distributors" + indirection@721..726 + indirection_el@721..726 + Dot@721..722 "." + attr_name@722..726 + ColLabel@722..726 + unreserved_keyword@722..726 + NAME_P@722..726 "name" + Whitespace@726..731 "\n " + from_clause@731..748 + FROM@731..735 "FROM" + Whitespace@735..736 " " + from_list@736..748 + table_ref@736..748 + relation_expr@736..748 + qualified_name@736..748 + ColId@736..748 + IDENT@736..748 "distributors" + Whitespace@748..753 "\n " + where_clause@753..786 + WHERE@753..758 "WHERE" + Whitespace@758..759 " " + a_expr@759..786 + a_expr@759..776 + c_expr@759..776 + columnref@759..776 + ColId@759..771 + IDENT@759..771 "distributors" + indirection@771..776 + indirection_el@771..776 + Dot@771..772 "." + attr_name@772..776 + ColLabel@772..776 + unreserved_keyword@772..776 + NAME_P@772..776 "name" + Whitespace@776..777 " " + LIKE@777..781 "LIKE" + Whitespace@781..782 " " + a_expr@782..786 + c_expr@782..786 + AexprConst@782..786 + Sconst@782..786 + SCONST@782..786 "'W%'" + Whitespace@786..787 "\n" + UNION@787..792 "UNION" + Whitespace@792..793 "\n" + select_clause@793..859 + simple_select@793..859 + SELECT@793..799 "SELECT" + Whitespace@799..800 " " + opt_target_list@800..811 + target_list@800..811 + target_el@800..811 + a_expr@800..811 + c_expr@800..811 + columnref@800..811 + ColId@800..806 + IDENT@800..806 "actors" + indirection@806..811 + indirection_el@806..811 + Dot@806..807 "." + attr_name@807..811 + ColLabel@807..811 + unreserved_keyword@807..811 + NAME_P@807..811 "name" + Whitespace@811..816 "\n " + from_clause@816..827 + FROM@816..820 "FROM" + Whitespace@820..821 " " + from_list@821..827 + table_ref@821..827 + relation_expr@821..827 + qualified_name@821..827 + ColId@821..827 + IDENT@821..827 "actors" + Whitespace@827..832 "\n " + where_clause@832..859 + WHERE@832..837 "WHERE" + Whitespace@837..838 " " + a_expr@838..859 + a_expr@838..849 + c_expr@838..849 + columnref@838..849 + ColId@838..844 + IDENT@838..844 "actors" + indirection@844..849 + indirection_el@844..849 + Dot@844..845 "." + attr_name@845..849 + ColLabel@845..849 + unreserved_keyword@845..849 + NAME_P@845..849 "name" + Whitespace@849..850 " " + LIKE@850..854 "LIKE" + Whitespace@854..855 " " + a_expr@855..859 + c_expr@855..859 + AexprConst@855..859 + Sconst@855..859 + SCONST@855..859 "'W%'" + Semicolon@859..860 ";" + Whitespace@860..861 "\n" + toplevel_stmt@861..990 + stmt@861..990 + CreateFunctionStmt@861..990 + CREATE@861..867 "CREATE" + Whitespace@867..868 " " + FUNCTION@868..876 "FUNCTION" + Whitespace@876..877 " " + func_name@877..889 + type_function_name@877..889 + IDENT@877..889 "distributors" + func_args_with_defaults@889..894 + LParen@889..890 "(" + func_args_with_defaults_list@890..893 + func_arg_with_default@890..893 + func_arg@890..893 + func_type@890..893 + Typename@890..893 + SimpleTypename@890..893 + Numeric@890..893 + INT_P@890..893 "int" + RParen@893..894 ")" + Whitespace@894..895 " " + RETURNS@895..902 "RETURNS" + Whitespace@902..903 " " + func_return@903..921 + func_type@903..921 + Typename@903..921 + SETOF@903..908 "SETOF" + Whitespace@908..909 " " + SimpleTypename@909..921 + GenericType@909..921 + type_function_name@909..921 + IDENT@909..921 "distributors" + Whitespace@921..922 " " + opt_createfunc_opt_list@922..990 + createfunc_opt_list@922..990 + createfunc_opt_list@922..977 + createfunc_opt_item@922..977 + AS@922..924 "AS" + Whitespace@924..925 " " + func_as@925..977 + Sconst@925..977 + SCONST@925..977 "$$\n SELECT * FROM ..." + Whitespace@977..978 " " + createfunc_opt_item@978..990 + LANGUAGE@978..986 "LANGUAGE" + Whitespace@986..987 " " + NonReservedWord_or_Sconst@987..990 + NonReservedWord@987..990 + unreserved_keyword@987..990 + SQL_P@987..990 "SQL" + Semicolon@990..991 ";" + Whitespace@991..992 "\n" + toplevel_stmt@992..1023 + stmt@992..1023 + SelectStmt@992..1023 + select_no_parens@992..1023 + simple_select@992..1023 + SELECT@992..998 "SELECT" + Whitespace@998..999 " " + opt_target_list@999..1000 + target_list@999..1000 + target_el@999..1000 + Star@999..1000 "*" + Whitespace@1000..1001 " " + from_clause@1001..1023 + FROM@1001..1005 "FROM" + Whitespace@1005..1006 " " + from_list@1006..1023 + table_ref@1006..1023 + func_table@1006..1023 + func_expr_windowless@1006..1023 + func_application@1006..1023 + func_name@1006..1018 + type_function_name@1006..1018 + IDENT@1006..1018 "distributors" + LParen@1018..1019 "(" + func_arg_list@1019..1022 + func_arg_expr@1019..1022 + a_expr@1019..1022 + c_expr@1019..1022 + AexprConst@1019..1022 + Iconst@1019..1022 + ICONST@1019..1022 "111" + RParen@1022..1023 ")" + Semicolon@1023..1024 ";" + Whitespace@1024..1025 "\n" + toplevel_stmt@1025..1150 + stmt@1025..1150 + CreateFunctionStmt@1025..1150 + CREATE@1025..1031 "CREATE" + Whitespace@1031..1032 " " + FUNCTION@1032..1040 "FUNCTION" + Whitespace@1040..1041 " " + func_name@1041..1055 + type_function_name@1041..1055 + IDENT@1041..1055 "distributors_2" + func_args_with_defaults@1055..1060 + LParen@1055..1056 "(" + func_args_with_defaults_list@1056..1059 + func_arg_with_default@1056..1059 + func_arg@1056..1059 + func_type@1056..1059 + Typename@1056..1059 + SimpleTypename@1056..1059 + Numeric@1056..1059 + INT_P@1056..1059 "int" + RParen@1059..1060 ")" + Whitespace@1060..1061 " " + RETURNS@1061..1068 "RETURNS" + Whitespace@1068..1069 " " + func_return@1069..1081 + func_type@1069..1081 + Typename@1069..1081 + SETOF@1069..1074 "SETOF" + Whitespace@1074..1075 " " + SimpleTypename@1075..1081 + GenericType@1075..1081 + type_function_name@1075..1081 + IDENT@1075..1081 "record" + Whitespace@1081..1082 " " + opt_createfunc_opt_list@1082..1150 + createfunc_opt_list@1082..1150 + createfunc_opt_list@1082..1137 + createfunc_opt_item@1082..1137 + AS@1082..1084 "AS" + Whitespace@1084..1085 " " + func_as@1085..1137 + Sconst@1085..1137 + SCONST@1085..1137 "$$\n SELECT * FROM ..." + Whitespace@1137..1138 " " + createfunc_opt_item@1138..1150 + LANGUAGE@1138..1146 "LANGUAGE" + Whitespace@1146..1147 " " + NonReservedWord_or_Sconst@1147..1150 + NonReservedWord@1147..1150 + unreserved_keyword@1147..1150 + SQL_P@1147..1150 "SQL" + Semicolon@1150..1151 ";" + Whitespace@1151..1153 "\n\n" + toplevel_stmt@1153..1207 + stmt@1153..1207 + SelectStmt@1153..1207 + select_no_parens@1153..1207 + simple_select@1153..1207 + SELECT@1153..1159 "SELECT" + Whitespace@1159..1160 " " + opt_target_list@1160..1161 + target_list@1160..1161 + target_el@1160..1161 + Star@1160..1161 "*" + Whitespace@1161..1162 " " + from_clause@1162..1207 + FROM@1162..1166 "FROM" + Whitespace@1166..1167 " " + from_list@1167..1207 + table_ref@1167..1207 + func_table@1167..1186 + func_expr_windowless@1167..1186 + func_application@1167..1186 + func_name@1167..1181 + type_function_name@1167..1181 + IDENT@1167..1181 "distributors_2" + LParen@1181..1182 "(" + func_arg_list@1182..1185 + func_arg_expr@1182..1185 + a_expr@1182..1185 + c_expr@1182..1185 + AexprConst@1182..1185 + Iconst@1182..1185 + ICONST@1182..1185 "111" + RParen@1185..1186 ")" + Whitespace@1186..1187 " " + func_alias_clause@1187..1207 + AS@1187..1189 "AS" + Whitespace@1189..1190 " " + LParen@1190..1191 "(" + TableFuncElementList@1191..1206 + TableFuncElementList@1191..1197 + TableFuncElement@1191..1197 + ColId@1191..1193 + IDENT@1191..1193 "f1" + Whitespace@1193..1194 " " + Typename@1194..1197 + SimpleTypename@1194..1197 + Numeric@1194..1197 + INT_P@1194..1197 "int" + Comma@1197..1198 "," + Whitespace@1198..1199 " " + TableFuncElement@1199..1206 + ColId@1199..1201 + IDENT@1199..1201 "f2" + Whitespace@1201..1202 " " + Typename@1202..1206 + SimpleTypename@1202..1206 + GenericType@1202..1206 + type_function_name@1202..1206 + unreserved_keyword@1202..1206 + TEXT_P@1202..1206 "text" + RParen@1206..1207 ")" + Semicolon@1207..1208 ";" + Whitespace@1208..1209 "\n" + toplevel_stmt@1209..1318 + stmt@1209..1318 + SelectStmt@1209..1318 + select_no_parens@1209..1318 + with_clause@1209..1276 + WITH@1209..1213 "WITH" + Whitespace@1213..1214 " " + cte_list@1214..1276 + common_table_expr@1214..1276 + name@1214..1215 + ColId@1214..1215 + IDENT@1214..1215 "t" + Whitespace@1215..1216 " " + AS@1216..1218 "AS" + Whitespace@1218..1219 " " + LParen@1219..1220 "(" + Whitespace@1220..1225 "\n " + PreparableStmt@1225..1272 + SelectStmt@1225..1272 + select_no_parens@1225..1272 + simple_select@1225..1272 + SELECT@1225..1231 "SELECT" + Whitespace@1231..1232 " " + opt_target_list@1232..1245 + target_list@1232..1245 + target_el@1232..1245 + a_expr@1232..1240 + c_expr@1232..1240 + func_expr@1232..1240 + func_application@1232..1240 + func_name@1232..1238 + type_function_name@1232..1238 + IDENT@1232..1238 "random" + LParen@1238..1239 "(" + RParen@1239..1240 ")" + Whitespace@1240..1241 " " + AS@1241..1243 "as" + Whitespace@1243..1244 " " + ColLabel@1244..1245 + IDENT@1244..1245 "x" + Whitespace@1245..1246 " " + from_clause@1246..1272 + FROM@1246..1250 "FROM" + Whitespace@1250..1251 " " + from_list@1251..1272 + table_ref@1251..1272 + func_table@1251..1272 + func_expr_windowless@1251..1272 + func_application@1251..1272 + func_name@1251..1266 + type_function_name@1251..1266 + IDENT@1251..1266 "generate_series" + LParen@1266..1267 "(" + func_arg_list@1267..1271 + func_arg_list@1267..1268 + func_arg_expr@1267..1268 + a_expr@1267..1268 + c_expr@1267..1268 + AexprConst@1267..1268 + Iconst@1267..1268 + ICONST@1267..1268 "1" + Comma@1268..1269 "," + Whitespace@1269..1270 " " + func_arg_expr@1270..1271 + a_expr@1270..1271 + c_expr@1270..1271 + AexprConst@1270..1271 + Iconst@1270..1271 + ICONST@1270..1271 "3" + RParen@1271..1272 ")" + Whitespace@1272..1275 "\n " + RParen@1275..1276 ")" + Whitespace@1276..1277 "\n" + select_clause@1277..1318 + simple_select@1277..1318 + select_clause@1277..1292 + simple_select@1277..1292 + SELECT@1277..1283 "SELECT" + Whitespace@1283..1284 " " + opt_target_list@1284..1285 + target_list@1284..1285 + target_el@1284..1285 + Star@1284..1285 "*" + Whitespace@1285..1286 " " + from_clause@1286..1292 + FROM@1286..1290 "FROM" + Whitespace@1290..1291 " " + from_list@1291..1292 + table_ref@1291..1292 + relation_expr@1291..1292 + qualified_name@1291..1292 + ColId@1291..1292 + IDENT@1291..1292 "t" + Whitespace@1292..1293 "\n" + UNION@1293..1298 "UNION" + Whitespace@1298..1299 " " + set_quantifier@1299..1302 + ALL@1299..1302 "ALL" + Whitespace@1302..1303 "\n" + select_clause@1303..1318 + simple_select@1303..1318 + SELECT@1303..1309 "SELECT" + Whitespace@1309..1310 " " + opt_target_list@1310..1311 + target_list@1310..1311 + target_el@1310..1311 + Star@1310..1311 "*" + Whitespace@1311..1312 " " + from_clause@1312..1318 + FROM@1312..1316 "FROM" + Whitespace@1316..1317 " " + from_list@1317..1318 + table_ref@1317..1318 + relation_expr@1317..1318 + qualified_name@1317..1318 + ColId@1317..1318 + IDENT@1317..1318 "t" + Semicolon@1318..1319 ";" + Whitespace@1319..1320 "\n" + toplevel_stmt@1320..1707 + stmt@1320..1707 + SelectStmt@1320..1707 + select_no_parens@1320..1707 + with_clause@1320..1652 + WITH@1320..1324 "WITH" + Whitespace@1324..1325 " " + RECURSIVE@1325..1334 "RECURSIVE" + Whitespace@1334..1335 " " + cte_list@1335..1652 + common_table_expr@1335..1652 + name@1335..1353 + ColId@1335..1353 + IDENT@1335..1353 "employee_recursive" + opt_name_list@1353..1392 + LParen@1353..1354 "(" + name_list@1354..1391 + name_list@1354..1377 + name_list@1354..1362 + name@1354..1362 + ColId@1354..1362 + IDENT@1354..1362 "distance" + Comma@1362..1363 "," + Whitespace@1363..1364 " " + name@1364..1377 + ColId@1364..1377 + IDENT@1364..1377 "employee_name" + Comma@1377..1378 "," + Whitespace@1378..1379 " " + name@1379..1391 + ColId@1379..1391 + IDENT@1379..1391 "manager_name" + RParen@1391..1392 ")" + Whitespace@1392..1393 " " + AS@1393..1395 "AS" + Whitespace@1395..1396 " " + LParen@1396..1397 "(" + Whitespace@1397..1402 "\n " + PreparableStmt@1402..1648 + SelectStmt@1402..1648 + select_no_parens@1402..1648 + simple_select@1402..1648 + select_clause@1402..1489 + simple_select@1402..1489 + SELECT@1402..1408 "SELECT" + Whitespace@1408..1409 " " + opt_target_list@1409..1439 + target_list@1409..1439 + target_list@1409..1425 + target_list@1409..1410 + target_el@1409..1410 + a_expr@1409..1410 + c_expr@1409..1410 + AexprConst@1409..1410 + Iconst@1409..1410 + ICONST@1409..1410 "1" + Comma@1410..1411 "," + Whitespace@1411..1412 " " + target_el@1412..1425 + a_expr@1412..1425 + c_expr@1412..1425 + columnref@1412..1425 + ColId@1412..1425 + IDENT@1412..1425 "employee_name" + Comma@1425..1426 "," + Whitespace@1426..1427 " " + target_el@1427..1439 + a_expr@1427..1439 + c_expr@1427..1439 + columnref@1427..1439 + ColId@1427..1439 + IDENT@1427..1439 "manager_name" + Whitespace@1439..1444 "\n " + from_clause@1444..1457 + FROM@1444..1448 "FROM" + Whitespace@1448..1449 " " + from_list@1449..1457 + table_ref@1449..1457 + relation_expr@1449..1457 + qualified_name@1449..1457 + ColId@1449..1457 + IDENT@1449..1457 "employee" + Whitespace@1457..1462 "\n " + where_clause@1462..1489 + WHERE@1462..1467 "WHERE" + Whitespace@1467..1468 " " + a_expr@1468..1489 + a_expr@1468..1480 + c_expr@1468..1480 + columnref@1468..1480 + ColId@1468..1480 + IDENT@1468..1480 "manager_name" + Whitespace@1480..1481 " " + Equals@1481..1482 "=" + Whitespace@1482..1483 " " + a_expr@1483..1489 + c_expr@1483..1489 + AexprConst@1483..1489 + Sconst@1483..1489 + SCONST@1483..1489 "'Mary'" + Whitespace@1489..1492 "\n " + UNION@1492..1497 "UNION" + Whitespace@1497..1498 " " + set_quantifier@1498..1501 + ALL@1498..1501 "ALL" + Whitespace@1501..1506 "\n " + select_clause@1506..1648 + simple_select@1506..1648 + SELECT@1506..1512 "SELECT" + Whitespace@1512..1513 " " + opt_target_list@1513..1561 + target_list@1513..1561 + target_list@1513..1545 + target_list@1513..1528 + target_el@1513..1528 + a_expr@1513..1528 + a_expr@1513..1524 + c_expr@1513..1524 + columnref@1513..1524 + ColId@1513..1515 + IDENT@1513..1515 "er" + indirection@1515..1524 + indirection_el@1515..1524 + Dot@1515..1516 "." + attr_name@1516..1524 + ColLabel@1516..1524 + IDENT@1516..1524 "distance" + Whitespace@1524..1525 " " + Plus@1525..1526 "+" + Whitespace@1526..1527 " " + a_expr@1527..1528 + c_expr@1527..1528 + AexprConst@1527..1528 + Iconst@1527..1528 + ICONST@1527..1528 "1" + Comma@1528..1529 "," + Whitespace@1529..1530 " " + target_el@1530..1545 + a_expr@1530..1545 + c_expr@1530..1545 + columnref@1530..1545 + ColId@1530..1531 + IDENT@1530..1531 "e" + indirection@1531..1545 + indirection_el@1531..1545 + Dot@1531..1532 "." + attr_name@1532..1545 + ColLabel@1532..1545 + IDENT@1532..1545 "employee_name" + Comma@1545..1546 "," + Whitespace@1546..1547 " " + target_el@1547..1561 + a_expr@1547..1561 + c_expr@1547..1561 + columnref@1547..1561 + ColId@1547..1548 + IDENT@1547..1548 "e" + indirection@1548..1561 + indirection_el@1548..1561 + Dot@1548..1549 "." + attr_name@1549..1561 + ColLabel@1549..1561 + IDENT@1549..1561 "manager_name" + Whitespace@1561..1566 "\n " + from_clause@1566..1604 + FROM@1566..1570 "FROM" + Whitespace@1570..1571 " " + from_list@1571..1604 + from_list@1571..1592 + table_ref@1571..1592 + relation_expr@1571..1589 + qualified_name@1571..1589 + ColId@1571..1589 + IDENT@1571..1589 "employee_recursive" + Whitespace@1589..1590 " " + opt_alias_clause@1590..1592 + alias_clause@1590..1592 + ColId@1590..1592 + IDENT@1590..1592 "er" + Comma@1592..1593 "," + Whitespace@1593..1594 " " + table_ref@1594..1604 + relation_expr@1594..1602 + qualified_name@1594..1602 + ColId@1594..1602 + IDENT@1594..1602 "employee" + Whitespace@1602..1603 " " + opt_alias_clause@1603..1604 + alias_clause@1603..1604 + ColId@1603..1604 + IDENT@1603..1604 "e" + Whitespace@1604..1609 "\n " + where_clause@1609..1648 + WHERE@1609..1614 "WHERE" + Whitespace@1614..1615 " " + a_expr@1615..1648 + a_expr@1615..1631 + c_expr@1615..1631 + columnref@1615..1631 + ColId@1615..1617 + IDENT@1615..1617 "er" + indirection@1617..1631 + indirection_el@1617..1631 + Dot@1617..1618 "." + attr_name@1618..1631 + ColLabel@1618..1631 + IDENT@1618..1631 "employee_name" + Whitespace@1631..1632 " " + Equals@1632..1633 "=" + Whitespace@1633..1634 " " + a_expr@1634..1648 + c_expr@1634..1648 + columnref@1634..1648 + ColId@1634..1635 + IDENT@1634..1635 "e" + indirection@1635..1648 + indirection_el@1635..1648 + Dot@1635..1636 "." + attr_name@1636..1648 + ColLabel@1636..1648 + IDENT@1636..1648 "manager_name" + Whitespace@1648..1651 "\n " + RParen@1651..1652 ")" + Whitespace@1652..1653 "\n" + select_clause@1653..1707 + simple_select@1653..1707 + SELECT@1653..1659 "SELECT" + Whitespace@1659..1660 " " + opt_target_list@1660..1683 + target_list@1660..1683 + target_list@1660..1668 + target_el@1660..1668 + a_expr@1660..1668 + c_expr@1660..1668 + columnref@1660..1668 + ColId@1660..1668 + IDENT@1660..1668 "distance" + Comma@1668..1669 "," + Whitespace@1669..1670 " " + target_el@1670..1683 + a_expr@1670..1683 + c_expr@1670..1683 + columnref@1670..1683 + ColId@1670..1683 + IDENT@1670..1683 "employee_name" + Whitespace@1683..1684 " " + from_clause@1684..1707 + FROM@1684..1688 "FROM" + Whitespace@1688..1689 " " + from_list@1689..1707 + table_ref@1689..1707 + relation_expr@1689..1707 + qualified_name@1689..1707 + ColId@1689..1707 + IDENT@1689..1707 "employee_recursive" + Semicolon@1707..1708 ";" + Whitespace@1708..1709 "\n" + toplevel_stmt@1709..1719 + stmt@1709..1719 + SelectStmt@1709..1719 + select_no_parens@1709..1719 + simple_select@1709..1719 + SELECT@1709..1715 "SELECT" + Whitespace@1715..1716 " " + opt_target_list@1716..1719 + target_list@1716..1719 + target_el@1716..1719 + a_expr@1716..1719 + a_expr@1716..1717 + c_expr@1716..1717 + AexprConst@1716..1717 + Iconst@1716..1717 + ICONST@1716..1717 "2" + Plus@1717..1718 "+" + a_expr@1718..1719 + c_expr@1718..1719 + AexprConst@1718..1719 + Iconst@1718..1719 + ICONST@1718..1719 "2" + Semicolon@1719..1720 ";" + Whitespace@1720..1721 "\n" + toplevel_stmt@1721..1779 + stmt@1721..1779 + SelectStmt@1721..1779 + select_no_parens@1721..1779 + simple_select@1721..1779 + SELECT@1721..1727 "SELECT" + Whitespace@1727..1728 " " + opt_target_list@1728..1742 + target_list@1728..1742 + target_el@1728..1742 + a_expr@1728..1742 + c_expr@1728..1742 + columnref@1728..1742 + ColId@1728..1740 + IDENT@1728..1740 "distributors" + indirection@1740..1742 + indirection_el@1740..1742 + Dot@1740..1741 "." + Star@1741..1742 "*" + Whitespace@1742..1743 " " + where_clause@1743..1779 + WHERE@1743..1748 "WHERE" + Whitespace@1748..1749 " " + a_expr@1749..1779 + a_expr@1749..1766 + c_expr@1749..1766 + columnref@1749..1766 + ColId@1749..1761 + IDENT@1749..1761 "distributors" + indirection@1761..1766 + indirection_el@1761..1766 + Dot@1761..1762 "." + attr_name@1762..1766 + ColLabel@1762..1766 + unreserved_keyword@1762..1766 + NAME_P@1762..1766 "name" + Whitespace@1766..1767 " " + Equals@1767..1768 "=" + Whitespace@1768..1769 " " + a_expr@1769..1779 + c_expr@1769..1779 + AexprConst@1769..1779 + Sconst@1769..1779 + SCONST@1769..1779 "'Westward'" + Semicolon@1779..1780 ";" + Whitespace@1780..1781 "\n" + toplevel_stmt@1781..2223 + stmt@1781..2223 + SelectStmt@1781..2223 + select_no_parens@1781..2223 + with_clause@1781..2028 + WITH@1781..1785 "WITH" + Whitespace@1785..1786 " " + cte_list@1786..2028 + cte_list@1786..1889 + common_table_expr@1786..1889 + name@1786..1800 + ColId@1786..1800 + IDENT@1786..1800 "regional_sales" + Whitespace@1800..1801 " " + AS@1801..1803 "AS" + Whitespace@1803..1804 " " + LParen@1804..1805 "(" + Whitespace@1805..1810 "\n " + PreparableStmt@1810..1887 + SelectStmt@1810..1887 + select_no_parens@1810..1887 + simple_select@1810..1887 + SELECT@1810..1816 "SELECT" + Whitespace@1816..1817 " " + opt_target_list@1817..1851 + target_list@1817..1851 + target_list@1817..1823 + target_el@1817..1823 + a_expr@1817..1823 + c_expr@1817..1823 + columnref@1817..1823 + ColId@1817..1823 + IDENT@1817..1823 "region" + Comma@1823..1824 "," + Whitespace@1824..1825 " " + target_el@1825..1851 + a_expr@1825..1836 + c_expr@1825..1836 + func_expr@1825..1836 + func_application@1825..1836 + func_name@1825..1828 + type_function_name@1825..1828 + IDENT@1825..1828 "SUM" + LParen@1828..1829 "(" + func_arg_list@1829..1835 + func_arg_expr@1829..1835 + a_expr@1829..1835 + c_expr@1829..1835 + columnref@1829..1835 + ColId@1829..1835 + IDENT@1829..1835 "amount" + RParen@1835..1836 ")" + Whitespace@1836..1837 " " + AS@1837..1839 "AS" + Whitespace@1839..1840 " " + ColLabel@1840..1851 + IDENT@1840..1851 "total_sales" + Whitespace@1851..1856 "\n " + from_clause@1856..1867 + FROM@1856..1860 "FROM" + Whitespace@1860..1861 " " + from_list@1861..1867 + table_ref@1861..1867 + relation_expr@1861..1867 + qualified_name@1861..1867 + ColId@1861..1867 + IDENT@1861..1867 "orders" + Whitespace@1867..1872 "\n " + group_clause@1872..1887 + GROUP_P@1872..1877 "GROUP" + Whitespace@1877..1878 " " + BY@1878..1880 "BY" + Whitespace@1880..1881 " " + group_by_list@1881..1887 + group_by_item@1881..1887 + a_expr@1881..1887 + c_expr@1881..1887 + columnref@1881..1887 + ColId@1881..1887 + IDENT@1881..1887 "region" + Whitespace@1887..1888 "\n" + RParen@1888..1889 ")" + Comma@1889..1890 "," + Whitespace@1890..1891 " " + common_table_expr@1891..2028 + name@1891..1902 + ColId@1891..1902 + IDENT@1891..1902 "top_regions" + Whitespace@1902..1903 " " + AS@1903..1905 "AS" + Whitespace@1905..1906 " " + LParen@1906..1907 "(" + Whitespace@1907..1912 "\n " + PreparableStmt@1912..2026 + SelectStmt@1912..2026 + select_no_parens@1912..2026 + simple_select@1912..2026 + SELECT@1912..1918 "SELECT" + Whitespace@1918..1919 " " + opt_target_list@1919..1925 + target_list@1919..1925 + target_el@1919..1925 + a_expr@1919..1925 + c_expr@1919..1925 + columnref@1919..1925 + ColId@1919..1925 + IDENT@1919..1925 "region" + Whitespace@1925..1930 "\n " + from_clause@1930..1949 + FROM@1930..1934 "FROM" + Whitespace@1934..1935 " " + from_list@1935..1949 + table_ref@1935..1949 + relation_expr@1935..1949 + qualified_name@1935..1949 + ColId@1935..1949 + IDENT@1935..1949 "regional_sales" + Whitespace@1949..1954 "\n " + where_clause@1954..2026 + WHERE@1954..1959 "WHERE" + Whitespace@1959..1960 " " + a_expr@1960..2026 + a_expr@1960..1971 + c_expr@1960..1971 + columnref@1960..1971 + ColId@1960..1971 + IDENT@1960..1971 "total_sales" + Whitespace@1971..1972 " " + Greater@1972..1973 ">" + Whitespace@1973..1974 " " + a_expr@1974..2026 + c_expr@1974..2026 + select_with_parens@1974..2026 + LParen@1974..1975 "(" + select_no_parens@1975..2025 + simple_select@1975..2025 + SELECT@1975..1981 "SELECT" + Whitespace@1981..1982 " " + opt_target_list@1982..2005 + target_list@1982..2005 + target_el@1982..2005 + a_expr@1982..2005 + a_expr@1982..2002 + a_expr@1982..1998 + c_expr@1982..1998 + func_expr@1982..1998 + func_application@1982..1998 + func_name@1982..1985 + type_function_name@1982..1985 + IDENT@1982..1985 "SUM" + LParen@1985..1986 "(" + func_arg_list@1986..1997 + func_arg_expr@1986..1997 + a_expr@1986..1997 + c_expr@1986..1997 + columnref@1986..1997 + ColId@1986..1997 + IDENT@1986..1997 "total_sales" + RParen@1997..1998 ")" + Star@1998..1999 "*" + a_expr@1999..2002 + c_expr@1999..2002 + AexprConst@1999..2002 + FCONST@1999..2002 "1.1" + Slash@2002..2003 "/" + a_expr@2003..2005 + c_expr@2003..2005 + AexprConst@2003..2005 + Iconst@2003..2005 + ICONST@2003..2005 "10" + Whitespace@2005..2006 " " + from_clause@2006..2025 + FROM@2006..2010 "FROM" + Whitespace@2010..2011 " " + from_list@2011..2025 + table_ref@2011..2025 + relation_expr@2011..2025 + qualified_name@2011..2025 + ColId@2011..2025 + IDENT@2011..2025 "regional_sales" + RParen@2025..2026 ")" + Whitespace@2026..2027 "\n" + RParen@2027..2028 ")" + Whitespace@2028..2029 "\n" + select_clause@2029..2223 + simple_select@2029..2223 + SELECT@2029..2035 "SELECT" + Whitespace@2035..2036 " " + opt_target_list@2036..2137 + target_list@2036..2137 + target_list@2036..2099 + target_list@2036..2059 + target_list@2036..2042 + target_el@2036..2042 + a_expr@2036..2042 + c_expr@2036..2042 + columnref@2036..2042 + ColId@2036..2042 + IDENT@2036..2042 "region" + Comma@2042..2043 "," + Whitespace@2043..2052 "\n " + target_el@2052..2059 + a_expr@2052..2059 + c_expr@2052..2059 + columnref@2052..2059 + ColId@2052..2059 + IDENT@2052..2059 "product" + Comma@2059..2060 "," + Whitespace@2060..2069 "\n " + target_el@2069..2099 + a_expr@2069..2082 + c_expr@2069..2082 + func_expr@2069..2082 + func_application@2069..2082 + func_name@2069..2072 + type_function_name@2069..2072 + IDENT@2069..2072 "SUM" + LParen@2072..2073 "(" + func_arg_list@2073..2081 + func_arg_expr@2073..2081 + a_expr@2073..2081 + c_expr@2073..2081 + columnref@2073..2081 + ColId@2073..2081 + IDENT@2073..2081 "quantity" + RParen@2081..2082 ")" + Whitespace@2082..2083 " " + AS@2083..2085 "AS" + Whitespace@2085..2086 " " + ColLabel@2086..2099 + IDENT@2086..2099 "product_units" + Comma@2099..2100 "," + Whitespace@2100..2109 "\n " + target_el@2109..2137 + a_expr@2109..2120 + c_expr@2109..2120 + func_expr@2109..2120 + func_application@2109..2120 + func_name@2109..2112 + type_function_name@2109..2112 + IDENT@2109..2112 "SUM" + LParen@2112..2113 "(" + func_arg_list@2113..2119 + func_arg_expr@2113..2119 + a_expr@2113..2119 + c_expr@2113..2119 + columnref@2113..2119 + ColId@2113..2119 + IDENT@2113..2119 "amount" + RParen@2119..2120 ")" + Whitespace@2120..2121 " " + AS@2121..2123 "AS" + Whitespace@2123..2124 " " + ColLabel@2124..2137 + IDENT@2124..2137 "product_sales" + Whitespace@2137..2138 "\n" + from_clause@2138..2149 + FROM@2138..2142 "FROM" + Whitespace@2142..2143 " " + from_list@2143..2149 + table_ref@2143..2149 + relation_expr@2143..2149 + qualified_name@2143..2149 + ColId@2143..2149 + IDENT@2143..2149 "orders" + Whitespace@2149..2150 "\n" + where_clause@2150..2198 + WHERE@2150..2155 "WHERE" + Whitespace@2155..2156 " " + a_expr@2156..2198 + a_expr@2156..2162 + c_expr@2156..2162 + columnref@2156..2162 + ColId@2156..2162 + IDENT@2156..2162 "region" + Whitespace@2162..2163 " " + IN_P@2163..2165 "IN" + Whitespace@2165..2166 " " + in_expr@2166..2198 + select_with_parens@2166..2198 + LParen@2166..2167 "(" + select_no_parens@2167..2197 + simple_select@2167..2197 + SELECT@2167..2173 "SELECT" + Whitespace@2173..2174 " " + opt_target_list@2174..2180 + target_list@2174..2180 + target_el@2174..2180 + a_expr@2174..2180 + c_expr@2174..2180 + columnref@2174..2180 + ColId@2174..2180 + IDENT@2174..2180 "region" + Whitespace@2180..2181 " " + from_clause@2181..2197 + FROM@2181..2185 "FROM" + Whitespace@2185..2186 " " + from_list@2186..2197 + table_ref@2186..2197 + relation_expr@2186..2197 + qualified_name@2186..2197 + ColId@2186..2197 + IDENT@2186..2197 "top_regions" + RParen@2197..2198 ")" + Whitespace@2198..2199 "\n" + group_clause@2199..2223 + GROUP_P@2199..2204 "GROUP" + Whitespace@2204..2205 " " + BY@2205..2207 "BY" + Whitespace@2207..2208 " " + group_by_list@2208..2223 + group_by_list@2208..2214 + group_by_item@2208..2214 + a_expr@2208..2214 + c_expr@2208..2214 + columnref@2208..2214 + ColId@2208..2214 + IDENT@2208..2214 "region" + Comma@2214..2215 "," + Whitespace@2215..2216 " " + group_by_item@2216..2223 + a_expr@2216..2223 + c_expr@2216..2223 + columnref@2216..2223 + ColId@2216..2223 + IDENT@2216..2223 "product" + Semicolon@2223..2224 ";" + Whitespace@2224..2225 "\n" + toplevel_stmt@2225..2685 + stmt@2225..2685 + SelectStmt@2225..2685 + select_no_parens@2225..2685 + with_clause@2225..2468 + WITH@2225..2229 "WITH" + Whitespace@2229..2230 " " + cte_list@2230..2468 + cte_list@2230..2333 + common_table_expr@2230..2333 + name@2230..2244 + ColId@2230..2244 + IDENT@2230..2244 "regional_sales" + Whitespace@2244..2245 " " + AS@2245..2247 "AS" + Whitespace@2247..2248 " " + LParen@2248..2249 "(" + Whitespace@2249..2254 "\n " + PreparableStmt@2254..2331 + SelectStmt@2254..2331 + select_no_parens@2254..2331 + simple_select@2254..2331 + SELECT@2254..2260 "SELECT" + Whitespace@2260..2261 " " + opt_target_list@2261..2295 + target_list@2261..2295 + target_list@2261..2267 + target_el@2261..2267 + a_expr@2261..2267 + c_expr@2261..2267 + columnref@2261..2267 + ColId@2261..2267 + IDENT@2261..2267 "region" + Comma@2267..2268 "," + Whitespace@2268..2269 " " + target_el@2269..2295 + a_expr@2269..2280 + c_expr@2269..2280 + func_expr@2269..2280 + func_application@2269..2280 + func_name@2269..2272 + type_function_name@2269..2272 + IDENT@2269..2272 "SUM" + LParen@2272..2273 "(" + func_arg_list@2273..2279 + func_arg_expr@2273..2279 + a_expr@2273..2279 + c_expr@2273..2279 + columnref@2273..2279 + ColId@2273..2279 + IDENT@2273..2279 "amount" + RParen@2279..2280 ")" + Whitespace@2280..2281 " " + AS@2281..2283 "AS" + Whitespace@2283..2284 " " + ColLabel@2284..2295 + IDENT@2284..2295 "total_sales" + Whitespace@2295..2300 "\n " + from_clause@2300..2311 + FROM@2300..2304 "FROM" + Whitespace@2304..2305 " " + from_list@2305..2311 + table_ref@2305..2311 + relation_expr@2305..2311 + qualified_name@2305..2311 + ColId@2305..2311 + IDENT@2305..2311 "orders" + Whitespace@2311..2316 "\n " + group_clause@2316..2331 + GROUP_P@2316..2321 "GROUP" + Whitespace@2321..2322 " " + BY@2322..2324 "BY" + Whitespace@2324..2325 " " + group_by_list@2325..2331 + group_by_item@2325..2331 + a_expr@2325..2331 + c_expr@2325..2331 + columnref@2325..2331 + ColId@2325..2331 + IDENT@2325..2331 "region" + Whitespace@2331..2332 "\n" + RParen@2332..2333 ")" + Comma@2333..2334 "," + Whitespace@2334..2335 " " + common_table_expr@2335..2468 + name@2335..2346 + ColId@2335..2346 + IDENT@2335..2346 "top_regions" + Whitespace@2346..2347 " " + AS@2347..2349 "AS" + Whitespace@2349..2350 " " + LParen@2350..2351 "(" + Whitespace@2351..2356 "\n " + PreparableStmt@2356..2466 + SelectStmt@2356..2466 + select_no_parens@2356..2466 + simple_select@2356..2466 + SELECT@2356..2362 "SELECT" + Whitespace@2362..2363 " " + opt_target_list@2363..2369 + target_list@2363..2369 + target_el@2363..2369 + a_expr@2363..2369 + c_expr@2363..2369 + columnref@2363..2369 + ColId@2363..2369 + IDENT@2363..2369 "region" + Whitespace@2369..2374 "\n " + from_clause@2374..2393 + FROM@2374..2378 "FROM" + Whitespace@2378..2379 " " + from_list@2379..2393 + table_ref@2379..2393 + relation_expr@2379..2393 + qualified_name@2379..2393 + ColId@2379..2393 + IDENT@2379..2393 "regional_sales" + Whitespace@2393..2398 "\n " + where_clause@2398..2466 + WHERE@2398..2403 "WHERE" + Whitespace@2403..2404 " " + a_expr@2404..2466 + a_expr@2404..2415 + c_expr@2404..2415 + columnref@2404..2415 + ColId@2404..2415 + IDENT@2404..2415 "total_sales" + Whitespace@2415..2416 " " + Greater@2416..2417 ">" + Whitespace@2417..2418 " " + a_expr@2418..2466 + c_expr@2418..2466 + select_with_parens@2418..2466 + LParen@2418..2419 "(" + select_no_parens@2419..2465 + simple_select@2419..2465 + SELECT@2419..2425 "SELECT" + Whitespace@2425..2426 " " + opt_target_list@2426..2445 + target_list@2426..2445 + target_el@2426..2445 + a_expr@2426..2445 + a_expr@2426..2442 + c_expr@2426..2442 + func_expr@2426..2442 + func_application@2426..2442 + func_name@2426..2429 + type_function_name@2426..2429 + IDENT@2426..2429 "SUM" + LParen@2429..2430 "(" + func_arg_list@2430..2441 + func_arg_expr@2430..2441 + a_expr@2430..2441 + c_expr@2430..2441 + columnref@2430..2441 + ColId@2430..2441 + IDENT@2430..2441 "total_sales" + RParen@2441..2442 ")" + Slash@2442..2443 "/" + a_expr@2443..2445 + c_expr@2443..2445 + AexprConst@2443..2445 + Iconst@2443..2445 + ICONST@2443..2445 "10" + Whitespace@2445..2446 " " + from_clause@2446..2465 + FROM@2446..2450 "FROM" + Whitespace@2450..2451 " " + from_list@2451..2465 + table_ref@2451..2465 + relation_expr@2451..2465 + qualified_name@2451..2465 + ColId@2451..2465 + IDENT@2451..2465 "regional_sales" + RParen@2465..2466 ")" + Whitespace@2466..2467 "\n" + RParen@2467..2468 ")" + Whitespace@2468..2469 "\n" + select_clause@2469..2685 + simple_select@2469..2685 + SELECT@2469..2475 "SELECT" + Whitespace@2475..2476 " " + opt_target_list@2476..2599 + target_list@2476..2599 + target_list@2476..2577 + target_list@2476..2539 + target_list@2476..2499 + target_list@2476..2482 + target_el@2476..2482 + a_expr@2476..2482 + c_expr@2476..2482 + columnref@2476..2482 + ColId@2476..2482 + IDENT@2476..2482 "region" + Comma@2482..2483 "," + Whitespace@2483..2492 "\n " + target_el@2492..2499 + a_expr@2492..2499 + c_expr@2492..2499 + columnref@2492..2499 + ColId@2492..2499 + IDENT@2492..2499 "product" + Comma@2499..2500 "," + Whitespace@2500..2509 "\n " + target_el@2509..2539 + a_expr@2509..2522 + c_expr@2509..2522 + func_expr@2509..2522 + func_application@2509..2522 + func_name@2509..2512 + type_function_name@2509..2512 + IDENT@2509..2512 "SUM" + LParen@2512..2513 "(" + func_arg_list@2513..2521 + func_arg_expr@2513..2521 + a_expr@2513..2521 + c_expr@2513..2521 + columnref@2513..2521 + ColId@2513..2521 + IDENT@2513..2521 "quantity" + RParen@2521..2522 ")" + Whitespace@2522..2523 " " + AS@2523..2525 "AS" + Whitespace@2525..2526 " " + ColLabel@2526..2539 + IDENT@2526..2539 "product_units" + Comma@2539..2540 "," + Whitespace@2540..2549 "\n " + target_el@2549..2577 + a_expr@2549..2560 + c_expr@2549..2560 + func_expr@2549..2560 + func_application@2549..2560 + func_name@2549..2552 + type_function_name@2549..2552 + IDENT@2549..2552 "SUM" + LParen@2552..2553 "(" + func_arg_list@2553..2559 + func_arg_expr@2553..2559 + a_expr@2553..2559 + c_expr@2553..2559 + columnref@2553..2559 + ColId@2553..2559 + IDENT@2553..2559 "amount" + RParen@2559..2560 ")" + Whitespace@2560..2561 " " + AS@2561..2563 "AS" + Whitespace@2563..2564 " " + ColLabel@2564..2577 + IDENT@2564..2577 "product_sales" + Comma@2577..2578 "," + Whitespace@2578..2587 "\n " + target_el@2587..2599 + a_expr@2587..2594 + a_expr@2587..2590 + a_expr@2587..2588 + c_expr@2587..2588 + AexprConst@2587..2588 + Iconst@2587..2588 + ICONST@2587..2588 "1" + Star@2588..2589 "*" + a_expr@2589..2590 + c_expr@2589..2590 + AexprConst@2589..2590 + Iconst@2589..2590 + ICONST@2589..2590 "2" + Minus@2590..2591 "-" + a_expr@2591..2594 + a_expr@2591..2592 + c_expr@2591..2592 + AexprConst@2591..2592 + Iconst@2591..2592 + ICONST@2591..2592 "3" + Slash@2592..2593 "/" + a_expr@2593..2594 + c_expr@2593..2594 + AexprConst@2593..2594 + Iconst@2593..2594 + ICONST@2593..2594 "4" + Whitespace@2594..2595 " " + AS@2595..2597 "as" + Whitespace@2597..2598 " " + ColLabel@2598..2599 + IDENT@2598..2599 "X" + Whitespace@2599..2600 "\n" + from_clause@2600..2611 + FROM@2600..2604 "FROM" + Whitespace@2604..2605 " " + from_list@2605..2611 + table_ref@2605..2611 + relation_expr@2605..2611 + qualified_name@2605..2611 + ColId@2605..2611 + IDENT@2605..2611 "orders" + Whitespace@2611..2612 "\n" + where_clause@2612..2660 + WHERE@2612..2617 "WHERE" + Whitespace@2617..2618 " " + a_expr@2618..2660 + a_expr@2618..2624 + c_expr@2618..2624 + columnref@2618..2624 + ColId@2618..2624 + IDENT@2618..2624 "region" + Whitespace@2624..2625 " " + IN_P@2625..2627 "IN" + Whitespace@2627..2628 " " + in_expr@2628..2660 + select_with_parens@2628..2660 + LParen@2628..2629 "(" + select_no_parens@2629..2659 + simple_select@2629..2659 + SELECT@2629..2635 "SELECT" + Whitespace@2635..2636 " " + opt_target_list@2636..2642 + target_list@2636..2642 + target_el@2636..2642 + a_expr@2636..2642 + c_expr@2636..2642 + columnref@2636..2642 + ColId@2636..2642 + IDENT@2636..2642 "region" + Whitespace@2642..2643 " " + from_clause@2643..2659 + FROM@2643..2647 "FROM" + Whitespace@2647..2648 " " + from_list@2648..2659 + table_ref@2648..2659 + relation_expr@2648..2659 + qualified_name@2648..2659 + ColId@2648..2659 + IDENT@2648..2659 "top_regions" + RParen@2659..2660 ")" + Whitespace@2660..2661 "\n" + group_clause@2661..2685 + GROUP_P@2661..2666 "GROUP" + Whitespace@2666..2667 " " + BY@2667..2669 "BY" + Whitespace@2669..2670 " " + group_by_list@2670..2685 + group_by_list@2670..2676 + group_by_item@2670..2676 + a_expr@2670..2676 + c_expr@2670..2676 + columnref@2670..2676 + ColId@2670..2676 + IDENT@2670..2676 "region" + Comma@2676..2677 "," + Whitespace@2677..2678 " " + group_by_item@2678..2685 + a_expr@2678..2685 + c_expr@2678..2685 + columnref@2678..2685 + ColId@2678..2685 + IDENT@2678..2685 "product" + Semicolon@2685..2686 ";" + Whitespace@2686..2687 "\n" + toplevel_stmt@2687..3166 + stmt@2687..3166 + SelectStmt@2687..3166 + select_no_parens@2687..3166 + with_clause@2687..2930 + WITH@2687..2691 "WITH" + Whitespace@2691..2692 " " + cte_list@2692..2930 + cte_list@2692..2795 + common_table_expr@2692..2795 + name@2692..2706 + ColId@2692..2706 + IDENT@2692..2706 "regional_sales" + Whitespace@2706..2707 " " + AS@2707..2709 "AS" + Whitespace@2709..2710 " " + LParen@2710..2711 "(" + Whitespace@2711..2716 "\n " + PreparableStmt@2716..2793 + SelectStmt@2716..2793 + select_no_parens@2716..2793 + simple_select@2716..2793 + SELECT@2716..2722 "SELECT" + Whitespace@2722..2723 " " + opt_target_list@2723..2757 + target_list@2723..2757 + target_list@2723..2729 + target_el@2723..2729 + a_expr@2723..2729 + c_expr@2723..2729 + columnref@2723..2729 + ColId@2723..2729 + IDENT@2723..2729 "region" + Comma@2729..2730 "," + Whitespace@2730..2731 " " + target_el@2731..2757 + a_expr@2731..2742 + c_expr@2731..2742 + func_expr@2731..2742 + func_application@2731..2742 + func_name@2731..2734 + type_function_name@2731..2734 + IDENT@2731..2734 "SUM" + LParen@2734..2735 "(" + func_arg_list@2735..2741 + func_arg_expr@2735..2741 + a_expr@2735..2741 + c_expr@2735..2741 + columnref@2735..2741 + ColId@2735..2741 + IDENT@2735..2741 "amount" + RParen@2741..2742 ")" + Whitespace@2742..2743 " " + AS@2743..2745 "AS" + Whitespace@2745..2746 " " + ColLabel@2746..2757 + IDENT@2746..2757 "total_sales" + Whitespace@2757..2762 "\n " + from_clause@2762..2773 + FROM@2762..2766 "FROM" + Whitespace@2766..2767 " " + from_list@2767..2773 + table_ref@2767..2773 + relation_expr@2767..2773 + qualified_name@2767..2773 + ColId@2767..2773 + IDENT@2767..2773 "orders" + Whitespace@2773..2778 "\n " + group_clause@2778..2793 + GROUP_P@2778..2783 "GROUP" + Whitespace@2783..2784 " " + BY@2784..2786 "BY" + Whitespace@2786..2787 " " + group_by_list@2787..2793 + group_by_item@2787..2793 + a_expr@2787..2793 + c_expr@2787..2793 + columnref@2787..2793 + ColId@2787..2793 + IDENT@2787..2793 "region" + Whitespace@2793..2794 "\n" + RParen@2794..2795 ")" + Comma@2795..2796 "," + Whitespace@2796..2797 " " + common_table_expr@2797..2930 + name@2797..2808 + ColId@2797..2808 + IDENT@2797..2808 "top_regions" + Whitespace@2808..2809 " " + AS@2809..2811 "AS" + Whitespace@2811..2812 " " + LParen@2812..2813 "(" + Whitespace@2813..2818 "\n " + PreparableStmt@2818..2928 + SelectStmt@2818..2928 + select_no_parens@2818..2928 + simple_select@2818..2928 + SELECT@2818..2824 "SELECT" + Whitespace@2824..2825 " " + opt_target_list@2825..2831 + target_list@2825..2831 + target_el@2825..2831 + a_expr@2825..2831 + c_expr@2825..2831 + columnref@2825..2831 + ColId@2825..2831 + IDENT@2825..2831 "region" + Whitespace@2831..2836 "\n " + from_clause@2836..2855 + FROM@2836..2840 "FROM" + Whitespace@2840..2841 " " + from_list@2841..2855 + table_ref@2841..2855 + relation_expr@2841..2855 + qualified_name@2841..2855 + ColId@2841..2855 + IDENT@2841..2855 "regional_sales" + Whitespace@2855..2860 "\n " + where_clause@2860..2928 + WHERE@2860..2865 "WHERE" + Whitespace@2865..2866 " " + a_expr@2866..2928 + a_expr@2866..2877 + c_expr@2866..2877 + columnref@2866..2877 + ColId@2866..2877 + IDENT@2866..2877 "total_sales" + Whitespace@2877..2878 " " + Greater@2878..2879 ">" + Whitespace@2879..2880 " " + a_expr@2880..2928 + c_expr@2880..2928 + select_with_parens@2880..2928 + LParen@2880..2881 "(" + select_no_parens@2881..2927 + simple_select@2881..2927 + SELECT@2881..2887 "SELECT" + Whitespace@2887..2888 " " + opt_target_list@2888..2907 + target_list@2888..2907 + target_el@2888..2907 + a_expr@2888..2907 + a_expr@2888..2904 + c_expr@2888..2904 + func_expr@2888..2904 + func_application@2888..2904 + func_name@2888..2891 + type_function_name@2888..2891 + IDENT@2888..2891 "SUM" + LParen@2891..2892 "(" + func_arg_list@2892..2903 + func_arg_expr@2892..2903 + a_expr@2892..2903 + c_expr@2892..2903 + columnref@2892..2903 + ColId@2892..2903 + IDENT@2892..2903 "total_sales" + RParen@2903..2904 ")" + Slash@2904..2905 "/" + a_expr@2905..2907 + c_expr@2905..2907 + AexprConst@2905..2907 + Iconst@2905..2907 + ICONST@2905..2907 "10" + Whitespace@2907..2908 " " + from_clause@2908..2927 + FROM@2908..2912 "FROM" + Whitespace@2912..2913 " " + from_list@2913..2927 + table_ref@2913..2927 + relation_expr@2913..2927 + qualified_name@2913..2927 + ColId@2913..2927 + IDENT@2913..2927 "regional_sales" + RParen@2927..2928 ")" + Whitespace@2928..2929 "\n" + RParen@2929..2930 ")" + Whitespace@2930..2931 "\n" + SQL_COMMENT@2931..2938 "-- test" + Whitespace@2938..2939 "\n" + C_COMMENT@2939..2949 "/* test */" + Whitespace@2949..2950 "\n" + select_clause@2950..3166 + simple_select@2950..3166 + SELECT@2950..2956 "SELECT" + Whitespace@2956..2957 " " + opt_target_list@2957..3080 + target_list@2957..3080 + target_list@2957..3058 + target_list@2957..3020 + target_list@2957..2980 + target_list@2957..2963 + target_el@2957..2963 + a_expr@2957..2963 + c_expr@2957..2963 + columnref@2957..2963 + ColId@2957..2963 + IDENT@2957..2963 "region" + Comma@2963..2964 "," + Whitespace@2964..2973 "\n " + target_el@2973..2980 + a_expr@2973..2980 + c_expr@2973..2980 + columnref@2973..2980 + ColId@2973..2980 + IDENT@2973..2980 "product" + Comma@2980..2981 "," + Whitespace@2981..2990 "\n " + target_el@2990..3020 + a_expr@2990..3003 + c_expr@2990..3003 + func_expr@2990..3003 + func_application@2990..3003 + func_name@2990..2993 + type_function_name@2990..2993 + IDENT@2990..2993 "SUM" + LParen@2993..2994 "(" + func_arg_list@2994..3002 + func_arg_expr@2994..3002 + a_expr@2994..3002 + c_expr@2994..3002 + columnref@2994..3002 + ColId@2994..3002 + IDENT@2994..3002 "quantity" + RParen@3002..3003 ")" + Whitespace@3003..3004 " " + AS@3004..3006 "AS" + Whitespace@3006..3007 " " + ColLabel@3007..3020 + IDENT@3007..3020 "product_units" + Comma@3020..3021 "," + Whitespace@3021..3030 "\n " + target_el@3030..3058 + a_expr@3030..3041 + c_expr@3030..3041 + func_expr@3030..3041 + func_application@3030..3041 + func_name@3030..3033 + type_function_name@3030..3033 + IDENT@3030..3033 "SUM" + LParen@3033..3034 "(" + func_arg_list@3034..3040 + func_arg_expr@3034..3040 + a_expr@3034..3040 + c_expr@3034..3040 + columnref@3034..3040 + ColId@3034..3040 + IDENT@3034..3040 "amount" + RParen@3040..3041 ")" + Whitespace@3041..3042 " " + AS@3042..3044 "AS" + Whitespace@3044..3045 " " + ColLabel@3045..3058 + IDENT@3045..3058 "product_sales" + Comma@3058..3059 "," + Whitespace@3059..3068 "\n " + target_el@3068..3080 + a_expr@3068..3075 + a_expr@3068..3071 + a_expr@3068..3069 + c_expr@3068..3069 + AexprConst@3068..3069 + Iconst@3068..3069 + ICONST@3068..3069 "1" + Star@3069..3070 "*" + a_expr@3070..3071 + c_expr@3070..3071 + AexprConst@3070..3071 + Iconst@3070..3071 + ICONST@3070..3071 "2" + Minus@3071..3072 "-" + a_expr@3072..3075 + a_expr@3072..3073 + c_expr@3072..3073 + AexprConst@3072..3073 + Iconst@3072..3073 + ICONST@3072..3073 "3" + Slash@3073..3074 "/" + a_expr@3074..3075 + c_expr@3074..3075 + AexprConst@3074..3075 + Iconst@3074..3075 + ICONST@3074..3075 "4" + Whitespace@3075..3076 " " + AS@3076..3078 "as" + Whitespace@3078..3079 " " + ColLabel@3079..3080 + IDENT@3079..3080 "X" + Whitespace@3080..3081 "\n" + from_clause@3081..3092 + FROM@3081..3085 "FROM" + Whitespace@3085..3086 " " + from_list@3086..3092 + table_ref@3086..3092 + relation_expr@3086..3092 + qualified_name@3086..3092 + ColId@3086..3092 + IDENT@3086..3092 "orders" + Whitespace@3092..3093 "\n" + where_clause@3093..3141 + WHERE@3093..3098 "WHERE" + Whitespace@3098..3099 " " + a_expr@3099..3141 + a_expr@3099..3105 + c_expr@3099..3105 + columnref@3099..3105 + ColId@3099..3105 + IDENT@3099..3105 "region" + Whitespace@3105..3106 " " + IN_P@3106..3108 "IN" + Whitespace@3108..3109 " " + in_expr@3109..3141 + select_with_parens@3109..3141 + LParen@3109..3110 "(" + select_no_parens@3110..3140 + simple_select@3110..3140 + SELECT@3110..3116 "SELECT" + Whitespace@3116..3117 " " + opt_target_list@3117..3123 + target_list@3117..3123 + target_el@3117..3123 + a_expr@3117..3123 + c_expr@3117..3123 + columnref@3117..3123 + ColId@3117..3123 + IDENT@3117..3123 "region" + Whitespace@3123..3124 " " + from_clause@3124..3140 + FROM@3124..3128 "FROM" + Whitespace@3128..3129 " " + from_list@3129..3140 + table_ref@3129..3140 + relation_expr@3129..3140 + qualified_name@3129..3140 + ColId@3129..3140 + IDENT@3129..3140 "top_regions" + RParen@3140..3141 ")" + Whitespace@3141..3142 "\n" + group_clause@3142..3166 + GROUP_P@3142..3147 "GROUP" + Whitespace@3147..3148 " " + BY@3148..3150 "BY" + Whitespace@3150..3151 " " + group_by_list@3151..3166 + group_by_list@3151..3157 + group_by_item@3151..3157 + a_expr@3151..3157 + c_expr@3151..3157 + columnref@3151..3157 + ColId@3151..3157 + IDENT@3151..3157 "region" + Comma@3157..3158 "," + Whitespace@3158..3159 " " + group_by_item@3159..3166 + a_expr@3159..3166 + c_expr@3159..3166 + columnref@3159..3166 + ColId@3159..3166 + IDENT@3159..3166 "product" + Semicolon@3166..3167 ";" + Whitespace@3167..3168 "\n" + SQL_COMMENT@3168..3172 "-- a" + Whitespace@3172..3173 "\n" + C_COMMENT@3173..3180 "/* b */" + Whitespace@3180..3181 "\n" + toplevel_stmt@3181..3230 + stmt@3181..3230 + SelectStmt@3181..3230 + select_no_parens@3181..3230 + simple_select@3181..3230 + SELECT@3181..3187 "SELECT" + Whitespace@3187..3188 " " + C_COMMENT@3188..3194 "/*$c*/" + opt_target_list@3194..3230 + target_list@3194..3230 + target_list@3194..3215 + target_list@3194..3200 + target_el@3194..3200 + a_expr@3194..3195 + c_expr@3194..3195 + AexprConst@3194..3195 + Iconst@3194..3195 + ICONST@3194..3195 "0" + Whitespace@3195..3196 " " + AS@3196..3198 "as" + Whitespace@3198..3199 " " + ColLabel@3199..3200 + IDENT@3199..3200 "a" + Comma@3200..3201 "," + Whitespace@3201..3202 " " + SQL_COMMENT@3202..3206 "-- d" + Whitespace@3206..3207 "\n" + SQL_COMMENT@3207..3211 "-- e" + Whitespace@3211..3212 "\n" + target_el@3212..3215 + a_expr@3212..3213 + c_expr@3212..3213 + columnref@3212..3213 + ColId@3212..3213 + IDENT@3212..3213 "b" + Whitespace@3213..3214 " " + BareColLabel@3214..3215 + IDENT@3214..3215 "b" + Whitespace@3215..3216 " " + SQL_COMMENT@3216..3220 "-- f" + Whitespace@3220..3221 "\n" + Comma@3221..3222 "," + Whitespace@3222..3229 " " + target_el@3229..3230 + a_expr@3229..3230 + c_expr@3229..3230 + columnref@3229..3230 + ColId@3229..3230 + IDENT@3229..3230 "c" + Whitespace@3230..3231 " " + SQL_COMMENT@3231..3235 "-- g" + Whitespace@3235..3236 "\n" + Semicolon@3236..3237 ";" + Whitespace@3237..3238 " " + SQL_COMMENT@3238..3242 "-- h" + Whitespace@3242..3243 "\n" + toplevel_stmt@3243..3253 + stmt@3243..3253 + SelectStmt@3243..3253 + select_no_parens@3243..3253 + simple_select@3243..3253 + SELECT@3243..3249 "select" + Whitespace@3249..3250 " " + opt_target_list@3250..3253 + target_list@3250..3253 + target_el@3250..3253 + a_expr@3250..3253 + Plus@3250..3251 "+" + a_expr@3251..3253 + Minus@3251..3252 "-" + a_expr@3252..3253 + c_expr@3252..3253 + AexprConst@3252..3253 + Iconst@3252..3253 + ICONST@3252..3253 "1" + Semicolon@3253..3254 ";" + Whitespace@3254..3255 "\n" + toplevel_stmt@3255..3271 + stmt@3255..3271 + SelectStmt@3255..3271 + select_no_parens@3255..3271 + simple_select@3255..3271 + SELECT@3255..3261 "select" + Whitespace@3261..3262 " " + opt_target_list@3262..3271 + target_list@3262..3271 + target_el@3262..3271 + a_expr@3262..3271 + c_expr@3262..3271 + columnref@3262..3271 + ColId@3262..3271 + IDENT@3262..3271 "カラム" + Semicolon@3271..3272 ";" + Whitespace@3272..3273 "\n" + toplevel_stmt@3273..3293 + stmt@3273..3293 + SelectStmt@3273..3293 + select_no_parens@3273..3293 + simple_select@3273..3293 + SELECT@3273..3279 "select" + Whitespace@3279..3280 " " + opt_target_list@3280..3293 + target_list@3280..3293 + target_el@3280..3293 + a_expr@3280..3293 + c_expr@3280..3293 + AexprConst@3280..3293 + Sconst@3280..3293 + SCONST@3280..3293 "E'\\U0001F600'" + Semicolon@3293..3294 ";" + Whitespace@3294..3295 "\n" + toplevel_stmt@3295..3317 + stmt@3295..3317 + SelectStmt@3295..3317 + select_no_parens@3295..3317 + simple_select@3295..3317 + SELECT@3295..3301 "SELECT" + Whitespace@3301..3302 " " + opt_target_list@3302..3317 + target_list@3302..3317 + target_el@3302..3317 + a_expr@3302..3317 + c_expr@3302..3317 + AexprConst@3302..3317 + Sconst@3302..3317 + SCONST@3302..3317 "e'\\uD83D\\uDC31'" + Semicolon@3317..3318 ";" + Whitespace@3318..3319 "\n" + toplevel_stmt@3319..3337 + stmt@3319..3337 + SelectStmt@3319..3337 + select_no_parens@3319..3337 + simple_select@3319..3337 + SELECT@3319..3325 "SELECT" + Whitespace@3325..3326 " " + opt_target_list@3326..3337 + target_list@3326..3337 + target_el@3326..3337 + a_expr@3326..3330 + a_expr@3326..3327 + c_expr@3326..3327 + AexprConst@3326..3327 + Iconst@3326..3327 + ICONST@3326..3327 "1" + Star@3327..3328 "*" + a_expr@3328..3330 + Minus@3328..3329 "-" + a_expr@3329..3330 + c_expr@3329..3330 + AexprConst@3329..3330 + Iconst@3329..3330 + ICONST@3329..3330 "1" + Whitespace@3330..3331 " " + AS@3331..3333 "as" + Whitespace@3333..3334 " " + ColLabel@3334..3337 + IDENT@3334..3337 "あ" + Semicolon@3337..3338 ";" + Whitespace@3338..3339 "\n" diff --git a/crates/postgresql-cst-parser/tests/data/src/postgresql_v17.sql b/crates/postgresql-cst-parser/tests/data/src/postgresql_v17.sql new file mode 100644 index 0000000..9bbb9aa --- /dev/null +++ b/crates/postgresql-cst-parser/tests/data/src/postgresql_v17.sql @@ -0,0 +1,6 @@ +SELECT * + FROM + JSON_TABLE( + '[ {"c1": null} ]', + '$[*]' COLUMNS( c1 INT PATH '$.c1' ERROR ON ERROR ) + ) as jt; diff --git a/crates/postgresql-cst-parser/tests/data/src/select.sql b/crates/postgresql-cst-parser/tests/data/src/select.sql index 65a976c..82cd16f 100644 --- a/crates/postgresql-cst-parser/tests/data/src/select.sql +++ b/crates/postgresql-cst-parser/tests/data/src/select.sql @@ -108,4 +108,8 @@ SELECT /*$c*/0 as a, -- d b b -- f , c -- g ; -- h -SELECT 1*-1 as あ; \ No newline at end of file +select +-1; +select カラム; +select E'\U0001F600'; +SELECT e'\uD83D\uDC31'; +SELECT 1*-1 as あ; diff --git a/crates/postgresql-cst-parser/tests/test.rs b/crates/postgresql-cst-parser/tests/test.rs index 48fc728..9da9826 100644 --- a/crates/postgresql-cst-parser/tests/test.rs +++ b/crates/postgresql-cst-parser/tests/test.rs @@ -17,11 +17,11 @@ fn test_all() -> Result<(), std::io::Error> { .parent() .unwrap() .join("dst") - .join(format!("{}.txt", file_stem)); + .join(format!("{file_stem}.txt")); let content = std::fs::read_to_string(path)?; let tree = parse_2way(&content).unwrap(); - std::fs::write(dst_path, format!("{:#?}", tree))?; + std::fs::write(dst_path, format!("{tree:#?}"))?; } } diff --git a/demo/package-lock.json b/demo/package-lock.json index 720cfb0..2e42b67 100644 --- a/demo/package-lock.json +++ b/demo/package-lock.json @@ -8,178 +8,171 @@ "name": "demo", "version": "0.0.0", "dependencies": { - "@emotion/react": "^11.11.4", - "@emotion/styled": "^11.11.5", - "@fontsource/roboto": "^5.0.13", - "@mui/icons-material": "^5.15.17", - "@mui/material": "^5.15.17", - "react": "^18.2.0", - "react-dom": "^18.2.0" + "@emotion/react": "^11.14.0", + "@emotion/styled": "^11.14.0", + "@fontsource/roboto": "^5.2.5", + "@mui/icons-material": "^6.4.7", + "@mui/material": "^6.4.7", + "react": "^19.0.0", + "react-dom": "^19.0.0" }, "devDependencies": { - "@types/react": "^18.2.66", - "@types/react-dom": "^18.2.22", - "@typescript-eslint/eslint-plugin": "^7.2.0", - "@typescript-eslint/parser": "^7.2.0", - "@vitejs/plugin-react-swc": "^3.5.0", - "eslint": "^8.57.0", - "eslint-plugin-react-hooks": "^4.6.0", - "eslint-plugin-react-refresh": "^0.4.6", - "typescript": "^5.2.2", - "vite": "^5.2.0" + "@types/react": "^19.0.10", + "@types/react-dom": "^19.0.4", + "@typescript-eslint/eslint-plugin": "^8.26.1", + "@typescript-eslint/parser": "^8.26.1", + "@vitejs/plugin-react-swc": "^3.8.0", + "eslint": "^9.22.0", + "eslint-plugin-react-hooks": "^5.2.0", + "eslint-plugin-react-refresh": "^0.4.19", + "typescript": "^5.8.2", + "vite": "^6.2.5" } }, "node_modules/@babel/code-frame": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", - "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "license": "MIT", "dependencies": { - "@babel/highlight": "^7.24.2", + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-module-imports": { - "version": "7.24.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", - "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", + "node_modules/@babel/generator": { + "version": "7.26.10", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.10.tgz", + "integrity": "sha512-rRHT8siFIXQrAYOYqZQVsAr8vJ+cBNqcVAY6m5V8/4QqzaPl+zDBe6cLEPRDuNOUf3ww8RfJVlOyQMoSI+5Ang==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.24.0" + "@babel/parser": "^7.26.10", + "@babel/types": "^7.26.10", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-string-parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", - "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", + "node_modules/@babel/helper-module-imports": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz", - "integrity": "sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==", + "node_modules/@babel/helper-string-parser": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/highlight": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.5.tgz", - "integrity": "sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==", - "dependencies": { - "@babel/helper-validator-identifier": "^7.24.5", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "node_modules/@babel/parser": { + "version": "7.26.10", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.10.tgz", + "integrity": "sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA==", + "license": "MIT", "dependencies": { - "color-convert": "^1.9.0" + "@babel/types": "^7.26.10" }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "bin": { + "parser": "bin/babel-parser.js" }, "engines": { - "node": ">=4" + "node": ">=6.0.0" } }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "node_modules/@babel/runtime": { + "version": "7.26.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.10.tgz", + "integrity": "sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw==", + "license": "MIT", "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "regenerator-runtime": "^0.14.0" + }, "engines": { - "node": ">=4" + "node": ">=6.9.0" } }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/@babel/template": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.26.9.tgz", + "integrity": "sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==", + "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" + "@babel/code-frame": "^7.26.2", + "@babel/parser": "^7.26.9", + "@babel/types": "^7.26.9" }, "engines": { - "node": ">=4" + "node": ">=6.9.0" } }, - "node_modules/@babel/runtime": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.5.tgz", - "integrity": "sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==", + "node_modules/@babel/traverse": { + "version": "7.26.10", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.10.tgz", + "integrity": "sha512-k8NuDrxr0WrPH5Aupqb2LCVURP/S0vBEn5mK6iH+GIYob66U5EtoZvcdudR2jQ4cmTwhEwW1DLB+Yyas9zjF6A==", + "license": "MIT", "dependencies": { - "regenerator-runtime": "^0.14.0" + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.10", + "@babel/parser": "^7.26.10", + "@babel/template": "^7.26.9", + "@babel/types": "^7.26.10", + "debug": "^4.3.1", + "globals": "^11.1.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/types": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz", - "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==", + "version": "7.26.10", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.10.tgz", + "integrity": "sha512-emqcG3vHrpxUKTrxcblR36dcrcoRDvKmnL/dCL6ZsHaShW80qxCAcNhzQZrpeM765VzEos+xOi4s+r4IXzTwdQ==", + "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.24.1", - "@babel/helper-validator-identifier": "^7.24.5", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@emotion/babel-plugin": { - "version": "11.11.0", - "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz", - "integrity": "sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==", + "version": "11.13.5", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.13.5.tgz", + "integrity": "sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==", + "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.16.7", "@babel/runtime": "^7.18.3", - "@emotion/hash": "^0.9.1", - "@emotion/memoize": "^0.8.1", - "@emotion/serialize": "^1.1.2", + "@emotion/hash": "^0.9.2", + "@emotion/memoize": "^0.9.0", + "@emotion/serialize": "^1.3.3", "babel-plugin-macros": "^3.1.0", "convert-source-map": "^1.5.0", "escape-string-regexp": "^4.0.0", @@ -189,47 +182,52 @@ } }, "node_modules/@emotion/cache": { - "version": "11.11.0", - "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.11.0.tgz", - "integrity": "sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==", - "dependencies": { - "@emotion/memoize": "^0.8.1", - "@emotion/sheet": "^1.2.2", - "@emotion/utils": "^1.2.1", - "@emotion/weak-memoize": "^0.3.1", + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.14.0.tgz", + "integrity": "sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==", + "license": "MIT", + "dependencies": { + "@emotion/memoize": "^0.9.0", + "@emotion/sheet": "^1.4.0", + "@emotion/utils": "^1.4.2", + "@emotion/weak-memoize": "^0.4.0", "stylis": "4.2.0" } }, "node_modules/@emotion/hash": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", - "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==" + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz", + "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==", + "license": "MIT" }, "node_modules/@emotion/is-prop-valid": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz", - "integrity": "sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.3.1.tgz", + "integrity": "sha512-/ACwoqx7XQi9knQs/G0qKvv5teDMhD7bXYns9N/wM8ah8iNb8jZ2uNO0YOgiq2o2poIvVtJS2YALasQuMSQ7Kw==", + "license": "MIT", "dependencies": { - "@emotion/memoize": "^0.8.1" + "@emotion/memoize": "^0.9.0" } }, "node_modules/@emotion/memoize": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", - "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==" + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz", + "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==", + "license": "MIT" }, "node_modules/@emotion/react": { - "version": "11.11.4", - "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.11.4.tgz", - "integrity": "sha512-t8AjMlF0gHpvvxk5mAtCqR4vmxiGHCeJBaQO6gncUSdklELOgtwjerNY2yuJNfwnc6vi16U/+uMF+afIawJ9iw==", + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.14.0.tgz", + "integrity": "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.18.3", - "@emotion/babel-plugin": "^11.11.0", - "@emotion/cache": "^11.11.0", - "@emotion/serialize": "^1.1.3", - "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", - "@emotion/utils": "^1.2.1", - "@emotion/weak-memoize": "^0.3.1", + "@emotion/babel-plugin": "^11.13.5", + "@emotion/cache": "^11.14.0", + "@emotion/serialize": "^1.3.3", + "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0", + "@emotion/utils": "^1.4.2", + "@emotion/weak-memoize": "^0.4.0", "hoist-non-react-statics": "^3.3.1" }, "peerDependencies": { @@ -242,33 +240,36 @@ } }, "node_modules/@emotion/serialize": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.4.tgz", - "integrity": "sha512-RIN04MBT8g+FnDwgvIUi8czvr1LU1alUMI05LekWB5DGyTm8cCBMCRpq3GqaiyEDRptEXOyXnvZ58GZYu4kBxQ==", - "dependencies": { - "@emotion/hash": "^0.9.1", - "@emotion/memoize": "^0.8.1", - "@emotion/unitless": "^0.8.1", - "@emotion/utils": "^1.2.1", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.3.tgz", + "integrity": "sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==", + "license": "MIT", + "dependencies": { + "@emotion/hash": "^0.9.2", + "@emotion/memoize": "^0.9.0", + "@emotion/unitless": "^0.10.0", + "@emotion/utils": "^1.4.2", "csstype": "^3.0.2" } }, "node_modules/@emotion/sheet": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.2.tgz", - "integrity": "sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==" + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.4.0.tgz", + "integrity": "sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==", + "license": "MIT" }, "node_modules/@emotion/styled": { - "version": "11.11.5", - "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.11.5.tgz", - "integrity": "sha512-/ZjjnaNKvuMPxcIiUkf/9SHoG4Q196DRl1w82hQ3WCsjo1IUR8uaGWrC6a87CrYAW0Kb/pK7hk8BnLgLRi9KoQ==", + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.14.0.tgz", + "integrity": "sha512-XxfOnXFffatap2IyCeJyNov3kiDQWoR08gPUQxvbL7fxKryGBKUZUkG6Hz48DZwVrJSVh9sJboyV1Ds4OW6SgA==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.18.3", - "@emotion/babel-plugin": "^11.11.0", - "@emotion/is-prop-valid": "^1.2.2", - "@emotion/serialize": "^1.1.4", - "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", - "@emotion/utils": "^1.2.1" + "@emotion/babel-plugin": "^11.13.5", + "@emotion/is-prop-valid": "^1.3.0", + "@emotion/serialize": "^1.3.3", + "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0", + "@emotion/utils": "^1.4.2" }, "peerDependencies": { "@emotion/react": "^11.0.0-rc.0", @@ -281,430 +282,559 @@ } }, "node_modules/@emotion/unitless": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", - "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==" + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.10.0.tgz", + "integrity": "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==", + "license": "MIT" }, "node_modules/@emotion/use-insertion-effect-with-fallbacks": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz", - "integrity": "sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.2.0.tgz", + "integrity": "sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==", + "license": "MIT", "peerDependencies": { "react": ">=16.8.0" } }, "node_modules/@emotion/utils": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.1.tgz", - "integrity": "sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==" + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.4.2.tgz", + "integrity": "sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==", + "license": "MIT" }, "node_modules/@emotion/weak-memoize": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz", - "integrity": "sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==" + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz", + "integrity": "sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==", + "license": "MIT" }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", - "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.1.tgz", + "integrity": "sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==", "cpu": [ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "aix" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", - "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.1.tgz", + "integrity": "sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", - "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.1.tgz", + "integrity": "sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", - "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.1.tgz", + "integrity": "sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", - "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.1.tgz", + "integrity": "sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", - "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.1.tgz", + "integrity": "sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", - "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.1.tgz", + "integrity": "sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", - "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.1.tgz", + "integrity": "sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", - "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.1.tgz", + "integrity": "sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", - "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.1.tgz", + "integrity": "sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", - "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.1.tgz", + "integrity": "sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", - "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.1.tgz", + "integrity": "sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg==", "cpu": [ "loong64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", - "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.1.tgz", + "integrity": "sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg==", "cpu": [ "mips64el" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", - "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.1.tgz", + "integrity": "sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg==", "cpu": [ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", - "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.1.tgz", + "integrity": "sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ==", "cpu": [ "riscv64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", - "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.1.tgz", + "integrity": "sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ==", "cpu": [ "s390x" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", - "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.1.tgz", + "integrity": "sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.1.tgz", + "integrity": "sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", - "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.1.tgz", + "integrity": "sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "netbsd" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.1.tgz", + "integrity": "sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", - "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.1.tgz", + "integrity": "sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "openbsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", - "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.1.tgz", + "integrity": "sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "sunos" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", - "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.1.tgz", + "integrity": "sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", - "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.1.tgz", + "integrity": "sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", - "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.1.tgz", + "integrity": "sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.5.1.tgz", + "integrity": "sha512-soEIOALTfTK6EjmKMMoLugwaP0rzkad90iIWd1hMO9ARkSAyjfMfkRRhLvD5qH7vvM0Cg72pieUfR6yh6XxC4w==", "dev": true, + "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.3" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, + "funding": { + "url": "https://opencollective.com/eslint" + }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "node_modules/@eslint-community/regexpp": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, + "node_modules/@eslint/config-array": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.2.tgz", + "integrity": "sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.6", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.1.0.tgz", + "integrity": "sha512-kLrdPDJE1ckPo94kmPPf9Hfd0DU0Jw6oKYrhe+pwSC0iTUInmTa+w6fw8sGgcfkFJGNdWOUeOaDM4quW4a7OkA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.12.0.tgz", + "integrity": "sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.0.tgz", + "integrity": "sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ==", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", + "espree": "^10.0.1", + "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", @@ -712,7 +842,7 @@ "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -723,16 +853,31 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@eslint/eslintrc/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -741,87 +886,84 @@ } }, "node_modules/@eslint/js": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", - "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "version": "9.22.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.22.0.tgz", + "integrity": "sha512-vLFajx9o8d1/oL2ZkpMYbkLv8nDB6yaIwFNt7nI4+I80U/z03SxmfOMsLbvWr3p7C+Wnoh//aOu2pQW8cS0HCQ==", "dev": true, + "license": "MIT", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@floating-ui/core": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.1.tgz", - "integrity": "sha512-42UH54oPZHPdRHdw6BgoBD6cg/eVTmVrFcgeRDM3jbO7uxSoipVcmcIGFcA5jmOHO5apcyvBhkSKES3fQJnu7A==", - "dependencies": { - "@floating-ui/utils": "^0.2.0" - } - }, - "node_modules/@floating-ui/dom": { - "version": "1.6.5", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.5.tgz", - "integrity": "sha512-Nsdud2X65Dz+1RHjAIP0t8z5e2ff/IRbei6BqFrl1urT8sDVzM1HMQ+R0XcU5ceRfyO3I6ayeqIfh+6Wb8LGTw==", - "dependencies": { - "@floating-ui/core": "^1.0.0", - "@floating-ui/utils": "^0.2.0" + "node_modules/@eslint/object-schema": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", + "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@floating-ui/react-dom": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.9.tgz", - "integrity": "sha512-q0umO0+LQK4+p6aGyvzASqKbKOJcAHJ7ycE9CuUvfx3s9zTHWmGJTPOIlM/hmSBfUfg/XfY5YhLBLR/LHwShQQ==", + "node_modules/@eslint/plugin-kit": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.7.tgz", + "integrity": "sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==", + "dev": true, + "license": "Apache-2.0", "dependencies": { - "@floating-ui/dom": "^1.0.0" + "@eslint/core": "^0.12.0", + "levn": "^0.4.1" }, - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@floating-ui/utils": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.2.tgz", - "integrity": "sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw==" - }, "node_modules/@fontsource/roboto": { - "version": "5.0.13", - "resolved": "https://registry.npmjs.org/@fontsource/roboto/-/roboto-5.0.13.tgz", - "integrity": "sha512-j61DHjsdUCKMXSdNLTOxcG701FWnF0jcqNNQi2iPCDxU8seN/sMxeh62dC++UiagCWq9ghTypX+Pcy7kX+QOeQ==" + "version": "5.2.5", + "resolved": "https://registry.npmjs.org/@fontsource/roboto/-/roboto-5.2.5.tgz", + "integrity": "sha512-70r2UZ0raqLn5W+sPeKhqlf8wGvUXFWlofaDlcbt/S3d06+17gXKr3VNqDODB0I1ASme3dGT5OJj9NABt7OTZQ==", + "license": "OFL-1.1", + "funding": { + "url": "https://github.com/sponsors/ayuhito" + } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.14", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^2.0.2", - "debug": "^4.3.1", - "minimatch": "^3.0.5" - }, + "license": "Apache-2.0", "engines": { - "node": ">=10.10.0" + "node": ">=18.18.0" } }, - "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" } }, - "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, + "license": "Apache-2.0", "engines": { - "node": "*" + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, "node_modules/@humanwhocodes/module-importer": { @@ -829,6 +971,7 @@ "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=12.22" }, @@ -837,70 +980,97 @@ "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "dev": true - }, - "node_modules/@mui/base": { - "version": "5.0.0-beta.40", - "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.40.tgz", - "integrity": "sha512-I/lGHztkCzvwlXpjD2+SNmvNQvB4227xBXhISPjEaJUXGImOQ9f3D2Yj/T3KasSI/h0MLWy74X0J6clhPmsRbQ==", - "dependencies": { - "@babel/runtime": "^7.23.9", - "@floating-ui/react-dom": "^2.0.8", - "@mui/types": "^7.2.14", - "@mui/utils": "^5.15.14", - "@popperjs/core": "^2.11.8", - "clsx": "^2.1.0", - "prop-types": "^15.8.1" - }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.2.tgz", + "integrity": "sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==", + "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">=12.0.0" + "node": ">=18.18" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0", - "react": "^17.0.0 || ^18.0.0", - "react-dom": "^17.0.0 || ^18.0.0" + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, "node_modules/@mui/core-downloads-tracker": { - "version": "5.15.17", - "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.15.17.tgz", - "integrity": "sha512-DVAejDQkjNnIac7MfP8sLzuo7fyrBPxNdXe+6bYqOqg1z2OPTlfFAejSNzWe7UenRMuFu9/AyFXj/X2vN2w6dA==", + "version": "6.4.7", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-6.4.7.tgz", + "integrity": "sha512-XjJrKFNt9zAKvcnoIIBquXyFyhfrHYuttqMsoDS7lM7VwufYG4fAPw4kINjBFg++fqXM2BNAuWR9J7XVIuKIKg==", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/mui-org" } }, "node_modules/@mui/icons-material": { - "version": "5.15.17", - "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.15.17.tgz", - "integrity": "sha512-xVzl2De7IY36s/keHX45YMiCpsIx3mNv2xwDgtBkRSnZQtVk+Gqufwj1ktUxEyjzEhBl0+PiNJqYC31C+n1n6A==", + "version": "6.4.7", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-6.4.7.tgz", + "integrity": "sha512-Rk8cs9ufQoLBw582Rdqq7fnSXXZTqhYRbpe1Y5SAz9lJKZP3CIdrj0PfG8HJLGw1hrsHFN/rkkm70IDzhJsG1g==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.23.9" + "@babel/runtime": "^7.26.0" }, "engines": { - "node": ">=12.0.0" + "node": ">=14.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/mui-org" }, "peerDependencies": { - "@mui/material": "^5.0.0", - "@types/react": "^17.0.0 || ^18.0.0", - "react": "^17.0.0 || ^18.0.0" + "@mui/material": "^6.4.7", + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" }, "peerDependenciesMeta": { "@types/react": { @@ -909,25 +1079,26 @@ } }, "node_modules/@mui/material": { - "version": "5.15.17", - "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.15.17.tgz", - "integrity": "sha512-ru/MLvTkCh0AZXmqwIpqGTOoVBS/sX48zArXq/DvktxXZx4fskiRA2PEc7Rk5ZlFiZhKh4moL4an+l8zZwq49Q==", - "dependencies": { - "@babel/runtime": "^7.23.9", - "@mui/base": "5.0.0-beta.40", - "@mui/core-downloads-tracker": "^5.15.17", - "@mui/system": "^5.15.15", - "@mui/types": "^7.2.14", - "@mui/utils": "^5.15.14", - "@types/react-transition-group": "^4.4.10", - "clsx": "^2.1.0", + "version": "6.4.7", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-6.4.7.tgz", + "integrity": "sha512-K65StXUeGAtFJ4ikvHKtmDCO5Ab7g0FZUu2J5VpoKD+O6Y3CjLYzRi+TMlI3kaL4CL158+FccMoOd/eaddmeRQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.26.0", + "@mui/core-downloads-tracker": "^6.4.7", + "@mui/system": "^6.4.7", + "@mui/types": "^7.2.21", + "@mui/utils": "^6.4.6", + "@popperjs/core": "^2.11.8", + "@types/react-transition-group": "^4.4.12", + "clsx": "^2.1.1", "csstype": "^3.1.3", "prop-types": "^15.8.1", - "react-is": "^18.2.0", + "react-is": "^19.0.0", "react-transition-group": "^4.4.5" }, "engines": { - "node": ">=12.0.0" + "node": ">=14.0.0" }, "funding": { "type": "opencollective", @@ -936,9 +1107,10 @@ "peerDependencies": { "@emotion/react": "^11.5.0", "@emotion/styled": "^11.3.0", - "@types/react": "^17.0.0 || ^18.0.0", - "react": "^17.0.0 || ^18.0.0", - "react-dom": "^17.0.0 || ^18.0.0" + "@mui/material-pigment-css": "^6.4.7", + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" }, "peerDependenciesMeta": { "@emotion/react": { @@ -947,30 +1119,34 @@ "@emotion/styled": { "optional": true }, + "@mui/material-pigment-css": { + "optional": true + }, "@types/react": { "optional": true } } }, "node_modules/@mui/private-theming": { - "version": "5.15.14", - "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.15.14.tgz", - "integrity": "sha512-UH0EiZckOWcxiXLX3Jbb0K7rC8mxTr9L9l6QhOZxYc4r8FHUkefltV9VDGLrzCaWh30SQiJvAEd7djX3XXY6Xw==", + "version": "6.4.6", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-6.4.6.tgz", + "integrity": "sha512-T5FxdPzCELuOrhpA2g4Pi6241HAxRwZudzAuL9vBvniuB5YU82HCmrARw32AuCiyTfWzbrYGGpZ4zyeqqp9RvQ==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.23.9", - "@mui/utils": "^5.15.14", + "@babel/runtime": "^7.26.0", + "@mui/utils": "^6.4.6", "prop-types": "^15.8.1" }, "engines": { - "node": ">=12.0.0" + "node": ">=14.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/mui-org" }, "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0", - "react": "^17.0.0 || ^18.0.0" + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" }, "peerDependenciesMeta": { "@types/react": { @@ -979,17 +1155,20 @@ } }, "node_modules/@mui/styled-engine": { - "version": "5.15.14", - "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.15.14.tgz", - "integrity": "sha512-RILkuVD8gY6PvjZjqnWhz8fu68dVkqhM5+jYWfB5yhlSQKg+2rHkmEwm75XIeAqI3qwOndK6zELK5H6Zxn4NHw==", - "dependencies": { - "@babel/runtime": "^7.23.9", - "@emotion/cache": "^11.11.0", + "version": "6.4.6", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-6.4.6.tgz", + "integrity": "sha512-vSWYc9ZLX46be5gP+FCzWVn5rvDr4cXC5JBZwSIkYk9xbC7GeV+0kCvB8Q6XLFQJy+a62bbqtmdwS4Ghi9NBlQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.26.0", + "@emotion/cache": "^11.13.5", + "@emotion/serialize": "^1.3.3", + "@emotion/sheet": "^1.4.0", "csstype": "^3.1.3", "prop-types": "^15.8.1" }, "engines": { - "node": ">=12.0.0" + "node": ">=14.0.0" }, "funding": { "type": "opencollective", @@ -998,7 +1177,7 @@ "peerDependencies": { "@emotion/react": "^11.4.1", "@emotion/styled": "^11.3.0", - "react": "^17.0.0 || ^18.0.0" + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" }, "peerDependenciesMeta": { "@emotion/react": { @@ -1010,21 +1189,22 @@ } }, "node_modules/@mui/system": { - "version": "5.15.15", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.15.15.tgz", - "integrity": "sha512-aulox6N1dnu5PABsfxVGOZffDVmlxPOVgj56HrUnJE8MCSh8lOvvkd47cebIVQQYAjpwieXQXiDPj5pwM40jTQ==", - "dependencies": { - "@babel/runtime": "^7.23.9", - "@mui/private-theming": "^5.15.14", - "@mui/styled-engine": "^5.15.14", - "@mui/types": "^7.2.14", - "@mui/utils": "^5.15.14", - "clsx": "^2.1.0", + "version": "6.4.7", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-6.4.7.tgz", + "integrity": "sha512-7wwc4++Ak6tGIooEVA9AY7FhH2p9fvBMORT4vNLMAysH3Yus/9B9RYMbrn3ANgsOyvT3Z7nE+SP8/+3FimQmcg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.26.0", + "@mui/private-theming": "^6.4.6", + "@mui/styled-engine": "^6.4.6", + "@mui/types": "^7.2.21", + "@mui/utils": "^6.4.6", + "clsx": "^2.1.1", "csstype": "^3.1.3", "prop-types": "^15.8.1" }, "engines": { - "node": ">=12.0.0" + "node": ">=14.0.0" }, "funding": { "type": "opencollective", @@ -1033,8 +1213,8 @@ "peerDependencies": { "@emotion/react": "^11.5.0", "@emotion/styled": "^11.3.0", - "@types/react": "^17.0.0 || ^18.0.0", - "react": "^17.0.0 || ^18.0.0" + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" }, "peerDependenciesMeta": { "@emotion/react": { @@ -1049,11 +1229,12 @@ } }, "node_modules/@mui/types": { - "version": "7.2.14", - "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.14.tgz", - "integrity": "sha512-MZsBZ4q4HfzBsywtXgM1Ksj6HDThtiwmOKUXH1pKYISI9gAVXCNHNpo7TlGoGrBaYWZTdNoirIN7JsQcQUjmQQ==", + "version": "7.2.21", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.21.tgz", + "integrity": "sha512-6HstngiUxNqLU+/DPqlUJDIPbzUBxIVHb1MmXP0eTWDIROiCR2viugXpEif0PPe2mLqqakPzzRClWAnK+8UJww==", + "license": "MIT", "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0" + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0" }, "peerDependenciesMeta": { "@types/react": { @@ -1062,25 +1243,28 @@ } }, "node_modules/@mui/utils": { - "version": "5.15.14", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.15.14.tgz", - "integrity": "sha512-0lF/7Hh/ezDv5X7Pry6enMsbYyGKjADzvHyo3Qrc/SSlTsQ1VkbDMbH0m2t3OR5iIVLwMoxwM7yGd+6FCMtTFA==", - "dependencies": { - "@babel/runtime": "^7.23.9", - "@types/prop-types": "^15.7.11", + "version": "6.4.6", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-6.4.6.tgz", + "integrity": "sha512-43nZeE1pJF2anGafNydUcYFPtHwAqiBiauRtaMvurdrZI3YrUjHkAu43RBsxef7OFtJMXGiHFvq43kb7lig0sA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.26.0", + "@mui/types": "^7.2.21", + "@types/prop-types": "^15.7.14", + "clsx": "^2.1.1", "prop-types": "^15.8.1", - "react-is": "^18.2.0" + "react-is": "^19.0.0" }, "engines": { - "node": ">=12.0.0" + "node": ">=14.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/mui-org" }, "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0", - "react": "^17.0.0 || ^18.0.0" + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" }, "peerDependenciesMeta": { "@types/react": { @@ -1093,6 +1277,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -1106,6 +1291,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } @@ -1115,6 +1301,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -1127,228 +1314,288 @@ "version": "2.11.8", "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/popperjs" } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.17.2.tgz", - "integrity": "sha512-NM0jFxY8bB8QLkoKxIQeObCaDlJKewVlIEkuyYKm5An1tdVZ966w2+MPQ2l8LBZLjR+SgyV+nRkTIunzOYBMLQ==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.35.0.tgz", + "integrity": "sha512-uYQ2WfPaqz5QtVgMxfN6NpLD+no0MYHDBywl7itPYd3K5TjjSghNKmX8ic9S8NU8w81NVhJv/XojcHptRly7qQ==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.17.2.tgz", - "integrity": "sha512-yeX/Usk7daNIVwkq2uGoq2BYJKZY1JfyLTaHO/jaiSwi/lsf8fTFoQW/n6IdAsx5tx+iotu2zCJwz8MxI6D/Bw==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.35.0.tgz", + "integrity": "sha512-FtKddj9XZudurLhdJnBl9fl6BwCJ3ky8riCXjEw3/UIbjmIY58ppWwPEvU3fNu+W7FUsAsB1CdH+7EQE6CXAPA==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.17.2.tgz", - "integrity": "sha512-kcMLpE6uCwls023+kknm71ug7MZOrtXo+y5p/tsg6jltpDtgQY1Eq5sGfHcQfb+lfuKwhBmEURDga9N0ol4YPw==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.35.0.tgz", + "integrity": "sha512-Uk+GjOJR6CY844/q6r5DR/6lkPFOw0hjfOIzVx22THJXMxktXG6CbejseJFznU8vHcEBLpiXKY3/6xc+cBm65Q==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.17.2.tgz", - "integrity": "sha512-AtKwD0VEx0zWkL0ZjixEkp5tbNLzX+FCqGG1SvOu993HnSz4qDI6S4kGzubrEJAljpVkhRSlg5bzpV//E6ysTQ==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.35.0.tgz", + "integrity": "sha512-3IrHjfAS6Vkp+5bISNQnPogRAW5GAV1n+bNCrDwXmfMHbPl5EhTmWtfmwlJxFRUCBZ+tZ/OxDyU08aF6NI/N5Q==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ] }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.35.0.tgz", + "integrity": "sha512-sxjoD/6F9cDLSELuLNnY0fOrM9WA0KrM0vWm57XhrIMf5FGiN8D0l7fn+bpUeBSU7dCgPV2oX4zHAsAXyHFGcQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.35.0.tgz", + "integrity": "sha512-2mpHCeRuD1u/2kruUiHSsnjWtHjqVbzhBkNVQ1aVD63CcexKVcQGwJ2g5VphOd84GvxfSvnnlEyBtQCE5hxVVw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.17.2.tgz", - "integrity": "sha512-3reX2fUHqN7sffBNqmEyMQVj/CKhIHZd4y631duy0hZqI8Qoqf6lTtmAKvJFYa6bhU95B1D0WgzHkmTg33In0A==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.35.0.tgz", + "integrity": "sha512-mrA0v3QMy6ZSvEuLs0dMxcO2LnaCONs1Z73GUDBHWbY8tFFocM6yl7YyMu7rz4zS81NDSqhrUuolyZXGi8TEqg==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.17.2.tgz", - "integrity": "sha512-uSqpsp91mheRgw96xtyAGP9FW5ChctTFEoXP0r5FAzj/3ZRv3Uxjtc7taRQSaQM/q85KEKjKsZuiZM3GyUivRg==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.35.0.tgz", + "integrity": "sha512-DnYhhzcvTAKNexIql8pFajr0PiDGrIsBYPRvCKlA5ixSS3uwo/CWNZxB09jhIapEIg945KOzcYEAGGSmTSpk7A==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.17.2.tgz", - "integrity": "sha512-EMMPHkiCRtE8Wdk3Qhtciq6BndLtstqZIroHiiGzB3C5LDJmIZcSzVtLRbwuXuUft1Cnv+9fxuDtDxz3k3EW2A==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.35.0.tgz", + "integrity": "sha512-uagpnH2M2g2b5iLsCTZ35CL1FgyuzzJQ8L9VtlJ+FckBXroTwNOaD0z0/UF+k5K3aNQjbm8LIVpxykUOQt1m/A==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.17.2.tgz", - "integrity": "sha512-NMPylUUZ1i0z/xJUIx6VUhISZDRT+uTWpBcjdv0/zkp7b/bQDF+NfnfdzuTiB1G6HTodgoFa93hp0O1xl+/UbA==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.35.0.tgz", + "integrity": "sha512-XQxVOCd6VJeHQA/7YcqyV0/88N6ysSVzRjJ9I9UA/xXpEsjvAgDTgH3wQYz5bmr7SPtVK2TsP2fQ2N9L4ukoUg==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.35.0.tgz", + "integrity": "sha512-5pMT5PzfgwcXEwOaSrqVsz/LvjDZt+vQ8RT/70yhPU06PTuq8WaHhfT1LW+cdD7mW6i/J5/XIkX/1tCAkh1W6g==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.17.2.tgz", - "integrity": "sha512-T19My13y8uYXPw/L/k0JYaX1fJKFT/PWdXiHr8mTbXWxjVF1t+8Xl31DgBBvEKclw+1b00Chg0hxE2O7bTG7GQ==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.35.0.tgz", + "integrity": "sha512-c+zkcvbhbXF98f4CtEIP1EBA/lCic5xB0lToneZYvMeKu5Kamq3O8gqrxiYYLzlZH6E3Aq+TSW86E4ay8iD8EA==", "cpu": [ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.17.2.tgz", - "integrity": "sha512-BOaNfthf3X3fOWAB+IJ9kxTgPmMqPPH5f5k2DcCsRrBIbWnaJCgX2ll77dV1TdSy9SaXTR5iDXRL8n7AnoP5cg==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.35.0.tgz", + "integrity": "sha512-s91fuAHdOwH/Tad2tzTtPX7UZyytHIRR6V4+2IGlV0Cej5rkG0R61SX4l4y9sh0JBibMiploZx3oHKPnQBKe4g==", "cpu": [ "riscv64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.17.2.tgz", - "integrity": "sha512-W0UP/x7bnn3xN2eYMql2T/+wpASLE5SjObXILTMPUBDB/Fg/FxC+gX4nvCfPBCbNhz51C+HcqQp2qQ4u25ok6g==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.35.0.tgz", + "integrity": "sha512-hQRkPQPLYJZYGP+Hj4fR9dDBMIM7zrzJDWFEMPdTnTy95Ljnv0/4w/ixFw3pTBMEuuEuoqtBINYND4M7ujcuQw==", "cpu": [ "s390x" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.17.2.tgz", - "integrity": "sha512-Hy7pLwByUOuyaFC6mAr7m+oMC+V7qyifzs/nW2OJfC8H4hbCzOX07Ov0VFk/zP3kBsELWNFi7rJtgbKYsav9QQ==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.35.0.tgz", + "integrity": "sha512-Pim1T8rXOri+0HmV4CdKSGrqcBWX0d1HoPnQ0uw0bdp1aP5SdQVNBy8LjYncvnLgu3fnnCt17xjWGd4cqh8/hA==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.17.2.tgz", - "integrity": "sha512-h1+yTWeYbRdAyJ/jMiVw0l6fOOm/0D1vNLui9iPuqgRGnXA0u21gAqOyB5iHjlM9MMfNOm9RHCQ7zLIzT0x11Q==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.35.0.tgz", + "integrity": "sha512-QysqXzYiDvQWfUiTm8XmJNO2zm9yC9P/2Gkrwg2dH9cxotQzunBHYr6jk4SujCTqnfGxduOmQcI7c2ryuW8XVg==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.17.2.tgz", - "integrity": "sha512-tmdtXMfKAjy5+IQsVtDiCfqbynAQE/TQRpWdVataHmhMb9DCoJxp9vLcCBjEQWMiUYxO1QprH/HbY9ragCEFLA==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.35.0.tgz", + "integrity": "sha512-OUOlGqPkVJCdJETKOCEf1mw848ZyJ5w50/rZ/3IBQVdLfR5jk/6Sr5m3iO2tdPgwo0x7VcncYuOvMhBWZq8ayg==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.17.2.tgz", - "integrity": "sha512-7II/QCSTAHuE5vdZaQEwJq2ZACkBpQDOmQsE6D6XUbnBHW8IAhm4eTufL6msLJorzrHDFv3CF8oCA/hSIRuZeQ==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.35.0.tgz", + "integrity": "sha512-2/lsgejMrtwQe44glq7AFFHLfJBPafpsTa6JvP2NGef/ifOa4KBoglVf7AKN7EV9o32evBPRqfg96fEHzWo5kw==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.17.2.tgz", - "integrity": "sha512-TGGO7v7qOq4CYmSBVEYpI1Y5xDuCEnbVC5Vth8mOsW0gDSzxNrVERPc790IGHsrT2dQSimgMr9Ub3Y1Jci5/8w==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.35.0.tgz", + "integrity": "sha512-PIQeY5XDkrOysbQblSW7v3l1MDZzkTEzAfTPkj5VAu3FW8fS4ynyLg2sINp0fp3SjZ8xkRYpLqoKcYqAkhU1dw==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/@swc/core": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.5.5.tgz", - "integrity": "sha512-M8O22EEgdSONLd+7KRrXj8pn+RdAZZ7ISnPjE9KCQQlI0kkFNEquWR+uFdlFxQfwlyCe/Zb6uGXGDvtcov4IMg==", + "version": "1.11.9", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.11.9.tgz", + "integrity": "sha512-4UQ66FwTkFDr+UzYzRNKQyHMScOrc4zJbTJHyK6dP1yVMrxi5sl0FTzNKiqoYvRZ7j8TAYgtYvvuPSW/XXvp5g==", "dev": true, "hasInstallScript": true, + "license": "Apache-2.0", "dependencies": { - "@swc/counter": "^0.1.2", - "@swc/types": "^0.1.5" + "@swc/counter": "^0.1.3", + "@swc/types": "^0.1.19" }, "engines": { "node": ">=10" @@ -1358,19 +1605,19 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-darwin-arm64": "1.5.5", - "@swc/core-darwin-x64": "1.5.5", - "@swc/core-linux-arm-gnueabihf": "1.5.5", - "@swc/core-linux-arm64-gnu": "1.5.5", - "@swc/core-linux-arm64-musl": "1.5.5", - "@swc/core-linux-x64-gnu": "1.5.5", - "@swc/core-linux-x64-musl": "1.5.5", - "@swc/core-win32-arm64-msvc": "1.5.5", - "@swc/core-win32-ia32-msvc": "1.5.5", - "@swc/core-win32-x64-msvc": "1.5.5" + "@swc/core-darwin-arm64": "1.11.9", + "@swc/core-darwin-x64": "1.11.9", + "@swc/core-linux-arm-gnueabihf": "1.11.9", + "@swc/core-linux-arm64-gnu": "1.11.9", + "@swc/core-linux-arm64-musl": "1.11.9", + "@swc/core-linux-x64-gnu": "1.11.9", + "@swc/core-linux-x64-musl": "1.11.9", + "@swc/core-win32-arm64-msvc": "1.11.9", + "@swc/core-win32-ia32-msvc": "1.11.9", + "@swc/core-win32-x64-msvc": "1.11.9" }, "peerDependencies": { - "@swc/helpers": "^0.5.0" + "@swc/helpers": "*" }, "peerDependenciesMeta": { "@swc/helpers": { @@ -1379,13 +1626,14 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.5.5.tgz", - "integrity": "sha512-Ol5ZwZYdTOZsv2NwjcT/qVVALKzVFeh+IJ4GNarr3P99+38Dkwi81OqCI1o/WaDXQYKAQC/V+CzMbkEuJJfq9Q==", + "version": "1.11.9", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.11.9.tgz", + "integrity": "sha512-moqbPCWG6SHiDMENTDYsEQJ0bFustbLtrdbDbdjnijSyhCyIcm9zKowmovE6MF8JBdOwmLxbuN1Yarq6CrPNlw==", "cpu": [ "arm64" ], "dev": true, + "license": "Apache-2.0 AND MIT", "optional": true, "os": [ "darwin" @@ -1395,13 +1643,14 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.5.5.tgz", - "integrity": "sha512-XHWpKBIPKYLgh5/lV2PYjO84lkzf5JR51kjiloyz2Pa9HIV8tHoAP8bYdJwm4nUp2I7KcEh3pPH0AVu5LpxMKw==", + "version": "1.11.9", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.11.9.tgz", + "integrity": "sha512-/lgMo5l9q6y3jjLM3v30y6SBvuuyLsM/K94hv3hPvDf91N+YlZLw4D7KY0Qknfhj6WytoAcjOIDU6xwBRPyUWg==", "cpu": [ "x64" ], "dev": true, + "license": "Apache-2.0 AND MIT", "optional": true, "os": [ "darwin" @@ -1411,13 +1660,14 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.5.5.tgz", - "integrity": "sha512-vtoWNCWAe+CNSqtqIwFnIH48qgPPlUZKoQ4EVFeMM+7/kDi6SeNxoh5TierJs5bKAWxD49VkPvRoWFCk6V62mA==", + "version": "1.11.9", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.11.9.tgz", + "integrity": "sha512-7bL6z/63If11IpBElQRozIGRadiy6rt3DoUyfGuFIFQKxtnZxzHuLxm1/wrCAGN9iAZxrpHxHP0VbPQvr6Mcjg==", "cpu": [ "arm" ], "dev": true, + "license": "Apache-2.0", "optional": true, "os": [ "linux" @@ -1427,13 +1677,14 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.5.5.tgz", - "integrity": "sha512-L4l7M78U6h/rCAxId+y5Vu+1KfDRF6dJZtitFcaT293guiUQFwJv8gLxI4Jh5wFtZ0fYd0QaCuvh2Ip79CzGMg==", + "version": "1.11.9", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.11.9.tgz", + "integrity": "sha512-9ArpxjrNbyFTr7gG+toiGbbK2mfS+X97GIruBKPsD8CJH/yJlMknBsX3lfy9h/L119zYVnFBmZDnwsv5yW8/cw==", "cpu": [ "arm64" ], "dev": true, + "license": "Apache-2.0 AND MIT", "optional": true, "os": [ "linux" @@ -1443,13 +1694,14 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.5.5.tgz", - "integrity": "sha512-DkzJc13ukXa7oJpyn24BjIgsiOybYrc+IxjsQyfNlDrrs1QXP4elStcpkD02SsIuSyHjZV8Hw2HFBMQB3OHPrA==", + "version": "1.11.9", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.11.9.tgz", + "integrity": "sha512-UOnunJWu7T7oNkBr4DLMwXXbldjiwi+JxmqBKrD2+BNiHGu6P5VpqDHiTGuWuLrda0TcTmeNE6gzlIVOVBo/vw==", "cpu": [ "arm64" ], "dev": true, + "license": "Apache-2.0 AND MIT", "optional": true, "os": [ "linux" @@ -1459,13 +1711,14 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.5.5.tgz", - "integrity": "sha512-kj4ZwWJGeBEUzHrRQP2VudN+kkkYH7OI1dPVDc6kWQx5X4329JeKOas4qY0l7gDVjBbRwN9IbbPI6TIn2KfAug==", + "version": "1.11.9", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.11.9.tgz", + "integrity": "sha512-HAqmCkNoNhRusBqSokyylXKsLJ/dr3dnMgBERdUrCIh47L8CKR2qEFUP6FI05sHVB85403ctWnfzBYblcarpqg==", "cpu": [ "x64" ], "dev": true, + "license": "Apache-2.0 AND MIT", "optional": true, "os": [ "linux" @@ -1475,13 +1728,14 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.5.5.tgz", - "integrity": "sha512-6pTorCs4mYhPhYtC4jNOnhGgjNd3DZcRoZ9P0tzXXP69aCbYjvlgNH/NRvAROp9AaVFeZ7a7PmCWb6+Rbe7NKg==", + "version": "1.11.9", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.11.9.tgz", + "integrity": "sha512-THwUT2g2qSWUxhi3NGRCEdmh/q7WKl3d5jcN9mz/4jum76Tb46LB9p3oOVPBIcfnFQ9OaddExjCwLoUl0ju2pA==", "cpu": [ "x64" ], "dev": true, + "license": "Apache-2.0 AND MIT", "optional": true, "os": [ "linux" @@ -1491,13 +1745,14 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.5.5.tgz", - "integrity": "sha512-o0/9pstmEjwZyrY/bA+mymF0zH7E+GT/XCVqdKeWW9Wn3gTTyWa5MZnrFgI2THQ+AXwdglMB/Zo76ARQPaz/+A==", + "version": "1.11.9", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.11.9.tgz", + "integrity": "sha512-r4SGD9lR0MM9HSIsQ72BEL3Za3XsuVj+govuXQTlK0mty5gih4L+Qgfnb9PmhjFakK3F63gZyyEr2y8Fj0mN6Q==", "cpu": [ "arm64" ], "dev": true, + "license": "Apache-2.0 AND MIT", "optional": true, "os": [ "win32" @@ -1507,13 +1762,14 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.5.5.tgz", - "integrity": "sha512-B+nypUwsmCuaH6RtKWgiPCb+ENjxstJPPJeMJvBqlJqyCaIkZzN4M07Ozi3xVv1VG21SRkd6G3xIqRoalrNc0Q==", + "version": "1.11.9", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.11.9.tgz", + "integrity": "sha512-jrEh6MDSnhwfpjRlSWd2Bk8pS5EjreQD1YbkNcnXviQf3+H0wSPmeVSktZyoIdkxAuc2suFx8mj7Yja2UXAgUg==", "cpu": [ "ia32" ], "dev": true, + "license": "Apache-2.0 AND MIT", "optional": true, "os": [ "win32" @@ -1523,13 +1779,14 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.5.5.tgz", - "integrity": "sha512-ry83ki9ZX0Q+GWGnqc2J618Z+FvKE8Ajn42F8EYi8Wj0q6Jz3mj+pJzgzakk2INm2ldEZ+FaRPipn4ozsZDcBg==", + "version": "1.11.9", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.11.9.tgz", + "integrity": "sha512-oAwuhzr+1Bmb4As2wa3k57/WPJeyVEYRQelwEMYjPgi/h6TH+Y69jQAgKOd+ec1Yl8L5nkWTZMVA/dKDac1bAQ==", "cpu": [ "x64" ], "dev": true, + "license": "Apache-2.0 AND MIT", "optional": true, "os": [ "win32" @@ -1542,145 +1799,140 @@ "version": "0.1.3", "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/@swc/types": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.6.tgz", - "integrity": "sha512-/JLo/l2JsT/LRd80C3HfbmVpxOAJ11FO2RCEslFrgzLltoP9j8XIbsyDcfCt2WWyX+CM96rBoNM+IToAkFOugg==", + "version": "0.1.19", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.19.tgz", + "integrity": "sha512-WkAZaAfj44kh/UFdAQcrMP1I0nwRqpt27u+08LMBYMqmQfwwMofYoMh/48NGkMMRfC4ynpfwRbJuu8ErfNloeA==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@swc/counter": "^0.1.3" } }, "node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", - "dev": true + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true, + "license": "MIT" }, "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/parse-json": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", - "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", + "license": "MIT" }, "node_modules/@types/prop-types": { - "version": "15.7.12", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", - "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==" + "version": "15.7.14", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz", + "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==", + "license": "MIT" }, "node_modules/@types/react": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.1.tgz", - "integrity": "sha512-V0kuGBX3+prX+DQ/7r2qsv1NsdfnCLnTgnRJ1pYnxykBhGMz+qj+box5lq7XsO5mtZsBqpjwwTu/7wszPfMBcw==", + "version": "19.0.10", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.10.tgz", + "integrity": "sha512-JuRQ9KXLEjaUNjTWpzuR231Z2WpIwczOkBEIvbHNCzQefFIT0L8IqE6NV6ULLyC1SI/i234JnDoMkfg+RjQj2g==", + "license": "MIT", "dependencies": { - "@types/prop-types": "*", "csstype": "^3.0.2" } }, "node_modules/@types/react-dom": { - "version": "18.3.0", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", - "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", + "version": "19.0.4", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.0.4.tgz", + "integrity": "sha512-4fSQ8vWFkg+TGhePfUzVmat3eC14TXYSsiiDSLI0dVLsrm9gZFABjPy/Qu6TKgl1tq1Bu1yDsuQgY3A3DOjCcg==", "dev": true, - "dependencies": { - "@types/react": "*" + "license": "MIT", + "peerDependencies": { + "@types/react": "^19.0.0" } }, "node_modules/@types/react-transition-group": { - "version": "4.4.10", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.10.tgz", - "integrity": "sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==", - "dependencies": { + "version": "4.4.12", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.12.tgz", + "integrity": "sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==", + "license": "MIT", + "peerDependencies": { "@types/react": "*" } }, - "node_modules/@types/semver": { - "version": "7.5.8", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", - "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", - "dev": true - }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.8.0.tgz", - "integrity": "sha512-gFTT+ezJmkwutUPmB0skOj3GZJtlEGnlssems4AjkVweUPGj7jRwwqg0Hhg7++kPGJqKtTYx+R05Ftww372aIg==", + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.26.1.tgz", + "integrity": "sha512-2X3mwqsj9Bd3Ciz508ZUtoQQYpOhU/kWoUqIf49H8Z0+Vbh6UF/y0OEYp0Q0axOGzaBGs7QxRwq0knSQ8khQNA==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "7.8.0", - "@typescript-eslint/type-utils": "7.8.0", - "@typescript-eslint/utils": "7.8.0", - "@typescript-eslint/visitor-keys": "7.8.0", - "debug": "^4.3.4", + "@typescript-eslint/scope-manager": "8.26.1", + "@typescript-eslint/type-utils": "8.26.1", + "@typescript-eslint/utils": "8.26.1", + "@typescript-eslint/visitor-keys": "8.26.1", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", - "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" + "ts-api-utils": "^2.0.1" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^7.0.0", - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" } }, "node_modules/@typescript-eslint/parser": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.8.0.tgz", - "integrity": "sha512-KgKQly1pv0l4ltcftP59uQZCi4HUYswCLbTqVZEJu7uLX8CTLyswqMLqLN+2QFz4jCptqWVV4SB7vdxcH2+0kQ==", + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.26.1.tgz", + "integrity": "sha512-w6HZUV4NWxqd8BdeFf81t07d7/YV9s7TCWrQQbG5uhuvGUAW+fq1usZ1Hmz9UPNLniFnD8GLSsDpjP0hm1S4lQ==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "7.8.0", - "@typescript-eslint/types": "7.8.0", - "@typescript-eslint/typescript-estree": "7.8.0", - "@typescript-eslint/visitor-keys": "7.8.0", + "@typescript-eslint/scope-manager": "8.26.1", + "@typescript-eslint/types": "8.26.1", + "@typescript-eslint/typescript-estree": "8.26.1", + "@typescript-eslint/visitor-keys": "8.26.1", "debug": "^4.3.4" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.8.0.tgz", - "integrity": "sha512-viEmZ1LmwsGcnr85gIq+FCYI7nO90DVbE37/ll51hjv9aG+YZMb4WDE2fyWpUR4O/UrhGRpYXK/XajcGTk2B8g==", + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.26.1.tgz", + "integrity": "sha512-6EIvbE5cNER8sqBu6V7+KeMZIC1664d2Yjt+B9EWUXrsyWpxx4lEZrmvxgSKRC6gX+efDL/UY9OpPZ267io3mg==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "7.8.0", - "@typescript-eslint/visitor-keys": "7.8.0" + "@typescript-eslint/types": "8.26.1", + "@typescript-eslint/visitor-keys": "8.26.1" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -1688,39 +1940,37 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.8.0.tgz", - "integrity": "sha512-H70R3AefQDQpz9mGv13Uhi121FNMh+WEaRqcXTX09YEDky21km4dV1ZXJIp8QjXc4ZaVkXVdohvWDzbnbHDS+A==", + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.26.1.tgz", + "integrity": "sha512-Kcj/TagJLwoY/5w9JGEFV0dclQdyqw9+VMndxOJKtoFSjfZhLXhYjzsQEeyza03rwHx2vFEGvrJWJBXKleRvZg==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "7.8.0", - "@typescript-eslint/utils": "7.8.0", + "@typescript-eslint/typescript-estree": "8.26.1", + "@typescript-eslint/utils": "8.26.1", "debug": "^4.3.4", - "ts-api-utils": "^1.3.0" + "ts-api-utils": "^2.0.1" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" } }, "node_modules/@typescript-eslint/types": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.8.0.tgz", - "integrity": "sha512-wf0peJ+ZGlcH+2ZS23aJbOv+ztjeeP8uQ9GgwMJGVLx/Nj9CJt17GWgWWoSmoRVKAX2X+7fzEnAjxdvK2gqCLw==", + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.26.1.tgz", + "integrity": "sha512-n4THUQW27VmQMx+3P+B0Yptl7ydfceUj4ON/AQILAASwgYdZ/2dhfymRMh5egRUrvK5lSmaOm77Ry+lmXPOgBQ==", "dev": true, + "license": "MIT", "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -1728,98 +1978,106 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.8.0.tgz", - "integrity": "sha512-5pfUCOwK5yjPaJQNy44prjCwtr981dO8Qo9J9PwYXZ0MosgAbfEMB008dJ5sNo3+/BN6ytBPuSvXUg9SAqB0dg==", + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.26.1.tgz", + "integrity": "sha512-yUwPpUHDgdrv1QJ7YQal3cMVBGWfnuCdKbXw1yyjArax3353rEJP1ZA+4F8nOlQ3RfS2hUN/wze3nlY+ZOhvoA==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "7.8.0", - "@typescript-eslint/visitor-keys": "7.8.0", + "@typescript-eslint/types": "8.26.1", + "@typescript-eslint/visitor-keys": "8.26.1", "debug": "^4.3.4", - "globby": "^11.1.0", + "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" + "ts-api-utils": "^2.0.1" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" } }, "node_modules/@typescript-eslint/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-L0yFqOCflVqXxiZyXrDr80lnahQfSOfc9ELAAZ75sqicqp2i36kEZZGuUymHNFoYOqxRT05up760b4iGsl02nQ==", + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.26.1.tgz", + "integrity": "sha512-V4Urxa/XtSUroUrnI7q6yUTD3hDtfJ2jzVfeT3VK0ciizfK2q/zGC0iDh1lFMUZR8cImRrep6/q0xd/1ZGPQpg==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.15", - "@types/semver": "^7.5.8", - "@typescript-eslint/scope-manager": "7.8.0", - "@typescript-eslint/types": "7.8.0", - "@typescript-eslint/typescript-estree": "7.8.0", - "semver": "^7.6.0" + "@typescript-eslint/scope-manager": "8.26.1", + "@typescript-eslint/types": "8.26.1", + "@typescript-eslint/typescript-estree": "8.26.1" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.56.0" + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.8.0.tgz", - "integrity": "sha512-q4/gibTNBQNA0lGyYQCmWRS5D15n8rXh4QjK3KV+MBPlTYHpfBUT3D3PaPR/HeNiI9W6R7FvlkcGhNyAoP+caA==", + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.26.1.tgz", + "integrity": "sha512-AjOC3zfnxd6S4Eiy3jwktJPclqhFHNyd8L6Gycf9WUPoKZpgM5PjkxY1X7uSy61xVpiJDhhk7XT2NVsN3ALTWg==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "7.8.0", - "eslint-visitor-keys": "^3.4.3" + "@typescript-eslint/types": "8.26.1", + "eslint-visitor-keys": "^4.2.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } }, "node_modules/@vitejs/plugin-react-swc": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.6.0.tgz", - "integrity": "sha512-XFRbsGgpGxGzEV5i5+vRiro1bwcIaZDIdBRP16qwm+jP68ue/S8FJTBEgOeojtVDYrbSua3XFp71kC8VJE6v+g==", + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.8.0.tgz", + "integrity": "sha512-T4sHPvS+DIqDP51ifPqa9XIRAz/kIvIi8oXcnOZZgHmMotgmmdxe/DD5tMFlt5nuIRzT0/QuiwmKlH0503Aapw==", "dev": true, + "license": "MIT", "dependencies": { - "@swc/core": "^1.3.107" + "@swc/core": "^1.10.15" }, "peerDependencies": { - "vite": "^4 || ^5" + "vite": "^4 || ^5 || ^6" } }, "node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "version": "8.14.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", + "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", "dev": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -1832,6 +2090,7 @@ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, + "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } @@ -1841,6 +2100,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -1852,20 +2112,12 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -1880,21 +2132,14 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, - "engines": { - "node": ">=8" - } + "license": "Python-2.0" }, "node_modules/babel-plugin-macros": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.12.5", "cosmiconfig": "^7.0.0", @@ -1909,24 +2154,27 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, + "license": "MIT", "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" @@ -1936,6 +2184,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "license": "MIT", "engines": { "node": ">=6" } @@ -1945,6 +2194,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -1960,6 +2210,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", "engines": { "node": ">=6" } @@ -1969,6 +2220,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -1980,23 +2232,27 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/convert-source-map": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "license": "MIT" }, "node_modules/cosmiconfig": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "license": "MIT", "dependencies": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.2.1", @@ -2008,11 +2264,21 @@ "node": ">=10" } }, + "node_modules/cosmiconfig/node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -2025,15 +2291,16 @@ "node_modules/csstype": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "license": "MIT" }, "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "license": "MIT", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -2048,36 +2315,14 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } + "license": "MIT" }, "node_modules/dom-helpers": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.8.7", "csstype": "^3.0.2" @@ -2087,52 +2332,57 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "license": "MIT", "dependencies": { "is-arrayish": "^0.2.1" } }, "node_modules/esbuild": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", - "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.1.tgz", + "integrity": "sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==", "dev": true, "hasInstallScript": true, + "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, "engines": { - "node": ">=12" + "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.20.2", - "@esbuild/android-arm": "0.20.2", - "@esbuild/android-arm64": "0.20.2", - "@esbuild/android-x64": "0.20.2", - "@esbuild/darwin-arm64": "0.20.2", - "@esbuild/darwin-x64": "0.20.2", - "@esbuild/freebsd-arm64": "0.20.2", - "@esbuild/freebsd-x64": "0.20.2", - "@esbuild/linux-arm": "0.20.2", - "@esbuild/linux-arm64": "0.20.2", - "@esbuild/linux-ia32": "0.20.2", - "@esbuild/linux-loong64": "0.20.2", - "@esbuild/linux-mips64el": "0.20.2", - "@esbuild/linux-ppc64": "0.20.2", - "@esbuild/linux-riscv64": "0.20.2", - "@esbuild/linux-s390x": "0.20.2", - "@esbuild/linux-x64": "0.20.2", - "@esbuild/netbsd-x64": "0.20.2", - "@esbuild/openbsd-x64": "0.20.2", - "@esbuild/sunos-x64": "0.20.2", - "@esbuild/win32-arm64": "0.20.2", - "@esbuild/win32-ia32": "0.20.2", - "@esbuild/win32-x64": "0.20.2" + "@esbuild/aix-ppc64": "0.25.1", + "@esbuild/android-arm": "0.25.1", + "@esbuild/android-arm64": "0.25.1", + "@esbuild/android-x64": "0.25.1", + "@esbuild/darwin-arm64": "0.25.1", + "@esbuild/darwin-x64": "0.25.1", + "@esbuild/freebsd-arm64": "0.25.1", + "@esbuild/freebsd-x64": "0.25.1", + "@esbuild/linux-arm": "0.25.1", + "@esbuild/linux-arm64": "0.25.1", + "@esbuild/linux-ia32": "0.25.1", + "@esbuild/linux-loong64": "0.25.1", + "@esbuild/linux-mips64el": "0.25.1", + "@esbuild/linux-ppc64": "0.25.1", + "@esbuild/linux-riscv64": "0.25.1", + "@esbuild/linux-s390x": "0.25.1", + "@esbuild/linux-x64": "0.25.1", + "@esbuild/netbsd-arm64": "0.25.1", + "@esbuild/netbsd-x64": "0.25.1", + "@esbuild/openbsd-arm64": "0.25.1", + "@esbuild/openbsd-x64": "0.25.1", + "@esbuild/sunos-x64": "0.25.1", + "@esbuild/win32-arm64": "0.25.1", + "@esbuild/win32-ia32": "0.25.1", + "@esbuild/win32-x64": "0.25.1" } }, "node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -2141,92 +2391,101 @@ } }, "node_modules/eslint": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", - "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "version": "9.22.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.22.0.tgz", + "integrity": "sha512-9V/QURhsRN40xuHXWjV64yvrzMjcz7ZyNoF2jJFmy9j/SLk0u1OLSZgXi28MrXjymnjEGSR80WCdab3RGMDveQ==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.0", - "@humanwhocodes/config-array": "^0.11.14", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.19.2", + "@eslint/config-helpers": "^0.1.0", + "@eslint/core": "^0.12.0", + "@eslint/eslintrc": "^3.3.0", + "@eslint/js": "9.22.0", + "@eslint/plugin-kit": "^0.2.7", + "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", + "cross-spawn": "^7.0.6", "debug": "^4.3.2", - "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", + "eslint-scope": "^8.3.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", + "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" + "optionator": "^0.9.3" }, "bin": { "eslint": "bin/eslint.js" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } } }, "node_modules/eslint-plugin-react-hooks": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", - "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz", + "integrity": "sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" } }, "node_modules/eslint-plugin-react-refresh": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.6.tgz", - "integrity": "sha512-NjGXdm7zgcKRkKMua34qVO9doI7VOxZ6ancSvBELJSSoX97jyndXcSoa8XBh69JoB31dNz3EEzlMcizZl7LaMA==", + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.19.tgz", + "integrity": "sha512-eyy8pcr/YxSYjBoqIFSrlbn9i/xvxUFa8CjzAYo9cFjgGXqq1hyjihcpZvxRLalpaWmueWR81xn7vuKmAFijDQ==", "dev": true, + "license": "MIT", "peerDependencies": { - "eslint": ">=7" + "eslint": ">=8.40" } }, "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz", + "integrity": "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -2237,6 +2496,7 @@ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -2249,16 +2509,31 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/eslint/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -2267,27 +2542,42 @@ } }, "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.9.0", + "acorn": "^8.14.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" + "eslint-visitor-keys": "^4.2.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" }, @@ -2300,6 +2590,7 @@ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -2312,6 +2603,7 @@ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } @@ -2321,6 +2613,7 @@ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } @@ -2329,19 +2622,21 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "micromatch": "^4.0.8" }, "engines": { "node": ">=8.6.0" @@ -2352,6 +2647,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -2363,40 +2659,45 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", "dev": true, + "license": "ISC", "dependencies": { "reusify": "^1.0.4" } }, "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, + "license": "MIT", "dependencies": { - "flat-cache": "^3.0.4" + "flat-cache": "^4.0.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=16.0.0" } }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -2407,13 +2708,15 @@ "node_modules/find-root": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", + "license": "MIT" }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -2426,30 +2729,25 @@ } }, "node_modules/flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, + "license": "MIT", "dependencies": { "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" + "keyv": "^4.5.4" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=16" } }, "node_modules/flatted": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", - "dev": true - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true, + "license": "ISC" }, "node_modules/fsevents": { "version": "2.3.3", @@ -2457,6 +2755,7 @@ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -2469,35 +2768,17 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.3" }, @@ -2505,74 +2786,28 @@ "node": ">=10.13.0" } }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "license": "MIT", "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, "node_modules/graphemer": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -2581,6 +2816,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", "dependencies": { "function-bind": "^1.1.2" }, @@ -2592,6 +2828,7 @@ "version": "3.3.2", "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "license": "BSD-3-Clause", "dependencies": { "react-is": "^16.7.0" } @@ -2599,21 +2836,24 @@ "node_modules/hoist-non-react-statics/node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" }, "node_modules/ignore": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -2630,37 +2870,27 @@ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.19" } }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "license": "MIT" }, "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "license": "MIT", "dependencies": { - "hasown": "^2.0.0" + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -2671,6 +2901,7 @@ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -2680,6 +2911,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -2692,35 +2924,30 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" }, "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -2728,34 +2955,51 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/json-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "license": "MIT" }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, + "license": "MIT", "dependencies": { "json-buffer": "3.0.1" } @@ -2765,6 +3009,7 @@ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -2776,13 +3021,15 @@ "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^5.0.0" }, @@ -2797,12 +3044,14 @@ "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, @@ -2815,17 +3064,19 @@ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, + "license": "MIT", "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { @@ -2833,10 +3084,11 @@ } }, "node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -2848,15 +3100,15 @@ } }, "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" }, "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.10.tgz", + "integrity": "sha512-vSJJTG+t/dIKAUhUDw/dLdZ9s//5OxcHqLaDWWrW4Cdq7o6tdLIczUkMXt2MBNmk6sJRZBZRXVixs7URY1CmIg==", "dev": true, "funding": [ { @@ -2864,6 +3116,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -2875,30 +3128,24 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, "node_modules/optionator": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, + "license": "MIT", "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", @@ -2916,6 +3163,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, + "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" }, @@ -2931,6 +3179,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^3.0.2" }, @@ -2945,6 +3194,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -2956,6 +3206,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -2974,24 +3225,17 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -2999,26 +3243,30 @@ "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -3027,9 +3275,9 @@ } }, "node_modules/postcss": { - "version": "8.4.38", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", - "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", + "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", "dev": true, "funding": [ { @@ -3045,10 +3293,11 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.2.0" + "nanoid": "^3.3.8", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "engines": { "node": "^10 || ^12 || >=14" @@ -3059,6 +3308,7 @@ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8.0" } @@ -3067,6 +3317,7 @@ "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", @@ -3076,13 +3327,15 @@ "node_modules/prop-types/node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -3105,40 +3358,41 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/react": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", - "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", - "dependencies": { - "loose-envify": "^1.1.0" - }, + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.0.0.tgz", + "integrity": "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/react-dom": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", - "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0.tgz", + "integrity": "sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==", + "license": "MIT", "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.2" + "scheduler": "^0.25.0" }, "peerDependencies": { - "react": "^18.3.1" + "react": "^19.0.0" } }, "node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.0.0.tgz", + "integrity": "sha512-H91OHcwjZsbq3ClIDHMzBShc1rotbfACdWENsmEf0IFvZ3FgGPtdHMcsv45bQ1hAbgdfiA8SnxTKfDS+x/8m2g==", + "license": "MIT" }, "node_modules/react-transition-group": { "version": "4.4.5", "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "license": "BSD-3-Clause", "dependencies": { "@babel/runtime": "^7.5.5", "dom-helpers": "^5.0.1", @@ -3153,20 +3407,25 @@ "node_modules/regenerator-runtime": { "version": "0.14.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "license": "MIT" }, "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "license": "MIT", "dependencies": { - "is-core-module": "^2.13.0", + "is-core-module": "^2.16.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -3175,42 +3434,30 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", "dev": true, + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" } }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/rollup": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.17.2.tgz", - "integrity": "sha512-/9ClTJPByC0U4zNLowV1tMBe8yMEAxewtR3cUNX5BoEpGH3dQEWpJLr6CLp0fPdYRF/fzVOgvDb1zXuakwF5kQ==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.35.0.tgz", + "integrity": "sha512-kg6oI4g+vc41vePJyO6dHt/yl0Rz3Thv0kJeVQ3D1kS3E5XSuKbPc29G4IpT/Kv1KQwgHVcN+HtyS+HYLNSvQg==", "dev": true, + "license": "MIT", "dependencies": { - "@types/estree": "1.0.5" + "@types/estree": "1.0.6" }, "bin": { "rollup": "dist/bin/rollup" @@ -3220,22 +3467,25 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.17.2", - "@rollup/rollup-android-arm64": "4.17.2", - "@rollup/rollup-darwin-arm64": "4.17.2", - "@rollup/rollup-darwin-x64": "4.17.2", - "@rollup/rollup-linux-arm-gnueabihf": "4.17.2", - "@rollup/rollup-linux-arm-musleabihf": "4.17.2", - "@rollup/rollup-linux-arm64-gnu": "4.17.2", - "@rollup/rollup-linux-arm64-musl": "4.17.2", - "@rollup/rollup-linux-powerpc64le-gnu": "4.17.2", - "@rollup/rollup-linux-riscv64-gnu": "4.17.2", - "@rollup/rollup-linux-s390x-gnu": "4.17.2", - "@rollup/rollup-linux-x64-gnu": "4.17.2", - "@rollup/rollup-linux-x64-musl": "4.17.2", - "@rollup/rollup-win32-arm64-msvc": "4.17.2", - "@rollup/rollup-win32-ia32-msvc": "4.17.2", - "@rollup/rollup-win32-x64-msvc": "4.17.2", + "@rollup/rollup-android-arm-eabi": "4.35.0", + "@rollup/rollup-android-arm64": "4.35.0", + "@rollup/rollup-darwin-arm64": "4.35.0", + "@rollup/rollup-darwin-x64": "4.35.0", + "@rollup/rollup-freebsd-arm64": "4.35.0", + "@rollup/rollup-freebsd-x64": "4.35.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.35.0", + "@rollup/rollup-linux-arm-musleabihf": "4.35.0", + "@rollup/rollup-linux-arm64-gnu": "4.35.0", + "@rollup/rollup-linux-arm64-musl": "4.35.0", + "@rollup/rollup-linux-loongarch64-gnu": "4.35.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.35.0", + "@rollup/rollup-linux-riscv64-gnu": "4.35.0", + "@rollup/rollup-linux-s390x-gnu": "4.35.0", + "@rollup/rollup-linux-x64-gnu": "4.35.0", + "@rollup/rollup-linux-x64-musl": "4.35.0", + "@rollup/rollup-win32-arm64-msvc": "4.35.0", + "@rollup/rollup-win32-ia32-msvc": "4.35.0", + "@rollup/rollup-win32-x64-msvc": "4.35.0", "fsevents": "~2.3.2" } }, @@ -3258,23 +3508,23 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } }, "node_modules/scheduler": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", - "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", - "dependencies": { - "loose-envify": "^1.1.0" - } + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0.tgz", + "integrity": "sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==", + "license": "MIT" }, "node_modules/semver": { - "version": "7.6.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.1.tgz", - "integrity": "sha512-f/vbBsu+fOiYt+lmwZV0rVwJScl46HppnOA1ZvIuBWKOTlllpyJ3bfVax76/OrhCH38dyxoDIA8K7uB963IYgA==", + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -3287,6 +3537,7 @@ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -3299,15 +3550,7 @@ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -3316,36 +3559,27 @@ "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -3356,13 +3590,15 @@ "node_modules/stylis": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", - "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==" + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==", + "license": "MIT" }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -3374,6 +3610,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -3381,25 +3618,12 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "engines": { - "node": ">=4" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -3408,15 +3632,16 @@ } }, "node_modules/ts-api-utils": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", - "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.1.tgz", + "integrity": "sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==", "dev": true, + "license": "MIT", "engines": { - "node": ">=16" + "node": ">=18.12" }, "peerDependencies": { - "typescript": ">=4.2.0" + "typescript": ">=4.8.4" } }, "node_modules/type-check": { @@ -3424,6 +3649,7 @@ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" }, @@ -3431,23 +3657,12 @@ "node": ">= 0.8.0" } }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/typescript": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "version": "5.8.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz", + "integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -3461,25 +3676,27 @@ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } }, "node_modules/vite": { - "version": "5.2.11", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.11.tgz", - "integrity": "sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==", + "version": "6.2.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.2.5.tgz", + "integrity": "sha512-j023J/hCAa4pRIUH6J9HemwYfjB5llR2Ps0CWeikOtdR8+pAURAk0DoJC5/mm9kd+UgdnIy7d6HE4EAvlYhPhA==", "dev": true, + "license": "MIT", "dependencies": { - "esbuild": "^0.20.1", - "postcss": "^8.4.38", - "rollup": "^4.13.0" + "esbuild": "^0.25.0", + "postcss": "^8.5.3", + "rollup": "^4.30.1" }, "bin": { "vite": "bin/vite.js" }, "engines": { - "node": "^18.0.0 || >=20.0.0" + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" }, "funding": { "url": "https://github.com/vitejs/vite?sponsor=1" @@ -3488,18 +3705,25 @@ "fsevents": "~2.3.3" }, "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", + "sass-embedded": "*", "stylus": "*", "sugarss": "*", - "terser": "^5.4.0" + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" }, "peerDependenciesMeta": { "@types/node": { "optional": true }, + "jiti": { + "optional": true + }, "less": { "optional": true }, @@ -3509,6 +3733,9 @@ "sass": { "optional": true }, + "sass-embedded": { + "optional": true + }, "stylus": { "optional": true }, @@ -3517,6 +3744,12 @@ }, "terser": { "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true } } }, @@ -3525,6 +3758,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -3540,22 +3774,24 @@ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", + "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", + "dev": true, + "license": "ISC", + "optional": true, + "peer": true, + "bin": { + "yaml": "bin.mjs" + }, "engines": { - "node": ">= 6" + "node": ">= 14" } }, "node_modules/yocto-queue": { @@ -3563,6 +3799,7 @@ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, diff --git a/demo/package.json b/demo/package.json index b6f6d02..725dfce 100644 --- a/demo/package.json +++ b/demo/package.json @@ -5,30 +5,30 @@ "type": "module", "scripts": { "dev": "vite", - "build": "rm -rf ../docs && tsc && vite build", + "update-gh-page": "tsc && vite build --emptyOutDir", "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", "preview": "vite preview", - "copy-wasm": "rm ./src/postgresql-cst-parser/* && cd ../crates/postgresql-cst-parser-wasm && rm -rf ./pkg && wasm-pack build --release --target web && cp pkg/*.js pkg/*.ts pkg/*.wasm ../../demo/src/postgresql-cst-parser" + "copy-wasm": "rm -rf ./src/postgresql-cst-parser/* && cd ../crates/postgresql-cst-parser-wasm && rm -rf ./pkg && wasm-pack build --release --target web && cp pkg/*.js pkg/*.ts pkg/*.wasm ../../demo/src/postgresql-cst-parser" }, "dependencies": { - "@emotion/react": "^11.11.4", - "@emotion/styled": "^11.11.5", - "@fontsource/roboto": "^5.0.13", - "@mui/icons-material": "^5.15.17", - "@mui/material": "^5.15.17", - "react": "^18.2.0", - "react-dom": "^18.2.0" + "@emotion/react": "^11.14.0", + "@emotion/styled": "^11.14.0", + "@fontsource/roboto": "^5.2.5", + "@mui/icons-material": "^6.4.7", + "@mui/material": "^6.4.7", + "react": "^19.0.0", + "react-dom": "^19.0.0" }, "devDependencies": { - "@types/react": "^18.2.66", - "@types/react-dom": "^18.2.22", - "@typescript-eslint/eslint-plugin": "^7.2.0", - "@typescript-eslint/parser": "^7.2.0", - "@vitejs/plugin-react-swc": "^3.5.0", - "eslint": "^8.57.0", - "eslint-plugin-react-hooks": "^4.6.0", - "eslint-plugin-react-refresh": "^0.4.6", - "typescript": "^5.2.2", - "vite": "^5.2.0" + "@types/react": "^19.0.10", + "@types/react-dom": "^19.0.4", + "@typescript-eslint/eslint-plugin": "^8.26.1", + "@typescript-eslint/parser": "^8.26.1", + "@vitejs/plugin-react-swc": "^3.8.0", + "eslint": "^9.22.0", + "eslint-plugin-react-hooks": "^5.2.0", + "eslint-plugin-react-refresh": "^0.4.19", + "typescript": "^5.8.2", + "vite": "^6.2.5" } } \ No newline at end of file diff --git a/demo/src/postgresql-cst-parser/postgresql_cst_parser_wasm.d.ts b/demo/src/postgresql-cst-parser/postgresql_cst_parser_wasm.d.ts index 52a5a40..cf74eb0 100644 --- a/demo/src/postgresql-cst-parser/postgresql_cst_parser_wasm.d.ts +++ b/demo/src/postgresql-cst-parser/postgresql_cst_parser_wasm.d.ts @@ -22,18 +22,18 @@ export type SyncInitInput = BufferSource | WebAssembly.Module; * Instantiates the given `module`, which can either be bytes or * a precompiled `WebAssembly.Module`. * -* @param {SyncInitInput} module +* @param {{ module: SyncInitInput }} module - Passing `SyncInitInput` directly is deprecated. * * @returns {InitOutput} */ -export function initSync(module: SyncInitInput): InitOutput; +export function initSync(module: { module: SyncInitInput } | SyncInitInput): InitOutput; /** * If `module_or_path` is {RequestInfo} or {URL}, makes a request and * for everything else, calls `WebAssembly.instantiate` directly. * -* @param {InitInput | Promise} module_or_path +* @param {{ module_or_path: InitInput | Promise }} module_or_path - Passing `InitInput` directly is deprecated. * * @returns {Promise} */ -export default function __wbg_init (module_or_path?: InitInput | Promise): Promise; +export default function __wbg_init (module_or_path?: { module_or_path: InitInput | Promise } | InitInput | Promise): Promise; diff --git a/demo/src/postgresql-cst-parser/postgresql_cst_parser_wasm.js b/demo/src/postgresql-cst-parser/postgresql_cst_parser_wasm.js index 277418d..bcc5864 100644 --- a/demo/src/postgresql-cst-parser/postgresql_cst_parser_wasm.js +++ b/demo/src/postgresql-cst-parser/postgresql_cst_parser_wasm.js @@ -2,13 +2,13 @@ let wasm; let WASM_VECTOR_LEN = 0; -let cachedUint8Memory0 = null; +let cachedUint8ArrayMemory0 = null; -function getUint8Memory0() { - if (cachedUint8Memory0 === null || cachedUint8Memory0.byteLength === 0) { - cachedUint8Memory0 = new Uint8Array(wasm.memory.buffer); +function getUint8ArrayMemory0() { + if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) { + cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer); } - return cachedUint8Memory0; + return cachedUint8ArrayMemory0; } const cachedTextEncoder = (typeof TextEncoder !== 'undefined' ? new TextEncoder('utf-8') : { encode: () => { throw Error('TextEncoder not available') } } ); @@ -31,7 +31,7 @@ function passStringToWasm0(arg, malloc, realloc) { if (realloc === undefined) { const buf = cachedTextEncoder.encode(arg); const ptr = malloc(buf.length, 1) >>> 0; - getUint8Memory0().subarray(ptr, ptr + buf.length).set(buf); + getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf); WASM_VECTOR_LEN = buf.length; return ptr; } @@ -39,7 +39,7 @@ function passStringToWasm0(arg, malloc, realloc) { let len = arg.length; let ptr = malloc(len, 1) >>> 0; - const mem = getUint8Memory0(); + const mem = getUint8ArrayMemory0(); let offset = 0; @@ -54,23 +54,24 @@ function passStringToWasm0(arg, malloc, realloc) { arg = arg.slice(offset); } ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0; - const view = getUint8Memory0().subarray(ptr + offset, ptr + len); + const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len); const ret = encodeString(arg, view); offset += ret.written; + ptr = realloc(ptr, len, offset, 1) >>> 0; } WASM_VECTOR_LEN = offset; return ptr; } -let cachedInt32Memory0 = null; +let cachedDataViewMemory0 = null; -function getInt32Memory0() { - if (cachedInt32Memory0 === null || cachedInt32Memory0.byteLength === 0) { - cachedInt32Memory0 = new Int32Array(wasm.memory.buffer); +function getDataViewMemory0() { + if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) { + cachedDataViewMemory0 = new DataView(wasm.memory.buffer); } - return cachedInt32Memory0; + return cachedDataViewMemory0; } const cachedTextDecoder = (typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }) : { decode: () => { throw Error('TextDecoder not available') } } ); @@ -79,7 +80,7 @@ if (typeof TextDecoder !== 'undefined') { cachedTextDecoder.decode(); }; function getStringFromWasm0(ptr, len) { ptr = ptr >>> 0; - return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len)); + return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len)); } /** * @param {string} sql @@ -93,8 +94,8 @@ export function parse_sql(sql) { const ptr0 = passStringToWasm0(sql, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); const len0 = WASM_VECTOR_LEN; wasm.parse_sql(retptr, ptr0, len0); - var r0 = getInt32Memory0()[retptr / 4 + 0]; - var r1 = getInt32Memory0()[retptr / 4 + 1]; + var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); + var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); deferred2_0 = r0; deferred2_1 = r1; return getStringFromWasm0(r0, r1); @@ -142,15 +143,16 @@ function __wbg_get_imports() { return imports; } -function __wbg_init_memory(imports, maybe_memory) { +function __wbg_init_memory(imports, memory) { } function __wbg_finalize_init(instance, module) { wasm = instance.exports; __wbg_init.__wbindgen_wasm_module = module; - cachedInt32Memory0 = null; - cachedUint8Memory0 = null; + cachedDataViewMemory0 = null; + cachedUint8ArrayMemory0 = null; + return wasm; @@ -159,6 +161,12 @@ function __wbg_finalize_init(instance, module) { function initSync(module) { if (wasm !== undefined) return wasm; + + if (typeof module !== 'undefined' && Object.getPrototypeOf(module) === Object.prototype) + ({module} = module) + else + console.warn('using deprecated parameters for `initSync()`; pass a single object instead') + const imports = __wbg_get_imports(); __wbg_init_memory(imports); @@ -172,24 +180,30 @@ function initSync(module) { return __wbg_finalize_init(instance, module); } -async function __wbg_init(input) { +async function __wbg_init(module_or_path) { if (wasm !== undefined) return wasm; - if (typeof input === 'undefined') { - input = new URL('postgresql_cst_parser_wasm_bg.wasm', import.meta.url); + + if (typeof module_or_path !== 'undefined' && Object.getPrototypeOf(module_or_path) === Object.prototype) + ({module_or_path} = module_or_path) + else + console.warn('using deprecated parameters for the initialization function; pass a single object instead') + + if (typeof module_or_path === 'undefined') { + module_or_path = new URL('postgresql_cst_parser_wasm_bg.wasm', import.meta.url); } const imports = __wbg_get_imports(); - if (typeof input === 'string' || (typeof Request === 'function' && input instanceof Request) || (typeof URL === 'function' && input instanceof URL)) { - input = fetch(input); + if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) { + module_or_path = fetch(module_or_path); } __wbg_init_memory(imports); - const { instance, module } = await __wbg_load(await input, imports); + const { instance, module } = await __wbg_load(await module_or_path, imports); return __wbg_finalize_init(instance, module); } -export { initSync } +export { initSync }; export default __wbg_init; diff --git a/demo/src/postgresql-cst-parser/postgresql_cst_parser_wasm_bg.wasm b/demo/src/postgresql-cst-parser/postgresql_cst_parser_wasm_bg.wasm index a15024d..c7bce04 100644 Binary files a/demo/src/postgresql-cst-parser/postgresql_cst_parser_wasm_bg.wasm and b/demo/src/postgresql-cst-parser/postgresql_cst_parser_wasm_bg.wasm differ diff --git a/docs/assets/index-jkz93e-M.js b/docs/assets/index-yg4pRHwr.js similarity index 87% rename from docs/assets/index-jkz93e-M.js rename to docs/assets/index-yg4pRHwr.js index 2eb0079..95938db 100644 --- a/docs/assets/index-jkz93e-M.js +++ b/docs/assets/index-yg4pRHwr.js @@ -6,7 +6,7 @@ function M0(e,t){for(var n=0;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Ra=Object.prototype.hasOwnProperty,ng=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,id={},ld={};function rg(e){return Ra.call(ld,e)?!0:Ra.call(id,e)?!1:ng.test(e)?ld[e]=!0:(id[e]=!0,!1)}function og(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function ig(e,t,n,r){if(t===null||typeof t>"u"||og(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function rt(e,t,n,r,o,i,l){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=l}var Ge={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Ge[e]=new rt(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Ge[t]=new rt(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){Ge[e]=new rt(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Ge[e]=new rt(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){Ge[e]=new rt(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){Ge[e]=new rt(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){Ge[e]=new rt(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){Ge[e]=new rt(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){Ge[e]=new rt(e,5,!1,e.toLowerCase(),null,!1,!1)});var Lu=/[\-:]([a-z])/g;function Fu(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(Lu,Fu);Ge[t]=new rt(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(Lu,Fu);Ge[t]=new rt(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(Lu,Fu);Ge[t]=new rt(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){Ge[e]=new rt(e,1,!1,e.toLowerCase(),null,!1,!1)});Ge.xlinkHref=new rt("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){Ge[e]=new rt(e,1,!1,e.toLowerCase(),null,!0,!0)});function Au(e,t,n,r){var o=Ge.hasOwnProperty(t)?Ge[t]:null;(o!==null?o.type!==0:r||!(2"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Ra=Object.prototype.hasOwnProperty,ng=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,id={},ld={};function rg(e){return Ra.call(ld,e)?!0:Ra.call(id,e)?!1:ng.test(e)?ld[e]=!0:(id[e]=!0,!1)}function og(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function ig(e,t,n,r){if(t===null||typeof t>"u"||og(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function rt(e,t,n,r,o,i,l){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=l}var Ge={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Ge[e]=new rt(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Ge[t]=new rt(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){Ge[e]=new rt(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Ge[e]=new rt(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){Ge[e]=new rt(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){Ge[e]=new rt(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){Ge[e]=new rt(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){Ge[e]=new rt(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){Ge[e]=new rt(e,5,!1,e.toLowerCase(),null,!1,!1)});var Lu=/[\-:]([a-z])/g;function Fu(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(Lu,Fu);Ge[t]=new rt(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(Lu,Fu);Ge[t]=new rt(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(Lu,Fu);Ge[t]=new rt(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){Ge[e]=new rt(e,1,!1,e.toLowerCase(),null,!1,!1)});Ge.xlinkHref=new rt("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){Ge[e]=new rt(e,1,!1,e.toLowerCase(),null,!0,!0)});function Au(e,t,n,r){var o=Ge.hasOwnProperty(t)?Ge[t]:null;(o!==null?o.type!==0:r||!(2s||o[l]!==i[s]){var a=` -`+o[l].replace(" at new "," at ");return e.displayName&&a.includes("")&&(a=a.replace("",e.displayName)),a}while(1<=l&&0<=s);break}}}finally{Vs=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?bo(e):""}function lg(e){switch(e.tag){case 5:return bo(e.type);case 16:return bo("Lazy");case 13:return bo("Suspense");case 19:return bo("SuspenseList");case 0:case 2:case 15:return e=Ks(e.type,!1),e;case 11:return e=Ks(e.type.render,!1),e;case 1:return e=Ks(e.type,!0),e;default:return""}}function Oa(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Er:return"Fragment";case Cr:return"Portal";case _a:return"Profiler";case ju:return"StrictMode";case Ta:return"Suspense";case $a:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case Pp:return(e.displayName||"Context")+".Consumer";case bp:return(e._context.displayName||"Context")+".Provider";case Du:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Bu:return t=e.displayName||null,t!==null?t:Oa(e.type)||"Memo";case bn:t=e._payload,e=e._init;try{return Oa(e(t))}catch{}}return null}function sg(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Oa(t);case 8:return t===ju?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function Dn(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function _p(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function ag(e){var t=_p(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var o=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(l){r=""+l,i.call(this,l)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(l){r=""+l},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function bi(e){e._valueTracker||(e._valueTracker=ag(e))}function Tp(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=_p(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function cl(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function Ma(e,t){var n=t.checked;return Ce({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function ad(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=Dn(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function $p(e,t){t=t.checked,t!=null&&Au(e,"checked",t,!1)}function Ia(e,t){$p(e,t);var n=Dn(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Na(e,t.type,n):t.hasOwnProperty("defaultValue")&&Na(e,t.type,Dn(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function ud(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function Na(e,t,n){(t!=="number"||cl(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var Po=Array.isArray;function Fr(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o"+t.valueOf().toString()+"",t=Pi.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Vo(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Mo={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},ug=["Webkit","ms","Moz","O"];Object.keys(Mo).forEach(function(e){ug.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Mo[t]=Mo[e]})});function Np(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||Mo.hasOwnProperty(e)&&Mo[e]?(""+t).trim():t+"px"}function zp(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,o=Np(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}var cg=Ce({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Fa(e,t){if(t){if(cg[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error($(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error($(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error($(61))}if(t.style!=null&&typeof t.style!="object")throw Error($(62))}}function Aa(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var ja=null;function Wu(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Da=null,Ar=null,jr=null;function fd(e){if(e=mi(e)){if(typeof Da!="function")throw Error($(280));var t=e.stateNode;t&&(t=Kl(t),Da(e.stateNode,e.type,t))}}function Lp(e){Ar?jr?jr.push(e):jr=[e]:Ar=e}function Fp(){if(Ar){var e=Ar,t=jr;if(jr=Ar=null,fd(e),t)for(e=0;e>>=0,e===0?32:31-(wg(e)/kg|0)|0}var Ri=64,_i=4194304;function Ro(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function ml(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,o=e.suspendedLanes,i=e.pingedLanes,l=n&268435455;if(l!==0){var s=l&~o;s!==0?r=Ro(s):(i&=l,i!==0&&(r=Ro(i)))}else l=n&~o,l!==0?r=Ro(l):i!==0&&(r=Ro(i));if(r===0)return 0;if(t!==0&&t!==r&&!(t&o)&&(o=r&-r,i=t&-t,o>=i||o===16&&(i&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function fi(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Kt(t),e[t]=n}function Pg(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=No),wd=" ",kd=!1;function rm(e,t){switch(e){case"keyup":return ev.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function om(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var br=!1;function nv(e,t){switch(e){case"compositionend":return om(t);case"keypress":return t.which!==32?null:(kd=!0,wd);case"textInput":return e=t.data,e===wd&&kd?null:e;default:return null}}function rv(e,t){if(br)return e==="compositionend"||!Xu&&rm(e,t)?(e=tm(),Qi=Gu=$n=null,br=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=Pd(n)}}function am(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?am(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function um(){for(var e=window,t=cl();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=cl(e.document)}return t}function Yu(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function fv(e){var t=um(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&am(n.ownerDocument.documentElement,n)){if(r!==null&&Yu(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var o=n.textContent.length,i=Math.min(r.start,o);r=r.end===void 0?i:Math.min(r.end,o),!e.extend&&i>r&&(o=r,r=i,i=o),o=Rd(n,i);var l=Rd(n,r);o&&l&&(e.rangeCount!==1||e.anchorNode!==o.node||e.anchorOffset!==o.offset||e.focusNode!==l.node||e.focusOffset!==l.offset)&&(t=t.createRange(),t.setStart(o.node,o.offset),e.removeAllRanges(),i>r?(e.addRange(t),e.extend(l.node,l.offset)):(t.setEnd(l.node,l.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,Pr=null,Ka=null,Lo=null,Ga=!1;function _d(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Ga||Pr==null||Pr!==cl(r)||(r=Pr,"selectionStart"in r&&Yu(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Lo&&Yo(Lo,r)||(Lo=r,r=vl(Ka,"onSelect"),0Tr||(e.current=Ja[Tr],Ja[Tr]=null,Tr--)}function de(e,t){Tr++,Ja[Tr]=e.current,e.current=t}var Bn={},Ze=Hn(Bn),at=Hn(!1),or=Bn;function Kr(e,t){var n=e.type.contextTypes;if(!n)return Bn;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o={},i;for(i in n)o[i]=t[i];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function ut(e){return e=e.childContextTypes,e!=null}function xl(){me(at),me(Ze)}function zd(e,t,n){if(Ze.current!==Bn)throw Error($(168));de(Ze,t),de(at,n)}function ym(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var o in r)if(!(o in t))throw Error($(108,sg(e)||"Unknown",o));return Ce({},n,r)}function Sl(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Bn,or=Ze.current,de(Ze,e),de(at,at.current),!0}function Ld(e,t,n){var r=e.stateNode;if(!r)throw Error($(169));n?(e=ym(e,t,or),r.__reactInternalMemoizedMergedChildContext=e,me(at),me(Ze),de(Ze,e)):me(at),de(at,n)}var dn=null,Gl=!1,la=!1;function xm(e){dn===null?dn=[e]:dn.push(e)}function Ev(e){Gl=!0,xm(e)}function Vn(){if(!la&&dn!==null){la=!0;var e=0,t=oe;try{var n=dn;for(oe=1;e>=l,o-=l,fn=1<<32-Kt(t)+o|n<R?(O=C,C=null):O=C.sibling;var T=m(p,C,d[R],y);if(T===null){C===null&&(C=O);break}e&&C&&T.alternate===null&&t(p,C),c=i(T,c,R),E===null?k=T:E.sibling=T,E=T,C=O}if(R===d.length)return n(p,C),ye&&Qn(p,R),k;if(C===null){for(;RR?(O=C,C=null):O=C.sibling;var j=m(p,C,T.value,y);if(j===null){C===null&&(C=O);break}e&&C&&j.alternate===null&&t(p,C),c=i(j,c,R),E===null?k=j:E.sibling=j,E=j,C=O}if(T.done)return n(p,C),ye&&Qn(p,R),k;if(C===null){for(;!T.done;R++,T=d.next())T=h(p,T.value,y),T!==null&&(c=i(T,c,R),E===null?k=T:E.sibling=T,E=T);return ye&&Qn(p,R),k}for(C=r(p,C);!T.done;R++,T=d.next())T=x(C,p,R,T.value,y),T!==null&&(e&&T.alternate!==null&&C.delete(T.key===null?R:T.key),c=i(T,c,R),E===null?k=T:E.sibling=T,E=T);return e&&C.forEach(function(D){return t(p,D)}),ye&&Qn(p,R),k}function b(p,c,d,y){if(typeof d=="object"&&d!==null&&d.type===Er&&d.key===null&&(d=d.props.children),typeof d=="object"&&d!==null){switch(d.$$typeof){case Ei:e:{for(var k=d.key,E=c;E!==null;){if(E.key===k){if(k=d.type,k===Er){if(E.tag===7){n(p,E.sibling),c=o(E,d.props.children),c.return=p,p=c;break e}}else if(E.elementType===k||typeof k=="object"&&k!==null&&k.$$typeof===bn&&jd(k)===E.type){n(p,E.sibling),c=o(E,d.props),c.ref=vo(p,E,d),c.return=p,p=c;break e}n(p,E);break}else t(p,E);E=E.sibling}d.type===Er?(c=rr(d.props.children,p.mode,y,d.key),c.return=p,p=c):(y=nl(d.type,d.key,d.props,null,p.mode,y),y.ref=vo(p,c,d),y.return=p,p=y)}return l(p);case Cr:e:{for(E=d.key;c!==null;){if(c.key===E)if(c.tag===4&&c.stateNode.containerInfo===d.containerInfo&&c.stateNode.implementation===d.implementation){n(p,c.sibling),c=o(c,d.children||[]),c.return=p,p=c;break e}else{n(p,c);break}else t(p,c);c=c.sibling}c=ma(d,p.mode,y),c.return=p,p=c}return l(p);case bn:return E=d._init,b(p,c,E(d._payload),y)}if(Po(d))return g(p,c,d,y);if(fo(d))return v(p,c,d,y);zi(p,d)}return typeof d=="string"&&d!==""||typeof d=="number"?(d=""+d,c!==null&&c.tag===6?(n(p,c.sibling),c=o(c,d),c.return=p,p=c):(n(p,c),c=pa(d,p.mode,y),c.return=p,p=c),l(p)):n(p,c)}return b}var Qr=Cm(!0),Em=Cm(!1),Cl=Hn(null),El=null,Mr=null,tc=null;function nc(){tc=Mr=El=null}function rc(e){var t=Cl.current;me(Cl),e._currentValue=t}function nu(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function Br(e,t){El=e,tc=Mr=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(st=!0),e.firstContext=null)}function zt(e){var t=e._currentValue;if(tc!==e)if(e={context:e,memoizedValue:t,next:null},Mr===null){if(El===null)throw Error($(308));Mr=e,El.dependencies={lanes:0,firstContext:e}}else Mr=Mr.next=e;return t}var Jn=null;function oc(e){Jn===null?Jn=[e]:Jn.push(e)}function bm(e,t,n,r){var o=t.interleaved;return o===null?(n.next=n,oc(t)):(n.next=o.next,o.next=n),t.interleaved=n,vn(e,r)}function vn(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var Pn=!1;function ic(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Pm(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function mn(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Ln(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,J&2){var o=r.pending;return o===null?t.next=t:(t.next=o.next,o.next=t),r.pending=t,vn(e,n)}return o=r.interleaved,o===null?(t.next=t,oc(r)):(t.next=o.next,o.next=t),r.interleaved=t,vn(e,n)}function Xi(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Hu(e,n)}}function Dd(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var o=null,i=null;if(n=n.firstBaseUpdate,n!==null){do{var l={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};i===null?o=i=l:i=i.next=l,n=n.next}while(n!==null);i===null?o=i=t:i=i.next=t}else o=i=t;n={baseState:r.baseState,firstBaseUpdate:o,lastBaseUpdate:i,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function bl(e,t,n,r){var o=e.updateQueue;Pn=!1;var i=o.firstBaseUpdate,l=o.lastBaseUpdate,s=o.shared.pending;if(s!==null){o.shared.pending=null;var a=s,u=a.next;a.next=null,l===null?i=u:l.next=u,l=a;var f=e.alternate;f!==null&&(f=f.updateQueue,s=f.lastBaseUpdate,s!==l&&(s===null?f.firstBaseUpdate=u:s.next=u,f.lastBaseUpdate=a))}if(i!==null){var h=o.baseState;l=0,f=u=a=null,s=i;do{var m=s.lane,x=s.eventTime;if((r&m)===m){f!==null&&(f=f.next={eventTime:x,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var g=e,v=s;switch(m=t,x=n,v.tag){case 1:if(g=v.payload,typeof g=="function"){h=g.call(x,h,m);break e}h=g;break e;case 3:g.flags=g.flags&-65537|128;case 0:if(g=v.payload,m=typeof g=="function"?g.call(x,h,m):g,m==null)break e;h=Ce({},h,m);break e;case 2:Pn=!0}}s.callback!==null&&s.lane!==0&&(e.flags|=64,m=o.effects,m===null?o.effects=[s]:m.push(s))}else x={eventTime:x,lane:m,tag:s.tag,payload:s.payload,callback:s.callback,next:null},f===null?(u=f=x,a=h):f=f.next=x,l|=m;if(s=s.next,s===null){if(s=o.shared.pending,s===null)break;m=s,s=m.next,m.next=null,o.lastBaseUpdate=m,o.shared.pending=null}}while(!0);if(f===null&&(a=h),o.baseState=a,o.firstBaseUpdate=u,o.lastBaseUpdate=f,t=o.shared.interleaved,t!==null){o=t;do l|=o.lane,o=o.next;while(o!==t)}else i===null&&(o.shared.lanes=0);sr|=l,e.lanes=l,e.memoizedState=h}}function Bd(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=aa.transition;aa.transition={};try{e(!1),t()}finally{oe=n,aa.transition=r}}function Um(){return Lt().memoizedState}function _v(e,t,n){var r=An(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Hm(e))Vm(t,n);else if(n=bm(e,t,n,r),n!==null){var o=tt();Gt(n,e,r,o),Km(n,t,r)}}function Tv(e,t,n){var r=An(e),o={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Hm(e))Vm(t,o);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var l=t.lastRenderedState,s=i(l,n);if(o.hasEagerState=!0,o.eagerState=s,Qt(s,l)){var a=t.interleaved;a===null?(o.next=o,oc(t)):(o.next=a.next,a.next=o),t.interleaved=o;return}}catch{}finally{}n=bm(e,t,o,r),n!==null&&(o=tt(),Gt(n,e,r,o),Km(n,t,r))}}function Hm(e){var t=e.alternate;return e===ke||t!==null&&t===ke}function Vm(e,t){Fo=Rl=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Km(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Hu(e,n)}}var _l={readContext:zt,useCallback:Qe,useContext:Qe,useEffect:Qe,useImperativeHandle:Qe,useInsertionEffect:Qe,useLayoutEffect:Qe,useMemo:Qe,useReducer:Qe,useRef:Qe,useState:Qe,useDebugValue:Qe,useDeferredValue:Qe,useTransition:Qe,useMutableSource:Qe,useSyncExternalStore:Qe,useId:Qe,unstable_isNewReconciler:!1},$v={readContext:zt,useCallback:function(e,t){return Zt().memoizedState=[e,t===void 0?null:t],e},useContext:zt,useEffect:Ud,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Zi(4194308,4,Am.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Zi(4194308,4,e,t)},useInsertionEffect:function(e,t){return Zi(4,2,e,t)},useMemo:function(e,t){var n=Zt();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Zt();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=_v.bind(null,ke,e),[r.memoizedState,e]},useRef:function(e){var t=Zt();return e={current:e},t.memoizedState=e},useState:Wd,useDebugValue:pc,useDeferredValue:function(e){return Zt().memoizedState=e},useTransition:function(){var e=Wd(!1),t=e[0];return e=Rv.bind(null,e[1]),Zt().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=ke,o=Zt();if(ye){if(n===void 0)throw Error($(407));n=n()}else{if(n=t(),Be===null)throw Error($(349));lr&30||$m(r,t,n)}o.memoizedState=n;var i={value:n,getSnapshot:t};return o.queue=i,Ud(Mm.bind(null,r,i,e),[e]),r.flags|=2048,ii(9,Om.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=Zt(),t=Be.identifierPrefix;if(ye){var n=pn,r=fn;n=(r&~(1<<32-Kt(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=ri++,0")&&(a=a.replace("",e.displayName)),a}while(1<=l&&0<=s);break}}}finally{Vs=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?Po(e):""}function lg(e){switch(e.tag){case 5:return Po(e.type);case 16:return Po("Lazy");case 13:return Po("Suspense");case 19:return Po("SuspenseList");case 0:case 2:case 15:return e=Ks(e.type,!1),e;case 11:return e=Ks(e.type.render,!1),e;case 1:return e=Ks(e.type,!0),e;default:return""}}function Oa(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case br:return"Fragment";case Er:return"Portal";case _a:return"Profiler";case ju:return"StrictMode";case Ta:return"Suspense";case $a:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case Pp:return(e.displayName||"Context")+".Consumer";case bp:return(e._context.displayName||"Context")+".Provider";case Du:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Bu:return t=e.displayName||null,t!==null?t:Oa(e.type)||"Memo";case bn:t=e._payload,e=e._init;try{return Oa(e(t))}catch{}}return null}function sg(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Oa(t);case 8:return t===ju?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function Dn(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function _p(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function ag(e){var t=_p(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var o=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(l){r=""+l,i.call(this,l)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(l){r=""+l},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function bi(e){e._valueTracker||(e._valueTracker=ag(e))}function Tp(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=_p(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function cl(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function Ma(e,t){var n=t.checked;return Ce({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function ad(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=Dn(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function $p(e,t){t=t.checked,t!=null&&Au(e,"checked",t,!1)}function Ia(e,t){$p(e,t);var n=Dn(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Na(e,t.type,n):t.hasOwnProperty("defaultValue")&&Na(e,t.type,Dn(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function ud(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function Na(e,t,n){(t!=="number"||cl(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var Ro=Array.isArray;function Ar(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o"+t.valueOf().toString()+"",t=Pi.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Vo(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Mo={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},ug=["Webkit","ms","Moz","O"];Object.keys(Mo).forEach(function(e){ug.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Mo[t]=Mo[e]})});function Np(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||Mo.hasOwnProperty(e)&&Mo[e]?(""+t).trim():t+"px"}function zp(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,o=Np(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}var cg=Ce({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Fa(e,t){if(t){if(cg[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error($(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error($(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error($(61))}if(t.style!=null&&typeof t.style!="object")throw Error($(62))}}function Aa(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var ja=null;function Wu(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Da=null,jr=null,Dr=null;function fd(e){if(e=mi(e)){if(typeof Da!="function")throw Error($(280));var t=e.stateNode;t&&(t=Kl(t),Da(e.stateNode,e.type,t))}}function Lp(e){jr?Dr?Dr.push(e):Dr=[e]:jr=e}function Fp(){if(jr){var e=jr,t=Dr;if(Dr=jr=null,fd(e),t)for(e=0;e>>=0,e===0?32:31-(wg(e)/kg|0)|0}var Ri=64,_i=4194304;function _o(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function ml(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,o=e.suspendedLanes,i=e.pingedLanes,l=n&268435455;if(l!==0){var s=l&~o;s!==0?r=_o(s):(i&=l,i!==0&&(r=_o(i)))}else l=n&~o,l!==0?r=_o(l):i!==0&&(r=_o(i));if(r===0)return 0;if(t!==0&&t!==r&&!(t&o)&&(o=r&-r,i=t&-t,o>=i||o===16&&(i&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function fi(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Kt(t),e[t]=n}function Pg(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=No),wd=" ",kd=!1;function rm(e,t){switch(e){case"keyup":return ev.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function om(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Pr=!1;function nv(e,t){switch(e){case"compositionend":return om(t);case"keypress":return t.which!==32?null:(kd=!0,wd);case"textInput":return e=t.data,e===wd&&kd?null:e;default:return null}}function rv(e,t){if(Pr)return e==="compositionend"||!Xu&&rm(e,t)?(e=tm(),Qi=Gu=$n=null,Pr=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=Pd(n)}}function am(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?am(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function um(){for(var e=window,t=cl();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=cl(e.document)}return t}function Yu(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function fv(e){var t=um(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&am(n.ownerDocument.documentElement,n)){if(r!==null&&Yu(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var o=n.textContent.length,i=Math.min(r.start,o);r=r.end===void 0?i:Math.min(r.end,o),!e.extend&&i>r&&(o=r,r=i,i=o),o=Rd(n,i);var l=Rd(n,r);o&&l&&(e.rangeCount!==1||e.anchorNode!==o.node||e.anchorOffset!==o.offset||e.focusNode!==l.node||e.focusOffset!==l.offset)&&(t=t.createRange(),t.setStart(o.node,o.offset),e.removeAllRanges(),i>r?(e.addRange(t),e.extend(l.node,l.offset)):(t.setEnd(l.node,l.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,Rr=null,Ka=null,Lo=null,Ga=!1;function _d(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Ga||Rr==null||Rr!==cl(r)||(r=Rr,"selectionStart"in r&&Yu(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Lo&&Yo(Lo,r)||(Lo=r,r=vl(Ka,"onSelect"),0$r||(e.current=Ja[$r],Ja[$r]=null,$r--)}function de(e,t){$r++,Ja[$r]=e.current,e.current=t}var Bn={},Ze=Hn(Bn),at=Hn(!1),ir=Bn;function Gr(e,t){var n=e.type.contextTypes;if(!n)return Bn;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o={},i;for(i in n)o[i]=t[i];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function ut(e){return e=e.childContextTypes,e!=null}function xl(){me(at),me(Ze)}function zd(e,t,n){if(Ze.current!==Bn)throw Error($(168));de(Ze,t),de(at,n)}function ym(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var o in r)if(!(o in t))throw Error($(108,sg(e)||"Unknown",o));return Ce({},n,r)}function Sl(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Bn,ir=Ze.current,de(Ze,e),de(at,at.current),!0}function Ld(e,t,n){var r=e.stateNode;if(!r)throw Error($(169));n?(e=ym(e,t,ir),r.__reactInternalMemoizedMergedChildContext=e,me(at),me(Ze),de(Ze,e)):me(at),de(at,n)}var dn=null,Gl=!1,la=!1;function xm(e){dn===null?dn=[e]:dn.push(e)}function Ev(e){Gl=!0,xm(e)}function Vn(){if(!la&&dn!==null){la=!0;var e=0,t=oe;try{var n=dn;for(oe=1;e>=l,o-=l,fn=1<<32-Kt(t)+o|n<R?(O=C,C=null):O=C.sibling;var T=m(p,C,d[R],y);if(T===null){C===null&&(C=O);break}e&&C&&T.alternate===null&&t(p,C),c=i(T,c,R),E===null?k=T:E.sibling=T,E=T,C=O}if(R===d.length)return n(p,C),ye&&Qn(p,R),k;if(C===null){for(;RR?(O=C,C=null):O=C.sibling;var j=m(p,C,T.value,y);if(j===null){C===null&&(C=O);break}e&&C&&j.alternate===null&&t(p,C),c=i(j,c,R),E===null?k=j:E.sibling=j,E=j,C=O}if(T.done)return n(p,C),ye&&Qn(p,R),k;if(C===null){for(;!T.done;R++,T=d.next())T=h(p,T.value,y),T!==null&&(c=i(T,c,R),E===null?k=T:E.sibling=T,E=T);return ye&&Qn(p,R),k}for(C=r(p,C);!T.done;R++,T=d.next())T=x(C,p,R,T.value,y),T!==null&&(e&&T.alternate!==null&&C.delete(T.key===null?R:T.key),c=i(T,c,R),E===null?k=T:E.sibling=T,E=T);return e&&C.forEach(function(D){return t(p,D)}),ye&&Qn(p,R),k}function b(p,c,d,y){if(typeof d=="object"&&d!==null&&d.type===br&&d.key===null&&(d=d.props.children),typeof d=="object"&&d!==null){switch(d.$$typeof){case Ei:e:{for(var k=d.key,E=c;E!==null;){if(E.key===k){if(k=d.type,k===br){if(E.tag===7){n(p,E.sibling),c=o(E,d.props.children),c.return=p,p=c;break e}}else if(E.elementType===k||typeof k=="object"&&k!==null&&k.$$typeof===bn&&jd(k)===E.type){n(p,E.sibling),c=o(E,d.props),c.ref=yo(p,E,d),c.return=p,p=c;break e}n(p,E);break}else t(p,E);E=E.sibling}d.type===br?(c=or(d.props.children,p.mode,y,d.key),c.return=p,p=c):(y=nl(d.type,d.key,d.props,null,p.mode,y),y.ref=yo(p,c,d),y.return=p,p=y)}return l(p);case Er:e:{for(E=d.key;c!==null;){if(c.key===E)if(c.tag===4&&c.stateNode.containerInfo===d.containerInfo&&c.stateNode.implementation===d.implementation){n(p,c.sibling),c=o(c,d.children||[]),c.return=p,p=c;break e}else{n(p,c);break}else t(p,c);c=c.sibling}c=ma(d,p.mode,y),c.return=p,p=c}return l(p);case bn:return E=d._init,b(p,c,E(d._payload),y)}if(Ro(d))return g(p,c,d,y);if(po(d))return v(p,c,d,y);zi(p,d)}return typeof d=="string"&&d!==""||typeof d=="number"?(d=""+d,c!==null&&c.tag===6?(n(p,c.sibling),c=o(c,d),c.return=p,p=c):(n(p,c),c=pa(d,p.mode,y),c.return=p,p=c),l(p)):n(p,c)}return b}var qr=Cm(!0),Em=Cm(!1),Cl=Hn(null),El=null,Ir=null,tc=null;function nc(){tc=Ir=El=null}function rc(e){var t=Cl.current;me(Cl),e._currentValue=t}function nu(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function Wr(e,t){El=e,tc=Ir=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(st=!0),e.firstContext=null)}function zt(e){var t=e._currentValue;if(tc!==e)if(e={context:e,memoizedValue:t,next:null},Ir===null){if(El===null)throw Error($(308));Ir=e,El.dependencies={lanes:0,firstContext:e}}else Ir=Ir.next=e;return t}var er=null;function oc(e){er===null?er=[e]:er.push(e)}function bm(e,t,n,r){var o=t.interleaved;return o===null?(n.next=n,oc(t)):(n.next=o.next,o.next=n),t.interleaved=n,vn(e,r)}function vn(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var Pn=!1;function ic(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Pm(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function mn(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Ln(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,J&2){var o=r.pending;return o===null?t.next=t:(t.next=o.next,o.next=t),r.pending=t,vn(e,n)}return o=r.interleaved,o===null?(t.next=t,oc(r)):(t.next=o.next,o.next=t),r.interleaved=t,vn(e,n)}function Xi(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Hu(e,n)}}function Dd(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var o=null,i=null;if(n=n.firstBaseUpdate,n!==null){do{var l={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};i===null?o=i=l:i=i.next=l,n=n.next}while(n!==null);i===null?o=i=t:i=i.next=t}else o=i=t;n={baseState:r.baseState,firstBaseUpdate:o,lastBaseUpdate:i,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function bl(e,t,n,r){var o=e.updateQueue;Pn=!1;var i=o.firstBaseUpdate,l=o.lastBaseUpdate,s=o.shared.pending;if(s!==null){o.shared.pending=null;var a=s,u=a.next;a.next=null,l===null?i=u:l.next=u,l=a;var f=e.alternate;f!==null&&(f=f.updateQueue,s=f.lastBaseUpdate,s!==l&&(s===null?f.firstBaseUpdate=u:s.next=u,f.lastBaseUpdate=a))}if(i!==null){var h=o.baseState;l=0,f=u=a=null,s=i;do{var m=s.lane,x=s.eventTime;if((r&m)===m){f!==null&&(f=f.next={eventTime:x,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var g=e,v=s;switch(m=t,x=n,v.tag){case 1:if(g=v.payload,typeof g=="function"){h=g.call(x,h,m);break e}h=g;break e;case 3:g.flags=g.flags&-65537|128;case 0:if(g=v.payload,m=typeof g=="function"?g.call(x,h,m):g,m==null)break e;h=Ce({},h,m);break e;case 2:Pn=!0}}s.callback!==null&&s.lane!==0&&(e.flags|=64,m=o.effects,m===null?o.effects=[s]:m.push(s))}else x={eventTime:x,lane:m,tag:s.tag,payload:s.payload,callback:s.callback,next:null},f===null?(u=f=x,a=h):f=f.next=x,l|=m;if(s=s.next,s===null){if(s=o.shared.pending,s===null)break;m=s,s=m.next,m.next=null,o.lastBaseUpdate=m,o.shared.pending=null}}while(!0);if(f===null&&(a=h),o.baseState=a,o.firstBaseUpdate=u,o.lastBaseUpdate=f,t=o.shared.interleaved,t!==null){o=t;do l|=o.lane,o=o.next;while(o!==t)}else i===null&&(o.shared.lanes=0);ar|=l,e.lanes=l,e.memoizedState=h}}function Bd(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=aa.transition;aa.transition={};try{e(!1),t()}finally{oe=n,aa.transition=r}}function Um(){return Lt().memoizedState}function _v(e,t,n){var r=An(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Hm(e))Vm(t,n);else if(n=bm(e,t,n,r),n!==null){var o=tt();Gt(n,e,r,o),Km(n,t,r)}}function Tv(e,t,n){var r=An(e),o={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Hm(e))Vm(t,o);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var l=t.lastRenderedState,s=i(l,n);if(o.hasEagerState=!0,o.eagerState=s,Qt(s,l)){var a=t.interleaved;a===null?(o.next=o,oc(t)):(o.next=a.next,a.next=o),t.interleaved=o;return}}catch{}finally{}n=bm(e,t,o,r),n!==null&&(o=tt(),Gt(n,e,r,o),Km(n,t,r))}}function Hm(e){var t=e.alternate;return e===ke||t!==null&&t===ke}function Vm(e,t){Fo=Rl=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Km(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Hu(e,n)}}var _l={readContext:zt,useCallback:Qe,useContext:Qe,useEffect:Qe,useImperativeHandle:Qe,useInsertionEffect:Qe,useLayoutEffect:Qe,useMemo:Qe,useReducer:Qe,useRef:Qe,useState:Qe,useDebugValue:Qe,useDeferredValue:Qe,useTransition:Qe,useMutableSource:Qe,useSyncExternalStore:Qe,useId:Qe,unstable_isNewReconciler:!1},$v={readContext:zt,useCallback:function(e,t){return Zt().memoizedState=[e,t===void 0?null:t],e},useContext:zt,useEffect:Ud,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Zi(4194308,4,Am.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Zi(4194308,4,e,t)},useInsertionEffect:function(e,t){return Zi(4,2,e,t)},useMemo:function(e,t){var n=Zt();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Zt();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=_v.bind(null,ke,e),[r.memoizedState,e]},useRef:function(e){var t=Zt();return e={current:e},t.memoizedState=e},useState:Wd,useDebugValue:pc,useDeferredValue:function(e){return Zt().memoizedState=e},useTransition:function(){var e=Wd(!1),t=e[0];return e=Rv.bind(null,e[1]),Zt().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=ke,o=Zt();if(ye){if(n===void 0)throw Error($(407));n=n()}else{if(n=t(),Be===null)throw Error($(349));sr&30||$m(r,t,n)}o.memoizedState=n;var i={value:n,getSnapshot:t};return o.queue=i,Ud(Mm.bind(null,r,i,e),[e]),r.flags|=2048,ii(9,Om.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=Zt(),t=Be.identifierPrefix;if(ye){var n=pn,r=fn;n=(r&~(1<<32-Kt(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=ri++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=l.createElement(n,{is:r.is}):(e=l.createElement(n),n==="select"&&(l=e,r.multiple?l.multiple=!0:r.size&&(l.size=r.size))):e=l.createElementNS(e,n),e[tn]=t,e[ei]=r,nh(e,t,!1,!1),t.stateNode=e;e:{switch(l=Aa(n,r),n){case"dialog":pe("cancel",e),pe("close",e),o=r;break;case"iframe":case"object":case"embed":pe("load",e),o=r;break;case"video":case"audio":for(o=0;o<_o.length;o++)pe(_o[o],e);o=r;break;case"source":pe("error",e),o=r;break;case"img":case"image":case"link":pe("error",e),pe("load",e),o=r;break;case"details":pe("toggle",e),o=r;break;case"input":ad(e,r),o=Ma(e,r),pe("invalid",e);break;case"option":o=r;break;case"select":e._wrapperState={wasMultiple:!!r.multiple},o=Ce({},r,{value:void 0}),pe("invalid",e);break;case"textarea":cd(e,r),o=za(e,r),pe("invalid",e);break;default:o=r}Fa(n,o),s=o;for(i in s)if(s.hasOwnProperty(i)){var a=s[i];i==="style"?zp(e,a):i==="dangerouslySetInnerHTML"?(a=a?a.__html:void 0,a!=null&&Ip(e,a)):i==="children"?typeof a=="string"?(n!=="textarea"||a!=="")&&Vo(e,a):typeof a=="number"&&Vo(e,""+a):i!=="suppressContentEditableWarning"&&i!=="suppressHydrationWarning"&&i!=="autoFocus"&&(Ho.hasOwnProperty(i)?a!=null&&i==="onScroll"&&pe("scroll",e):a!=null&&Au(e,i,a,l))}switch(n){case"input":bi(e),ud(e,r,!1);break;case"textarea":bi(e),dd(e);break;case"option":r.value!=null&&e.setAttribute("value",""+Dn(r.value));break;case"select":e.multiple=!!r.multiple,i=r.value,i!=null?Fr(e,!!r.multiple,i,!1):r.defaultValue!=null&&Fr(e,!!r.multiple,r.defaultValue,!0);break;default:typeof o.onClick=="function"&&(e.onclick=yl)}switch(n){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}}r&&(t.flags|=4)}t.ref!==null&&(t.flags|=512,t.flags|=2097152)}return qe(t),null;case 6:if(e&&t.stateNode!=null)oh(e,t,e.memoizedProps,r);else{if(typeof r!="string"&&t.stateNode===null)throw Error($(166));if(n=er(ni.current),er(rn.current),Ni(t)){if(r=t.stateNode,n=t.memoizedProps,r[tn]=t,(i=r.nodeValue!==n)&&(e=gt,e!==null))switch(e.tag){case 3:Ii(r.nodeValue,n,(e.mode&1)!==0);break;case 5:e.memoizedProps.suppressHydrationWarning!==!0&&Ii(r.nodeValue,n,(e.mode&1)!==0)}i&&(t.flags|=4)}else r=(n.nodeType===9?n:n.ownerDocument).createTextNode(r),r[tn]=t,t.stateNode=r}return qe(t),null;case 13:if(me(we),r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(ye&&ht!==null&&t.mode&1&&!(t.flags&128))km(),Gr(),t.flags|=98560,i=!1;else if(i=Ni(t),r!==null&&r.dehydrated!==null){if(e===null){if(!i)throw Error($(318));if(i=t.memoizedState,i=i!==null?i.dehydrated:null,!i)throw Error($(317));i[tn]=t}else Gr(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;qe(t),i=!1}else Ht!==null&&(yu(Ht),Ht=null),i=!0;if(!i)return t.flags&65536?t:null}return t.flags&128?(t.lanes=n,t):(r=r!==null,r!==(e!==null&&e.memoizedState!==null)&&r&&(t.child.flags|=8192,t.mode&1&&(e===null||we.current&1?je===0&&(je=3):Sc())),t.updateQueue!==null&&(t.flags|=4),qe(t),null);case 4:return qr(),cu(e,t),e===null&&Zo(t.stateNode.containerInfo),qe(t),null;case 10:return rc(t.type._context),qe(t),null;case 17:return ut(t.type)&&xl(),qe(t),null;case 19:if(me(we),i=t.memoizedState,i===null)return qe(t),null;if(r=(t.flags&128)!==0,l=i.rendering,l===null)if(r)yo(i,!1);else{if(je!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(l=Pl(e),l!==null){for(t.flags|=128,yo(i,!1),r=l.updateQueue,r!==null&&(t.updateQueue=r,t.flags|=4),t.subtreeFlags=0,r=n,n=t.child;n!==null;)i=n,e=r,i.flags&=14680066,l=i.alternate,l===null?(i.childLanes=0,i.lanes=e,i.child=null,i.subtreeFlags=0,i.memoizedProps=null,i.memoizedState=null,i.updateQueue=null,i.dependencies=null,i.stateNode=null):(i.childLanes=l.childLanes,i.lanes=l.lanes,i.child=l.child,i.subtreeFlags=0,i.deletions=null,i.memoizedProps=l.memoizedProps,i.memoizedState=l.memoizedState,i.updateQueue=l.updateQueue,i.type=l.type,e=l.dependencies,i.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return de(we,we.current&1|2),t.child}e=e.sibling}i.tail!==null&&Oe()>Yr&&(t.flags|=128,r=!0,yo(i,!1),t.lanes=4194304)}else{if(!r)if(e=Pl(l),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),yo(i,!0),i.tail===null&&i.tailMode==="hidden"&&!l.alternate&&!ye)return qe(t),null}else 2*Oe()-i.renderingStartTime>Yr&&n!==1073741824&&(t.flags|=128,r=!0,yo(i,!1),t.lanes=4194304);i.isBackwards?(l.sibling=t.child,t.child=l):(n=i.last,n!==null?n.sibling=l:t.child=l,i.last=l)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Oe(),t.sibling=null,n=we.current,de(we,r?n&1|2:n&1),t):(qe(t),null);case 22:case 23:return xc(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?pt&1073741824&&(qe(t),t.subtreeFlags&6&&(t.flags|=8192)):qe(t),null;case 24:return null;case 25:return null}throw Error($(156,t.tag))}function Av(e,t){switch(Ju(t),t.tag){case 1:return ut(t.type)&&xl(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return qr(),me(at),me(Ze),ac(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return sc(t),null;case 13:if(me(we),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error($(340));Gr()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return me(we),null;case 4:return qr(),null;case 10:return rc(t.type._context),null;case 22:case 23:return xc(),null;case 24:return null;default:return null}}var Fi=!1,Ye=!1,jv=typeof WeakSet=="function"?WeakSet:Set,L=null;function Ir(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){Re(e,t,r)}else n.current=null}function du(e,t,n){try{n()}catch(r){Re(e,t,r)}}var ef=!1;function Dv(e,t){if(Qa=hl,e=um(),Yu(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var o=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch{n=null;break e}var l=0,s=-1,a=-1,u=0,f=0,h=e,m=null;t:for(;;){for(var x;h!==n||o!==0&&h.nodeType!==3||(s=l+o),h!==i||r!==0&&h.nodeType!==3||(a=l+r),h.nodeType===3&&(l+=h.nodeValue.length),(x=h.firstChild)!==null;)m=h,h=x;for(;;){if(h===e)break t;if(m===n&&++u===o&&(s=l),m===i&&++f===r&&(a=l),(x=h.nextSibling)!==null)break;h=m,m=h.parentNode}h=x}n=s===-1||a===-1?null:{start:s,end:a}}else n=null}n=n||{start:0,end:0}}else n=null;for(qa={focusedElem:e,selectionRange:n},hl=!1,L=t;L!==null;)if(t=L,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,L=e;else for(;L!==null;){t=L;try{var g=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(g!==null){var v=g.memoizedProps,b=g.memoizedState,p=t.stateNode,c=p.getSnapshotBeforeUpdate(t.elementType===t.type?v:Wt(t.type,v),b);p.__reactInternalSnapshotBeforeUpdate=c}break;case 3:var d=t.stateNode.containerInfo;d.nodeType===1?d.textContent="":d.nodeType===9&&d.documentElement&&d.removeChild(d.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error($(163))}}catch(y){Re(t,t.return,y)}if(e=t.sibling,e!==null){e.return=t.return,L=e;break}L=t.return}return g=ef,ef=!1,g}function Ao(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var o=r=r.next;do{if((o.tag&e)===e){var i=o.destroy;o.destroy=void 0,i!==void 0&&du(t,n,i)}o=o.next}while(o!==r)}}function Xl(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function fu(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function ih(e){var t=e.alternate;t!==null&&(e.alternate=null,ih(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[tn],delete t[ei],delete t[Za],delete t[kv],delete t[Cv])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function lh(e){return e.tag===5||e.tag===3||e.tag===4}function tf(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||lh(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function pu(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=yl));else if(r!==4&&(e=e.child,e!==null))for(pu(e,t,n),e=e.sibling;e!==null;)pu(e,t,n),e=e.sibling}function mu(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(mu(e,t,n),e=e.sibling;e!==null;)mu(e,t,n),e=e.sibling}var He=null,Ut=!1;function Cn(e,t,n){for(n=n.child;n!==null;)sh(e,t,n),n=n.sibling}function sh(e,t,n){if(nn&&typeof nn.onCommitFiberUnmount=="function")try{nn.onCommitFiberUnmount(Wl,n)}catch{}switch(n.tag){case 5:Ye||Ir(n,t);case 6:var r=He,o=Ut;He=null,Cn(e,t,n),He=r,Ut=o,He!==null&&(Ut?(e=He,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):He.removeChild(n.stateNode));break;case 18:He!==null&&(Ut?(e=He,n=n.stateNode,e.nodeType===8?ia(e.parentNode,n):e.nodeType===1&&ia(e,n),qo(e)):ia(He,n.stateNode));break;case 4:r=He,o=Ut,He=n.stateNode.containerInfo,Ut=!0,Cn(e,t,n),He=r,Ut=o;break;case 0:case 11:case 14:case 15:if(!Ye&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){o=r=r.next;do{var i=o,l=i.destroy;i=i.tag,l!==void 0&&(i&2||i&4)&&du(n,t,l),o=o.next}while(o!==r)}Cn(e,t,n);break;case 1:if(!Ye&&(Ir(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(s){Re(n,t,s)}Cn(e,t,n);break;case 21:Cn(e,t,n);break;case 22:n.mode&1?(Ye=(r=Ye)||n.memoizedState!==null,Cn(e,t,n),Ye=r):Cn(e,t,n);break;default:Cn(e,t,n)}}function nf(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new jv),t.forEach(function(r){var o=qv.bind(null,e,r);n.has(r)||(n.add(r),r.then(o,o))})}}function Bt(e,t){var n=t.deletions;if(n!==null)for(var r=0;ro&&(o=l),r&=~i}if(r=o,r=Oe()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*Wv(r/1960))-r,10e?16:e,On===null)var r=!1;else{if(e=On,On=null,Ol=0,J&6)throw Error($(331));var o=J;for(J|=4,L=e.current;L!==null;){var i=L,l=i.child;if(L.flags&16){var s=i.deletions;if(s!==null){for(var a=0;aOe()-vc?nr(e,0):gc|=n),ct(e,t)}function hh(e,t){t===0&&(e.mode&1?(t=_i,_i<<=1,!(_i&130023424)&&(_i=4194304)):t=1);var n=tt();e=vn(e,t),e!==null&&(fi(e,t,n),ct(e,n))}function Qv(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),hh(e,n)}function qv(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,o=e.memoizedState;o!==null&&(n=o.retryLane);break;case 19:r=e.stateNode;break;default:throw Error($(314))}r!==null&&r.delete(t),hh(e,n)}var gh;gh=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||at.current)st=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return st=!1,Lv(e,t,n);st=!!(e.flags&131072)}else st=!1,ye&&t.flags&1048576&&Sm(t,kl,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Ji(e,t),e=t.pendingProps;var o=Kr(t,Ze.current);Br(t,n),o=cc(null,t,r,e,o,n);var i=dc();return t.flags|=1,typeof o=="object"&&o!==null&&typeof o.render=="function"&&o.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,ut(r)?(i=!0,Sl(t)):i=!1,t.memoizedState=o.state!==null&&o.state!==void 0?o.state:null,ic(t),o.updater=ql,t.stateNode=o,o._reactInternals=t,ou(t,r,e,n),t=su(null,t,r,!0,i,n)):(t.tag=0,ye&&i&&Zu(t),et(null,t,o,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Ji(e,t),e=t.pendingProps,o=r._init,r=o(r._payload),t.type=r,o=t.tag=Yv(r),e=Wt(r,e),o){case 0:t=lu(null,t,r,e,n);break e;case 1:t=Yd(null,t,r,e,n);break e;case 11:t=qd(null,t,r,e,n);break e;case 14:t=Xd(null,t,r,Wt(r.type,e),n);break e}throw Error($(306,r,""))}return t;case 0:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Wt(r,o),lu(e,t,r,o,n);case 1:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Wt(r,o),Yd(e,t,r,o,n);case 3:e:{if(Jm(t),e===null)throw Error($(387));r=t.pendingProps,i=t.memoizedState,o=i.element,Pm(e,t),bl(t,r,null,n);var l=t.memoizedState;if(r=l.element,i.isDehydrated)if(i={element:r,isDehydrated:!1,cache:l.cache,pendingSuspenseBoundaries:l.pendingSuspenseBoundaries,transitions:l.transitions},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){o=Xr(Error($(423)),t),t=Zd(e,t,r,n,o);break e}else if(r!==o){o=Xr(Error($(424)),t),t=Zd(e,t,r,n,o);break e}else for(ht=zn(t.stateNode.containerInfo.firstChild),gt=t,ye=!0,Ht=null,n=Em(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Gr(),r===o){t=yn(e,t,n);break e}et(e,t,r,n)}t=t.child}return t;case 5:return Rm(t),e===null&&tu(t),r=t.type,o=t.pendingProps,i=e!==null?e.memoizedProps:null,l=o.children,Xa(r,o)?l=null:i!==null&&Xa(r,i)&&(t.flags|=32),Zm(e,t),et(e,t,l,n),t.child;case 6:return e===null&&tu(t),null;case 13:return eh(e,t,n);case 4:return lc(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Qr(t,null,r,n):et(e,t,r,n),t.child;case 11:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Wt(r,o),qd(e,t,r,o,n);case 7:return et(e,t,t.pendingProps,n),t.child;case 8:return et(e,t,t.pendingProps.children,n),t.child;case 12:return et(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,o=t.pendingProps,i=t.memoizedProps,l=o.value,de(Cl,r._currentValue),r._currentValue=l,i!==null)if(Qt(i.value,l)){if(i.children===o.children&&!at.current){t=yn(e,t,n);break e}}else for(i=t.child,i!==null&&(i.return=t);i!==null;){var s=i.dependencies;if(s!==null){l=i.child;for(var a=s.firstContext;a!==null;){if(a.context===r){if(i.tag===1){a=mn(-1,n&-n),a.tag=2;var u=i.updateQueue;if(u!==null){u=u.shared;var f=u.pending;f===null?a.next=a:(a.next=f.next,f.next=a),u.pending=a}}i.lanes|=n,a=i.alternate,a!==null&&(a.lanes|=n),nu(i.return,n,t),s.lanes|=n;break}a=a.next}}else if(i.tag===10)l=i.type===t.type?null:i.child;else if(i.tag===18){if(l=i.return,l===null)throw Error($(341));l.lanes|=n,s=l.alternate,s!==null&&(s.lanes|=n),nu(l,n,t),l=i.sibling}else l=i.child;if(l!==null)l.return=i;else for(l=i;l!==null;){if(l===t){l=null;break}if(i=l.sibling,i!==null){i.return=l.return,l=i;break}l=l.return}i=l}et(e,t,o.children,n),t=t.child}return t;case 9:return o=t.type,r=t.pendingProps.children,Br(t,n),o=zt(o),r=r(o),t.flags|=1,et(e,t,r,n),t.child;case 14:return r=t.type,o=Wt(r,t.pendingProps),o=Wt(r.type,o),Xd(e,t,r,o,n);case 15:return Xm(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Wt(r,o),Ji(e,t),t.tag=1,ut(r)?(e=!0,Sl(t)):e=!1,Br(t,n),Gm(t,r,o),ou(t,r,o,n),su(null,t,r,!0,e,n);case 19:return th(e,t,n);case 22:return Ym(e,t,n)}throw Error($(156,t.tag))};function vh(e,t){return Hp(e,t)}function Xv(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function It(e,t,n,r){return new Xv(e,t,n,r)}function wc(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Yv(e){if(typeof e=="function")return wc(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Du)return 11;if(e===Bu)return 14}return 2}function jn(e,t){var n=e.alternate;return n===null?(n=It(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function nl(e,t,n,r,o,i){var l=2;if(r=e,typeof e=="function")wc(e)&&(l=1);else if(typeof e=="string")l=5;else e:switch(e){case Er:return rr(n.children,o,i,t);case ju:l=8,o|=8;break;case _a:return e=It(12,n,t,o|2),e.elementType=_a,e.lanes=i,e;case Ta:return e=It(13,n,t,o),e.elementType=Ta,e.lanes=i,e;case $a:return e=It(19,n,t,o),e.elementType=$a,e.lanes=i,e;case Rp:return Zl(n,o,i,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case bp:l=10;break e;case Pp:l=9;break e;case Du:l=11;break e;case Bu:l=14;break e;case bn:l=16,r=null;break e}throw Error($(130,e==null?e:typeof e,""))}return t=It(l,n,t,o),t.elementType=e,t.type=r,t.lanes=i,t}function rr(e,t,n,r){return e=It(7,e,r,t),e.lanes=n,e}function Zl(e,t,n,r){return e=It(22,e,r,t),e.elementType=Rp,e.lanes=n,e.stateNode={isHidden:!1},e}function pa(e,t,n){return e=It(6,e,null,t),e.lanes=n,e}function ma(e,t,n){return t=It(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Zv(e,t,n,r,o){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Qs(0),this.expirationTimes=Qs(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Qs(0),this.identifierPrefix=r,this.onRecoverableError=o,this.mutableSourceEagerHydrationData=null}function kc(e,t,n,r,o,i,l,s,a){return e=new Zv(e,t,n,s,a),t===1?(t=1,i===!0&&(t|=8)):t=0,i=It(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},ic(i),e}function Jv(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(wh)}catch(e){console.error(e)}}wh(),wp.exports=wt;var Pc=wp.exports;const Di=up(Pc);var df=Pc;Pa.createRoot=df.createRoot,Pa.hydrateRoot=df.hydrateRoot;function V(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function w(){return w=Object.assign?Object.assign.bind():function(e){for(var t=1;t{if(r.toString().match(/^(components|slots)$/))n[r]=w({},e[r],n[r]);else if(r.toString().match(/^(componentsProps|slotProps)$/)){const o=e[r]||{},i=t[r];n[r]={},!i||!Object.keys(i)?n[r]=o:!o||!Object.keys(o)?n[r]=i:(n[r]=w({},i),Object.keys(o).forEach(l=>{n[r][l]=Rc(o[l],i[l])}))}else n[r]===void 0&&(n[r]=e[r])}),n}function Me(e,t,n=void 0){const r={};return Object.keys(e).forEach(o=>{r[o]=e[o].reduce((i,l)=>{if(l){const s=t(l);s!==""&&i.push(s),n&&n[l]&&i.push(n[l])}return i},[]).join(" ")}),r}var Ie={},Ch={exports:{}};(function(e){function t(n){return n&&n.__esModule?n:{default:n}}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports})(Ch);var Eh=Ch.exports;function ur(e){let t="https://mui.com/production-error/?code="+e;for(let n=1;n=6?2:1}}`,"g");let n=e.match(t);return n&&n[0].length===1&&(n=n.map(r=>r+r)),n?`rgb${n.length===4?"a":""}(${n.map((r,o)=>o<3?parseInt(r,16):Math.round(parseInt(r,16)/255*1e3)/1e3).join(", ")})`:""}function py(e){const t=e.toString(16);return t.length===1?`0${t}`:t}function Ft(e){if(e.type)return e;if(e.charAt(0)==="#")return Ft(Ph(e));const t=e.indexOf("("),n=e.substring(0,t);if(["rgb","rgba","hsl","hsla","color"].indexOf(n)===-1)throw new Error((0,ff.default)(9,e));let r=e.substring(t+1,e.length-1),o;if(n==="color"){if(r=r.split(" "),o=r.shift(),r.length===4&&r[3].charAt(0)==="/"&&(r[3]=r[3].slice(1)),["srgb","display-p3","a98-rgb","prophoto-rgb","rec-2020"].indexOf(o)===-1)throw new Error((0,ff.default)(10,o))}else r=r.split(",");return r=r.map(i=>parseFloat(i)),{type:n,values:r,colorSpace:o}}const Rh=e=>{const t=Ft(e);return t.values.slice(0,3).map((n,r)=>t.type.indexOf("hsl")!==-1&&r!==0?`${n}%`:n).join(" ")};Ie.colorChannel=Rh;const my=(e,t)=>{try{return Rh(e)}catch{return e}};Ie.private_safeColorChannel=my;function oo(e){const{type:t,colorSpace:n}=e;let{values:r}=e;return t.indexOf("rgb")!==-1?r=r.map((o,i)=>i<3?parseInt(o,10):o):t.indexOf("hsl")!==-1&&(r[1]=`${r[1]}%`,r[2]=`${r[2]}%`),t.indexOf("color")!==-1?r=`${n} ${r.join(" ")}`:r=`${r.join(", ")}`,`${t}(${r})`}function hy(e){if(e.indexOf("#")===0)return e;const{values:t}=Ft(e);return`#${t.map((n,r)=>py(r===3?Math.round(255*n):n)).join("")}`}function _h(e){e=Ft(e);const{values:t}=e,n=t[0],r=t[1]/100,o=t[2]/100,i=r*Math.min(o,1-o),l=(u,f=(u+n/30)%12)=>o-i*Math.max(Math.min(f-3,9-f,1),-1);let s="rgb";const a=[Math.round(l(0)*255),Math.round(l(8)*255),Math.round(l(4)*255)];return e.type==="hsla"&&(s+="a",a.push(t[3])),oo({type:s,values:a})}function Nl(e){e=Ft(e);let t=e.type==="hsl"||e.type==="hsla"?Ft(_h(e)).values:e.values;return t=t.map(n=>(e.type!=="color"&&(n/=255),n<=.03928?n/12.92:((n+.055)/1.055)**2.4)),Number((.2126*t[0]+.7152*t[1]+.0722*t[2]).toFixed(3))}function gy(e,t){const n=Nl(e),r=Nl(t);return(Math.max(n,r)+.05)/(Math.min(n,r)+.05)}function Th(e,t){return e=Ft(e),t=_c(t),(e.type==="rgb"||e.type==="hsl")&&(e.type+="a"),e.type==="color"?e.values[3]=`/${t}`:e.values[3]=t,oo(e)}function vy(e,t,n){try{return Th(e,t)}catch{return e}}function Tc(e,t){if(e=Ft(e),t=_c(t),e.type.indexOf("hsl")!==-1)e.values[2]*=1-t;else if(e.type.indexOf("rgb")!==-1||e.type.indexOf("color")!==-1)for(let n=0;n<3;n+=1)e.values[n]*=1-t;return oo(e)}function yy(e,t,n){try{return Tc(e,t)}catch{return e}}function $c(e,t){if(e=Ft(e),t=_c(t),e.type.indexOf("hsl")!==-1)e.values[2]+=(100-e.values[2])*t;else if(e.type.indexOf("rgb")!==-1)for(let n=0;n<3;n+=1)e.values[n]+=(255-e.values[n])*t;else if(e.type.indexOf("color")!==-1)for(let n=0;n<3;n+=1)e.values[n]+=(1-e.values[n])*t;return oo(e)}function xy(e,t,n){try{return $c(e,t)}catch{return e}}function $h(e,t=.15){return Nl(e)>.5?Tc(e,t):$c(e,t)}function Sy(e,t,n){try{return $h(e,t)}catch{return e}}function wy(e,t,n,r=1){const o=(a,u)=>Math.round((a**(1/r)*(1-n)+u**(1/r)*n)**r),i=Ft(e),l=Ft(t),s=[o(i.values[0],l.values[0]),o(i.values[1],l.values[1]),o(i.values[2],l.values[2])];return oo({type:"rgb",values:s})}var gi={},ha={exports:{}},pf;function Oh(){return pf||(pf=1,function(e){function t(){return e.exports=t=Object.assign?Object.assign.bind():function(n){for(var r=1;r=0)continue;o[i]=n[i]}return o}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports}(ga)),ga.exports}function Mh(e){var t=Object.create(null);return function(n){return t[n]===void 0&&(t[n]=e(n)),t[n]}}var Cy=/^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/,Ey=Mh(function(e){return Cy.test(e)||e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)<91});function by(e){if(e.sheet)return e.sheet;for(var t=0;t0?Ve(io,--dt):0,Zr--,ze===10&&(Zr=1,os--),ze}function vt(){return ze=dt2||ai(ze)>3?"":" "}function Ay(e,t){for(;--t&&vt()&&!(ze<48||ze>102||ze>57&&ze<65||ze>70&&ze<97););return vi(e,rl()+(t<6&&on()==32&&vt()==32))}function Su(e){for(;vt();)switch(ze){case e:return dt;case 34:case 39:e!==34&&e!==39&&Su(ze);break;case 40:e===41&&Su(e);break;case 92:vt();break}return dt}function jy(e,t){for(;vt()&&e+ze!==57;)if(e+ze===84&&on()===47)break;return"/*"+vi(t,dt-1)+"*"+rs(e===47?e:vt())}function Dy(e){for(;!ai(on());)vt();return vi(e,dt)}function By(e){return Ah(il("",null,null,null,[""],e=Fh(e),0,[0],e))}function il(e,t,n,r,o,i,l,s,a){for(var u=0,f=0,h=l,m=0,x=0,g=0,v=1,b=1,p=1,c=0,d="",y=o,k=i,E=r,C=d;b;)switch(g=c,c=vt()){case 40:if(g!=108&&Ve(C,h-1)==58){xu(C+=ne(ol(c),"&","&\f"),"&\f")!=-1&&(p=-1);break}case 34:case 39:case 91:C+=ol(c);break;case 9:case 10:case 13:case 32:C+=Fy(g);break;case 92:C+=Ay(rl()-1,7);continue;case 47:switch(on()){case 42:case 47:Bi(Wy(jy(vt(),rl()),t,n),a);break;default:C+="/"}break;case 123*v:s[u++]=Jt(C)*p;case 125*v:case 59:case 0:switch(c){case 0:case 125:b=0;case 59+f:p==-1&&(C=ne(C,/\f/g,"")),x>0&&Jt(C)-h&&Bi(x>32?gf(C+";",r,n,h-1):gf(ne(C," ","")+";",r,n,h-2),a);break;case 59:C+=";";default:if(Bi(E=hf(C,t,n,u,f,o,s,d,y=[],k=[],h),i),c===123)if(f===0)il(C,t,E,E,y,i,h,s,k);else switch(m===99&&Ve(C,3)===110?100:m){case 100:case 108:case 109:case 115:il(e,E,E,r&&Bi(hf(e,E,E,0,0,o,s,d,o,y=[],h),k),o,k,h,s,r?y:k);break;default:il(C,E,E,E,[""],k,0,s,k)}}u=f=x=0,v=p=1,d=C="",h=l;break;case 58:h=1+Jt(C),x=g;default:if(v<1){if(c==123)--v;else if(c==125&&v++==0&&Ly()==125)continue}switch(C+=rs(c),c*v){case 38:p=f>0?1:(C+="\f",-1);break;case 44:s[u++]=(Jt(C)-1)*p,p=1;break;case 64:on()===45&&(C+=ol(vt())),m=on(),f=h=Jt(d=C+=Dy(rl())),c++;break;case 45:g===45&&Jt(C)==2&&(v=0)}}return i}function hf(e,t,n,r,o,i,l,s,a,u,f){for(var h=o-1,m=o===0?i:[""],x=Ic(m),g=0,v=0,b=0;g0?m[p]+" "+c:ne(c,/&\f/g,m[p])))&&(a[b++]=d);return is(e,t,n,o===0?Oc:s,a,u,f)}function Wy(e,t,n){return is(e,t,n,Ih,rs(zy()),si(e,2,-2),0)}function gf(e,t,n,r){return is(e,t,n,Mc,si(e,0,r),si(e,r+1,-1),r)}function Ur(e,t){for(var n="",r=Ic(e),o=0;o6)switch(Ve(e,t+1)){case 109:if(Ve(e,t+4)!==45)break;case 102:return ne(e,/(.+:)(.+)-([^]+)/,"$1"+te+"$2-$3$1"+zl+(Ve(e,t+3)==108?"$3":"$2-$3"))+e;case 115:return~xu(e,"stretch")?jh(ne(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(Ve(e,t+1)!==115)break;case 6444:switch(Ve(e,Jt(e)-3-(~xu(e,"!important")&&10))){case 107:return ne(e,":",":"+te)+e;case 101:return ne(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+te+(Ve(e,14)===45?"inline-":"")+"box$3$1"+te+"$2$3$1"+Xe+"$2box$3")+e}break;case 5936:switch(Ve(e,t+11)){case 114:return te+e+Xe+ne(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return te+e+Xe+ne(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return te+e+Xe+ne(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return te+e+Xe+e+e}return e}var Yy=function(t,n,r,o){if(t.length>-1&&!t.return)switch(t.type){case Mc:t.return=jh(t.value,t.length);break;case Nh:return Ur([So(t,{value:ne(t.value,"@","@"+te)})],o);case Oc:if(t.length)return Ny(t.props,function(i){switch(Iy(i,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return Ur([So(t,{props:[ne(i,/:(read-\w+)/,":"+zl+"$1")]})],o);case"::placeholder":return Ur([So(t,{props:[ne(i,/:(plac\w+)/,":"+te+"input-$1")]}),So(t,{props:[ne(i,/:(plac\w+)/,":"+zl+"$1")]}),So(t,{props:[ne(i,/:(plac\w+)/,Xe+"input-$1")]})],o)}return""})}},Zy=[Yy],Dh=function(t){var n=t.key;if(n==="css"){var r=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(r,function(v){var b=v.getAttribute("data-emotion");b.indexOf(" ")!==-1&&(document.head.appendChild(v),v.setAttribute("data-s",""))})}var o=t.stylisPlugins||Zy,i={},l,s=[];l=t.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+n+' "]'),function(v){for(var b=v.getAttribute("data-emotion").split(" "),p=1;p<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=l.createElement(n,{is:r.is}):(e=l.createElement(n),n==="select"&&(l=e,r.multiple?l.multiple=!0:r.size&&(l.size=r.size))):e=l.createElementNS(e,n),e[tn]=t,e[ei]=r,nh(e,t,!1,!1),t.stateNode=e;e:{switch(l=Aa(n,r),n){case"dialog":pe("cancel",e),pe("close",e),o=r;break;case"iframe":case"object":case"embed":pe("load",e),o=r;break;case"video":case"audio":for(o=0;oZr&&(t.flags|=128,r=!0,xo(i,!1),t.lanes=4194304)}else{if(!r)if(e=Pl(l),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),xo(i,!0),i.tail===null&&i.tailMode==="hidden"&&!l.alternate&&!ye)return qe(t),null}else 2*Oe()-i.renderingStartTime>Zr&&n!==1073741824&&(t.flags|=128,r=!0,xo(i,!1),t.lanes=4194304);i.isBackwards?(l.sibling=t.child,t.child=l):(n=i.last,n!==null?n.sibling=l:t.child=l,i.last=l)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Oe(),t.sibling=null,n=we.current,de(we,r?n&1|2:n&1),t):(qe(t),null);case 22:case 23:return xc(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?pt&1073741824&&(qe(t),t.subtreeFlags&6&&(t.flags|=8192)):qe(t),null;case 24:return null;case 25:return null}throw Error($(156,t.tag))}function Av(e,t){switch(Ju(t),t.tag){case 1:return ut(t.type)&&xl(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Xr(),me(at),me(Ze),ac(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return sc(t),null;case 13:if(me(we),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error($(340));Qr()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return me(we),null;case 4:return Xr(),null;case 10:return rc(t.type._context),null;case 22:case 23:return xc(),null;case 24:return null;default:return null}}var Fi=!1,Ye=!1,jv=typeof WeakSet=="function"?WeakSet:Set,L=null;function Nr(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){Re(e,t,r)}else n.current=null}function du(e,t,n){try{n()}catch(r){Re(e,t,r)}}var ef=!1;function Dv(e,t){if(Qa=hl,e=um(),Yu(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var o=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch{n=null;break e}var l=0,s=-1,a=-1,u=0,f=0,h=e,m=null;t:for(;;){for(var x;h!==n||o!==0&&h.nodeType!==3||(s=l+o),h!==i||r!==0&&h.nodeType!==3||(a=l+r),h.nodeType===3&&(l+=h.nodeValue.length),(x=h.firstChild)!==null;)m=h,h=x;for(;;){if(h===e)break t;if(m===n&&++u===o&&(s=l),m===i&&++f===r&&(a=l),(x=h.nextSibling)!==null)break;h=m,m=h.parentNode}h=x}n=s===-1||a===-1?null:{start:s,end:a}}else n=null}n=n||{start:0,end:0}}else n=null;for(qa={focusedElem:e,selectionRange:n},hl=!1,L=t;L!==null;)if(t=L,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,L=e;else for(;L!==null;){t=L;try{var g=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(g!==null){var v=g.memoizedProps,b=g.memoizedState,p=t.stateNode,c=p.getSnapshotBeforeUpdate(t.elementType===t.type?v:Wt(t.type,v),b);p.__reactInternalSnapshotBeforeUpdate=c}break;case 3:var d=t.stateNode.containerInfo;d.nodeType===1?d.textContent="":d.nodeType===9&&d.documentElement&&d.removeChild(d.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error($(163))}}catch(y){Re(t,t.return,y)}if(e=t.sibling,e!==null){e.return=t.return,L=e;break}L=t.return}return g=ef,ef=!1,g}function Ao(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var o=r=r.next;do{if((o.tag&e)===e){var i=o.destroy;o.destroy=void 0,i!==void 0&&du(t,n,i)}o=o.next}while(o!==r)}}function Xl(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function fu(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function ih(e){var t=e.alternate;t!==null&&(e.alternate=null,ih(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[tn],delete t[ei],delete t[Za],delete t[kv],delete t[Cv])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function lh(e){return e.tag===5||e.tag===3||e.tag===4}function tf(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||lh(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function pu(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=yl));else if(r!==4&&(e=e.child,e!==null))for(pu(e,t,n),e=e.sibling;e!==null;)pu(e,t,n),e=e.sibling}function mu(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(mu(e,t,n),e=e.sibling;e!==null;)mu(e,t,n),e=e.sibling}var He=null,Ut=!1;function Cn(e,t,n){for(n=n.child;n!==null;)sh(e,t,n),n=n.sibling}function sh(e,t,n){if(nn&&typeof nn.onCommitFiberUnmount=="function")try{nn.onCommitFiberUnmount(Wl,n)}catch{}switch(n.tag){case 5:Ye||Nr(n,t);case 6:var r=He,o=Ut;He=null,Cn(e,t,n),He=r,Ut=o,He!==null&&(Ut?(e=He,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):He.removeChild(n.stateNode));break;case 18:He!==null&&(Ut?(e=He,n=n.stateNode,e.nodeType===8?ia(e.parentNode,n):e.nodeType===1&&ia(e,n),qo(e)):ia(He,n.stateNode));break;case 4:r=He,o=Ut,He=n.stateNode.containerInfo,Ut=!0,Cn(e,t,n),He=r,Ut=o;break;case 0:case 11:case 14:case 15:if(!Ye&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){o=r=r.next;do{var i=o,l=i.destroy;i=i.tag,l!==void 0&&(i&2||i&4)&&du(n,t,l),o=o.next}while(o!==r)}Cn(e,t,n);break;case 1:if(!Ye&&(Nr(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(s){Re(n,t,s)}Cn(e,t,n);break;case 21:Cn(e,t,n);break;case 22:n.mode&1?(Ye=(r=Ye)||n.memoizedState!==null,Cn(e,t,n),Ye=r):Cn(e,t,n);break;default:Cn(e,t,n)}}function nf(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new jv),t.forEach(function(r){var o=qv.bind(null,e,r);n.has(r)||(n.add(r),r.then(o,o))})}}function Bt(e,t){var n=t.deletions;if(n!==null)for(var r=0;ro&&(o=l),r&=~i}if(r=o,r=Oe()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*Wv(r/1960))-r,10e?16:e,On===null)var r=!1;else{if(e=On,On=null,Ol=0,J&6)throw Error($(331));var o=J;for(J|=4,L=e.current;L!==null;){var i=L,l=i.child;if(L.flags&16){var s=i.deletions;if(s!==null){for(var a=0;aOe()-vc?rr(e,0):gc|=n),ct(e,t)}function hh(e,t){t===0&&(e.mode&1?(t=_i,_i<<=1,!(_i&130023424)&&(_i=4194304)):t=1);var n=tt();e=vn(e,t),e!==null&&(fi(e,t,n),ct(e,n))}function Qv(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),hh(e,n)}function qv(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,o=e.memoizedState;o!==null&&(n=o.retryLane);break;case 19:r=e.stateNode;break;default:throw Error($(314))}r!==null&&r.delete(t),hh(e,n)}var gh;gh=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||at.current)st=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return st=!1,Lv(e,t,n);st=!!(e.flags&131072)}else st=!1,ye&&t.flags&1048576&&Sm(t,kl,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Ji(e,t),e=t.pendingProps;var o=Gr(t,Ze.current);Wr(t,n),o=cc(null,t,r,e,o,n);var i=dc();return t.flags|=1,typeof o=="object"&&o!==null&&typeof o.render=="function"&&o.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,ut(r)?(i=!0,Sl(t)):i=!1,t.memoizedState=o.state!==null&&o.state!==void 0?o.state:null,ic(t),o.updater=ql,t.stateNode=o,o._reactInternals=t,ou(t,r,e,n),t=su(null,t,r,!0,i,n)):(t.tag=0,ye&&i&&Zu(t),et(null,t,o,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Ji(e,t),e=t.pendingProps,o=r._init,r=o(r._payload),t.type=r,o=t.tag=Yv(r),e=Wt(r,e),o){case 0:t=lu(null,t,r,e,n);break e;case 1:t=Yd(null,t,r,e,n);break e;case 11:t=qd(null,t,r,e,n);break e;case 14:t=Xd(null,t,r,Wt(r.type,e),n);break e}throw Error($(306,r,""))}return t;case 0:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Wt(r,o),lu(e,t,r,o,n);case 1:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Wt(r,o),Yd(e,t,r,o,n);case 3:e:{if(Jm(t),e===null)throw Error($(387));r=t.pendingProps,i=t.memoizedState,o=i.element,Pm(e,t),bl(t,r,null,n);var l=t.memoizedState;if(r=l.element,i.isDehydrated)if(i={element:r,isDehydrated:!1,cache:l.cache,pendingSuspenseBoundaries:l.pendingSuspenseBoundaries,transitions:l.transitions},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){o=Yr(Error($(423)),t),t=Zd(e,t,r,n,o);break e}else if(r!==o){o=Yr(Error($(424)),t),t=Zd(e,t,r,n,o);break e}else for(gt=zn(t.stateNode.containerInfo.firstChild),vt=t,ye=!0,Ht=null,n=Em(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Qr(),r===o){t=yn(e,t,n);break e}et(e,t,r,n)}t=t.child}return t;case 5:return Rm(t),e===null&&tu(t),r=t.type,o=t.pendingProps,i=e!==null?e.memoizedProps:null,l=o.children,Xa(r,o)?l=null:i!==null&&Xa(r,i)&&(t.flags|=32),Zm(e,t),et(e,t,l,n),t.child;case 6:return e===null&&tu(t),null;case 13:return eh(e,t,n);case 4:return lc(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=qr(t,null,r,n):et(e,t,r,n),t.child;case 11:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Wt(r,o),qd(e,t,r,o,n);case 7:return et(e,t,t.pendingProps,n),t.child;case 8:return et(e,t,t.pendingProps.children,n),t.child;case 12:return et(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,o=t.pendingProps,i=t.memoizedProps,l=o.value,de(Cl,r._currentValue),r._currentValue=l,i!==null)if(Qt(i.value,l)){if(i.children===o.children&&!at.current){t=yn(e,t,n);break e}}else for(i=t.child,i!==null&&(i.return=t);i!==null;){var s=i.dependencies;if(s!==null){l=i.child;for(var a=s.firstContext;a!==null;){if(a.context===r){if(i.tag===1){a=mn(-1,n&-n),a.tag=2;var u=i.updateQueue;if(u!==null){u=u.shared;var f=u.pending;f===null?a.next=a:(a.next=f.next,f.next=a),u.pending=a}}i.lanes|=n,a=i.alternate,a!==null&&(a.lanes|=n),nu(i.return,n,t),s.lanes|=n;break}a=a.next}}else if(i.tag===10)l=i.type===t.type?null:i.child;else if(i.tag===18){if(l=i.return,l===null)throw Error($(341));l.lanes|=n,s=l.alternate,s!==null&&(s.lanes|=n),nu(l,n,t),l=i.sibling}else l=i.child;if(l!==null)l.return=i;else for(l=i;l!==null;){if(l===t){l=null;break}if(i=l.sibling,i!==null){i.return=l.return,l=i;break}l=l.return}i=l}et(e,t,o.children,n),t=t.child}return t;case 9:return o=t.type,r=t.pendingProps.children,Wr(t,n),o=zt(o),r=r(o),t.flags|=1,et(e,t,r,n),t.child;case 14:return r=t.type,o=Wt(r,t.pendingProps),o=Wt(r.type,o),Xd(e,t,r,o,n);case 15:return Xm(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Wt(r,o),Ji(e,t),t.tag=1,ut(r)?(e=!0,Sl(t)):e=!1,Wr(t,n),Gm(t,r,o),ou(t,r,o,n),su(null,t,r,!0,e,n);case 19:return th(e,t,n);case 22:return Ym(e,t,n)}throw Error($(156,t.tag))};function vh(e,t){return Hp(e,t)}function Xv(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function It(e,t,n,r){return new Xv(e,t,n,r)}function wc(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Yv(e){if(typeof e=="function")return wc(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Du)return 11;if(e===Bu)return 14}return 2}function jn(e,t){var n=e.alternate;return n===null?(n=It(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function nl(e,t,n,r,o,i){var l=2;if(r=e,typeof e=="function")wc(e)&&(l=1);else if(typeof e=="string")l=5;else e:switch(e){case br:return or(n.children,o,i,t);case ju:l=8,o|=8;break;case _a:return e=It(12,n,t,o|2),e.elementType=_a,e.lanes=i,e;case Ta:return e=It(13,n,t,o),e.elementType=Ta,e.lanes=i,e;case $a:return e=It(19,n,t,o),e.elementType=$a,e.lanes=i,e;case Rp:return Zl(n,o,i,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case bp:l=10;break e;case Pp:l=9;break e;case Du:l=11;break e;case Bu:l=14;break e;case bn:l=16,r=null;break e}throw Error($(130,e==null?e:typeof e,""))}return t=It(l,n,t,o),t.elementType=e,t.type=r,t.lanes=i,t}function or(e,t,n,r){return e=It(7,e,r,t),e.lanes=n,e}function Zl(e,t,n,r){return e=It(22,e,r,t),e.elementType=Rp,e.lanes=n,e.stateNode={isHidden:!1},e}function pa(e,t,n){return e=It(6,e,null,t),e.lanes=n,e}function ma(e,t,n){return t=It(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Zv(e,t,n,r,o){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Qs(0),this.expirationTimes=Qs(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Qs(0),this.identifierPrefix=r,this.onRecoverableError=o,this.mutableSourceEagerHydrationData=null}function kc(e,t,n,r,o,i,l,s,a){return e=new Zv(e,t,n,s,a),t===1?(t=1,i===!0&&(t|=8)):t=0,i=It(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},ic(i),e}function Jv(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(wh)}catch(e){console.error(e)}}wh(),wp.exports=kt;var Pc=wp.exports;const Di=up(Pc);var df=Pc;Pa.createRoot=df.createRoot,Pa.hydrateRoot=df.hydrateRoot;function V(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function w(){return w=Object.assign?Object.assign.bind():function(e){for(var t=1;t{if(r.toString().match(/^(components|slots)$/))n[r]=w({},e[r],n[r]);else if(r.toString().match(/^(componentsProps|slotProps)$/)){const o=e[r]||{},i=t[r];n[r]={},!i||!Object.keys(i)?n[r]=o:!o||!Object.keys(o)?n[r]=i:(n[r]=w({},i),Object.keys(o).forEach(l=>{n[r][l]=Rc(o[l],i[l])}))}else n[r]===void 0&&(n[r]=e[r])}),n}function Me(e,t,n=void 0){const r={};return Object.keys(e).forEach(o=>{r[o]=e[o].reduce((i,l)=>{if(l){const s=t(l);s!==""&&i.push(s),n&&n[l]&&i.push(n[l])}return i},[]).join(" ")}),r}var Ie={},Ch={exports:{}};(function(e){function t(n){return n&&n.__esModule?n:{default:n}}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports})(Ch);var Eh=Ch.exports;function cr(e){let t="https://mui.com/production-error/?code="+e;for(let n=1;n=6?2:1}}`,"g");let n=e.match(t);return n&&n[0].length===1&&(n=n.map(r=>r+r)),n?`rgb${n.length===4?"a":""}(${n.map((r,o)=>o<3?parseInt(r,16):Math.round(parseInt(r,16)/255*1e3)/1e3).join(", ")})`:""}function py(e){const t=e.toString(16);return t.length===1?`0${t}`:t}function Ft(e){if(e.type)return e;if(e.charAt(0)==="#")return Ft(Ph(e));const t=e.indexOf("("),n=e.substring(0,t);if(["rgb","rgba","hsl","hsla","color"].indexOf(n)===-1)throw new Error((0,ff.default)(9,e));let r=e.substring(t+1,e.length-1),o;if(n==="color"){if(r=r.split(" "),o=r.shift(),r.length===4&&r[3].charAt(0)==="/"&&(r[3]=r[3].slice(1)),["srgb","display-p3","a98-rgb","prophoto-rgb","rec-2020"].indexOf(o)===-1)throw new Error((0,ff.default)(10,o))}else r=r.split(",");return r=r.map(i=>parseFloat(i)),{type:n,values:r,colorSpace:o}}const Rh=e=>{const t=Ft(e);return t.values.slice(0,3).map((n,r)=>t.type.indexOf("hsl")!==-1&&r!==0?`${n}%`:n).join(" ")};Ie.colorChannel=Rh;const my=(e,t)=>{try{return Rh(e)}catch{return e}};Ie.private_safeColorChannel=my;function io(e){const{type:t,colorSpace:n}=e;let{values:r}=e;return t.indexOf("rgb")!==-1?r=r.map((o,i)=>i<3?parseInt(o,10):o):t.indexOf("hsl")!==-1&&(r[1]=`${r[1]}%`,r[2]=`${r[2]}%`),t.indexOf("color")!==-1?r=`${n} ${r.join(" ")}`:r=`${r.join(", ")}`,`${t}(${r})`}function hy(e){if(e.indexOf("#")===0)return e;const{values:t}=Ft(e);return`#${t.map((n,r)=>py(r===3?Math.round(255*n):n)).join("")}`}function _h(e){e=Ft(e);const{values:t}=e,n=t[0],r=t[1]/100,o=t[2]/100,i=r*Math.min(o,1-o),l=(u,f=(u+n/30)%12)=>o-i*Math.max(Math.min(f-3,9-f,1),-1);let s="rgb";const a=[Math.round(l(0)*255),Math.round(l(8)*255),Math.round(l(4)*255)];return e.type==="hsla"&&(s+="a",a.push(t[3])),io({type:s,values:a})}function Nl(e){e=Ft(e);let t=e.type==="hsl"||e.type==="hsla"?Ft(_h(e)).values:e.values;return t=t.map(n=>(e.type!=="color"&&(n/=255),n<=.03928?n/12.92:((n+.055)/1.055)**2.4)),Number((.2126*t[0]+.7152*t[1]+.0722*t[2]).toFixed(3))}function gy(e,t){const n=Nl(e),r=Nl(t);return(Math.max(n,r)+.05)/(Math.min(n,r)+.05)}function Th(e,t){return e=Ft(e),t=_c(t),(e.type==="rgb"||e.type==="hsl")&&(e.type+="a"),e.type==="color"?e.values[3]=`/${t}`:e.values[3]=t,io(e)}function vy(e,t,n){try{return Th(e,t)}catch{return e}}function Tc(e,t){if(e=Ft(e),t=_c(t),e.type.indexOf("hsl")!==-1)e.values[2]*=1-t;else if(e.type.indexOf("rgb")!==-1||e.type.indexOf("color")!==-1)for(let n=0;n<3;n+=1)e.values[n]*=1-t;return io(e)}function yy(e,t,n){try{return Tc(e,t)}catch{return e}}function $c(e,t){if(e=Ft(e),t=_c(t),e.type.indexOf("hsl")!==-1)e.values[2]+=(100-e.values[2])*t;else if(e.type.indexOf("rgb")!==-1)for(let n=0;n<3;n+=1)e.values[n]+=(255-e.values[n])*t;else if(e.type.indexOf("color")!==-1)for(let n=0;n<3;n+=1)e.values[n]+=(1-e.values[n])*t;return io(e)}function xy(e,t,n){try{return $c(e,t)}catch{return e}}function $h(e,t=.15){return Nl(e)>.5?Tc(e,t):$c(e,t)}function Sy(e,t,n){try{return $h(e,t)}catch{return e}}function wy(e,t,n,r=1){const o=(a,u)=>Math.round((a**(1/r)*(1-n)+u**(1/r)*n)**r),i=Ft(e),l=Ft(t),s=[o(i.values[0],l.values[0]),o(i.values[1],l.values[1]),o(i.values[2],l.values[2])];return io({type:"rgb",values:s})}var gi={},ha={exports:{}},pf;function Oh(){return pf||(pf=1,function(e){function t(){return e.exports=t=Object.assign?Object.assign.bind():function(n){for(var r=1;r=0)continue;o[i]=n[i]}return o}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports}(ga)),ga.exports}function Mh(e){var t=Object.create(null);return function(n){return t[n]===void 0&&(t[n]=e(n)),t[n]}}var Cy=/^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/,Ey=Mh(function(e){return Cy.test(e)||e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)<91});function by(e){if(e.sheet)return e.sheet;for(var t=0;t0?Ve(lo,--dt):0,Jr--,ze===10&&(Jr=1,os--),ze}function yt(){return ze=dt2||ai(ze)>3?"":" "}function Ay(e,t){for(;--t&&yt()&&!(ze<48||ze>102||ze>57&&ze<65||ze>70&&ze<97););return vi(e,rl()+(t<6&&on()==32&&yt()==32))}function Su(e){for(;yt();)switch(ze){case e:return dt;case 34:case 39:e!==34&&e!==39&&Su(ze);break;case 40:e===41&&Su(e);break;case 92:yt();break}return dt}function jy(e,t){for(;yt()&&e+ze!==57;)if(e+ze===84&&on()===47)break;return"/*"+vi(t,dt-1)+"*"+rs(e===47?e:yt())}function Dy(e){for(;!ai(on());)yt();return vi(e,dt)}function By(e){return Ah(il("",null,null,null,[""],e=Fh(e),0,[0],e))}function il(e,t,n,r,o,i,l,s,a){for(var u=0,f=0,h=l,m=0,x=0,g=0,v=1,b=1,p=1,c=0,d="",y=o,k=i,E=r,C=d;b;)switch(g=c,c=yt()){case 40:if(g!=108&&Ve(C,h-1)==58){xu(C+=ne(ol(c),"&","&\f"),"&\f")!=-1&&(p=-1);break}case 34:case 39:case 91:C+=ol(c);break;case 9:case 10:case 13:case 32:C+=Fy(g);break;case 92:C+=Ay(rl()-1,7);continue;case 47:switch(on()){case 42:case 47:Bi(Wy(jy(yt(),rl()),t,n),a);break;default:C+="/"}break;case 123*v:s[u++]=Jt(C)*p;case 125*v:case 59:case 0:switch(c){case 0:case 125:b=0;case 59+f:p==-1&&(C=ne(C,/\f/g,"")),x>0&&Jt(C)-h&&Bi(x>32?gf(C+";",r,n,h-1):gf(ne(C," ","")+";",r,n,h-2),a);break;case 59:C+=";";default:if(Bi(E=hf(C,t,n,u,f,o,s,d,y=[],k=[],h),i),c===123)if(f===0)il(C,t,E,E,y,i,h,s,k);else switch(m===99&&Ve(C,3)===110?100:m){case 100:case 108:case 109:case 115:il(e,E,E,r&&Bi(hf(e,E,E,0,0,o,s,d,o,y=[],h),k),o,k,h,s,r?y:k);break;default:il(C,E,E,E,[""],k,0,s,k)}}u=f=x=0,v=p=1,d=C="",h=l;break;case 58:h=1+Jt(C),x=g;default:if(v<1){if(c==123)--v;else if(c==125&&v++==0&&Ly()==125)continue}switch(C+=rs(c),c*v){case 38:p=f>0?1:(C+="\f",-1);break;case 44:s[u++]=(Jt(C)-1)*p,p=1;break;case 64:on()===45&&(C+=ol(yt())),m=on(),f=h=Jt(d=C+=Dy(rl())),c++;break;case 45:g===45&&Jt(C)==2&&(v=0)}}return i}function hf(e,t,n,r,o,i,l,s,a,u,f){for(var h=o-1,m=o===0?i:[""],x=Ic(m),g=0,v=0,b=0;g0?m[p]+" "+c:ne(c,/&\f/g,m[p])))&&(a[b++]=d);return is(e,t,n,o===0?Oc:s,a,u,f)}function Wy(e,t,n){return is(e,t,n,Ih,rs(zy()),si(e,2,-2),0)}function gf(e,t,n,r){return is(e,t,n,Mc,si(e,0,r),si(e,r+1,-1),r)}function Hr(e,t){for(var n="",r=Ic(e),o=0;o6)switch(Ve(e,t+1)){case 109:if(Ve(e,t+4)!==45)break;case 102:return ne(e,/(.+:)(.+)-([^]+)/,"$1"+te+"$2-$3$1"+zl+(Ve(e,t+3)==108?"$3":"$2-$3"))+e;case 115:return~xu(e,"stretch")?jh(ne(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(Ve(e,t+1)!==115)break;case 6444:switch(Ve(e,Jt(e)-3-(~xu(e,"!important")&&10))){case 107:return ne(e,":",":"+te)+e;case 101:return ne(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+te+(Ve(e,14)===45?"inline-":"")+"box$3$1"+te+"$2$3$1"+Xe+"$2box$3")+e}break;case 5936:switch(Ve(e,t+11)){case 114:return te+e+Xe+ne(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return te+e+Xe+ne(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return te+e+Xe+ne(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return te+e+Xe+e+e}return e}var Yy=function(t,n,r,o){if(t.length>-1&&!t.return)switch(t.type){case Mc:t.return=jh(t.value,t.length);break;case Nh:return Hr([wo(t,{value:ne(t.value,"@","@"+te)})],o);case Oc:if(t.length)return Ny(t.props,function(i){switch(Iy(i,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return Hr([wo(t,{props:[ne(i,/:(read-\w+)/,":"+zl+"$1")]})],o);case"::placeholder":return Hr([wo(t,{props:[ne(i,/:(plac\w+)/,":"+te+"input-$1")]}),wo(t,{props:[ne(i,/:(plac\w+)/,":"+zl+"$1")]}),wo(t,{props:[ne(i,/:(plac\w+)/,Xe+"input-$1")]})],o)}return""})}},Zy=[Yy],Dh=function(t){var n=t.key;if(n==="css"){var r=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(r,function(v){var b=v.getAttribute("data-emotion");b.indexOf(" ")!==-1&&(document.head.appendChild(v),v.setAttribute("data-s",""))})}var o=t.stylisPlugins||Zy,i={},l,s=[];l=t.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+n+' "]'),function(v){for(var b=v.getAttribute("data-emotion").split(" "),p=1;p=4;++r,o-=4)n=e.charCodeAt(r)&255|(e.charCodeAt(++r)&255)<<8|(e.charCodeAt(++r)&255)<<16|(e.charCodeAt(++r)&255)<<24,n=(n&65535)*1540483477+((n>>>16)*59797<<16),n^=n>>>24,t=(n&65535)*1540483477+((n>>>16)*59797<<16)^(t&65535)*1540483477+((t>>>16)*59797<<16);switch(o){case 3:t^=(e.charCodeAt(r+2)&255)<<16;case 2:t^=(e.charCodeAt(r+1)&255)<<8;case 1:t^=e.charCodeAt(r)&255,t=(t&65535)*1540483477+((t>>>16)*59797<<16)}return t^=t>>>13,t=(t&65535)*1540483477+((t>>>16)*59797<<16),((t^t>>>15)>>>0).toString(36)}var c1={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},d1=/[A-Z]|^ms/g,f1=/_EMO_([^_]+?)_([^]*?)_EMO_/g,Gh=function(t){return t.charCodeAt(1)===45},yf=function(t){return t!=null&&typeof t!="boolean"},va=Mh(function(e){return Gh(e)?e:e.replace(d1,"-$&").toLowerCase()}),xf=function(t,n){switch(t){case"animation":case"animationName":if(typeof n=="string")return n.replace(f1,function(r,o,i){return en={name:o,styles:i,next:en},o})}return c1[t]!==1&&!Gh(t)&&typeof n=="number"&&n!==0?n+"px":n};function ui(e,t,n){if(n==null)return"";if(n.__emotion_styles!==void 0)return n;switch(typeof n){case"boolean":return"";case"object":{if(n.anim===1)return en={name:n.name,styles:n.styles,next:en},n.name;if(n.styles!==void 0){var r=n.next;if(r!==void 0)for(;r!==void 0;)en={name:r.name,styles:r.styles,next:en},r=r.next;var o=n.styles+";";return o}return p1(e,t,n)}case"function":{if(e!==void 0){var i=en,l=n(e);return en=i,ui(e,t,l)}break}}if(t==null)return n;var s=t[n];return s!==void 0?s:n}function p1(e,t,n){var r="";if(Array.isArray(n))for(var o=0;o96?y1:x1},Cf=function(t,n,r){var o;if(n){var i=n.shouldForwardProp;o=t.__emotion_forwardProp&&i?function(l){return t.__emotion_forwardProp(l)&&i(l)}:i}return typeof o!="function"&&r&&(o=t.__emotion_forwardProp),o},S1=function(t){var n=t.cache,r=t.serialized,o=t.isStringTag;return Vh(n,r,o),h1(function(){return Kh(n,r,o)}),null},w1=function e(t,n){var r=t.__emotion_real===t,o=r&&t.__emotion_base||t,i,l;n!==void 0&&(i=n.label,l=n.target);var s=Cf(t,n,r),a=s||kf(o),u=!a("as");return function(){var f=arguments,h=r&&t.__emotion_styles!==void 0?t.__emotion_styles.slice(0):[];if(i!==void 0&&h.push("label:"+i+";"),f[0]==null||f[0].raw===void 0)h.push.apply(h,f);else{h.push(f[0][0]);for(var m=f.length,x=1;xt(E1(o)?n:o):t;return _.jsx(v1,{styles:r})}function Jh(e,t){return wu(e,t)}const b1=(e,t)=>{Array.isArray(e.__emotion_styles)&&(e.__emotion_styles=t(e.__emotion_styles))},P1=Object.freeze(Object.defineProperty({__proto__:null,GlobalStyles:Zh,StyledEngineProvider:C1,ThemeContext:gs,css:Yh,default:Jh,internal_processStyles:b1,keyframes:vs},Symbol.toStringTag,{value:"Module"})),R1=Wn(P1);function Tn(e){if(typeof e!="object"||e===null)return!1;const t=Object.getPrototypeOf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}function e0(e){if(!Tn(e))return e;const t={};return Object.keys(e).forEach(n=>{t[n]=e0(e[n])}),t}function yt(e,t,n={clone:!0}){const r=n.clone?w({},e):e;return Tn(e)&&Tn(t)&&Object.keys(t).forEach(o=>{o!=="__proto__"&&(Tn(t[o])&&o in e&&Tn(e[o])?r[o]=yt(e[o],t[o],n):n.clone?r[o]=Tn(t[o])?e0(t[o]):t[o]:r[o]=t[o])}),r}const _1=Object.freeze(Object.defineProperty({__proto__:null,default:yt,isPlainObject:Tn},Symbol.toStringTag,{value:"Module"})),T1=Wn(_1);function Z(e){if(typeof e!="string")throw new Error(ur(7));return e.charAt(0).toUpperCase()+e.slice(1)}const $1=Object.freeze(Object.defineProperty({__proto__:null,default:Z},Symbol.toStringTag,{value:"Module"})),O1=Wn($1);var t0={exports:{}},le={};/** + */var We=typeof Symbol=="function"&&Symbol.for,Nc=We?Symbol.for("react.element"):60103,zc=We?Symbol.for("react.portal"):60106,ls=We?Symbol.for("react.fragment"):60107,ss=We?Symbol.for("react.strict_mode"):60108,as=We?Symbol.for("react.profiler"):60114,us=We?Symbol.for("react.provider"):60109,cs=We?Symbol.for("react.context"):60110,Lc=We?Symbol.for("react.async_mode"):60111,ds=We?Symbol.for("react.concurrent_mode"):60111,fs=We?Symbol.for("react.forward_ref"):60112,ps=We?Symbol.for("react.suspense"):60113,Jy=We?Symbol.for("react.suspense_list"):60120,ms=We?Symbol.for("react.memo"):60115,hs=We?Symbol.for("react.lazy"):60116,e1=We?Symbol.for("react.block"):60121,t1=We?Symbol.for("react.fundamental"):60117,n1=We?Symbol.for("react.responder"):60118,r1=We?Symbol.for("react.scope"):60119;function Et(e){if(typeof e=="object"&&e!==null){var t=e.$$typeof;switch(t){case Nc:switch(e=e.type,e){case Lc:case ds:case ls:case as:case ss:case ps:return e;default:switch(e=e&&e.$$typeof,e){case cs:case fs:case hs:case ms:case us:return e;default:return t}}case zc:return t}}}function Wh(e){return Et(e)===ds}ie.AsyncMode=Lc;ie.ConcurrentMode=ds;ie.ContextConsumer=cs;ie.ContextProvider=us;ie.Element=Nc;ie.ForwardRef=fs;ie.Fragment=ls;ie.Lazy=hs;ie.Memo=ms;ie.Portal=zc;ie.Profiler=as;ie.StrictMode=ss;ie.Suspense=ps;ie.isAsyncMode=function(e){return Wh(e)||Et(e)===Lc};ie.isConcurrentMode=Wh;ie.isContextConsumer=function(e){return Et(e)===cs};ie.isContextProvider=function(e){return Et(e)===us};ie.isElement=function(e){return typeof e=="object"&&e!==null&&e.$$typeof===Nc};ie.isForwardRef=function(e){return Et(e)===fs};ie.isFragment=function(e){return Et(e)===ls};ie.isLazy=function(e){return Et(e)===hs};ie.isMemo=function(e){return Et(e)===ms};ie.isPortal=function(e){return Et(e)===zc};ie.isProfiler=function(e){return Et(e)===as};ie.isStrictMode=function(e){return Et(e)===ss};ie.isSuspense=function(e){return Et(e)===ps};ie.isValidElementType=function(e){return typeof e=="string"||typeof e=="function"||e===ls||e===ds||e===as||e===ss||e===ps||e===Jy||typeof e=="object"&&e!==null&&(e.$$typeof===hs||e.$$typeof===ms||e.$$typeof===us||e.$$typeof===cs||e.$$typeof===fs||e.$$typeof===t1||e.$$typeof===n1||e.$$typeof===r1||e.$$typeof===e1)};ie.typeOf=Et;Bh.exports=ie;var o1=Bh.exports,Uh=o1,i1={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l1={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},Hh={};Hh[Uh.ForwardRef]=i1;Hh[Uh.Memo]=l1;var s1=!0;function a1(e,t,n){var r="";return n.split(" ").forEach(function(o){e[o]!==void 0?t.push(e[o]+";"):r+=o+" "}),r}var Vh=function(t,n,r){var o=t.key+"-"+n.name;(r===!1||s1===!1)&&t.registered[o]===void 0&&(t.registered[o]=n.styles)},Kh=function(t,n,r){Vh(t,n,r);var o=t.key+"-"+n.name;if(t.inserted[n.name]===void 0){var i=n;do t.insert(n===i?"."+o:"",i,t.sheet,!0),i=i.next;while(i!==void 0)}};function u1(e){for(var t=0,n,r=0,o=e.length;o>=4;++r,o-=4)n=e.charCodeAt(r)&255|(e.charCodeAt(++r)&255)<<8|(e.charCodeAt(++r)&255)<<16|(e.charCodeAt(++r)&255)<<24,n=(n&65535)*1540483477+((n>>>16)*59797<<16),n^=n>>>24,t=(n&65535)*1540483477+((n>>>16)*59797<<16)^(t&65535)*1540483477+((t>>>16)*59797<<16);switch(o){case 3:t^=(e.charCodeAt(r+2)&255)<<16;case 2:t^=(e.charCodeAt(r+1)&255)<<8;case 1:t^=e.charCodeAt(r)&255,t=(t&65535)*1540483477+((t>>>16)*59797<<16)}return t^=t>>>13,t=(t&65535)*1540483477+((t>>>16)*59797<<16),((t^t>>>15)>>>0).toString(36)}var c1={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},d1=/[A-Z]|^ms/g,f1=/_EMO_([^_]+?)_([^]*?)_EMO_/g,Gh=function(t){return t.charCodeAt(1)===45},yf=function(t){return t!=null&&typeof t!="boolean"},va=Mh(function(e){return Gh(e)?e:e.replace(d1,"-$&").toLowerCase()}),xf=function(t,n){switch(t){case"animation":case"animationName":if(typeof n=="string")return n.replace(f1,function(r,o,i){return en={name:o,styles:i,next:en},o})}return c1[t]!==1&&!Gh(t)&&typeof n=="number"&&n!==0?n+"px":n};function ui(e,t,n){if(n==null)return"";if(n.__emotion_styles!==void 0)return n;switch(typeof n){case"boolean":return"";case"object":{if(n.anim===1)return en={name:n.name,styles:n.styles,next:en},n.name;if(n.styles!==void 0){var r=n.next;if(r!==void 0)for(;r!==void 0;)en={name:r.name,styles:r.styles,next:en},r=r.next;var o=n.styles+";";return o}return p1(e,t,n)}case"function":{if(e!==void 0){var i=en,l=n(e);return en=i,ui(e,t,l)}break}}if(t==null)return n;var s=t[n];return s!==void 0?s:n}function p1(e,t,n){var r="";if(Array.isArray(n))for(var o=0;o96?y1:x1},Cf=function(t,n,r){var o;if(n){var i=n.shouldForwardProp;o=t.__emotion_forwardProp&&i?function(l){return t.__emotion_forwardProp(l)&&i(l)}:i}return typeof o!="function"&&r&&(o=t.__emotion_forwardProp),o},S1=function(t){var n=t.cache,r=t.serialized,o=t.isStringTag;return Vh(n,r,o),h1(function(){return Kh(n,r,o)}),null},w1=function e(t,n){var r=t.__emotion_real===t,o=r&&t.__emotion_base||t,i,l;n!==void 0&&(i=n.label,l=n.target);var s=Cf(t,n,r),a=s||kf(o),u=!a("as");return function(){var f=arguments,h=r&&t.__emotion_styles!==void 0?t.__emotion_styles.slice(0):[];if(i!==void 0&&h.push("label:"+i+";"),f[0]==null||f[0].raw===void 0)h.push.apply(h,f);else{h.push(f[0][0]);for(var m=f.length,x=1;xt(E1(o)?n:o):t;return _.jsx(v1,{styles:r})}function Jh(e,t){return wu(e,t)}const b1=(e,t)=>{Array.isArray(e.__emotion_styles)&&(e.__emotion_styles=t(e.__emotion_styles))},P1=Object.freeze(Object.defineProperty({__proto__:null,GlobalStyles:Zh,StyledEngineProvider:C1,ThemeContext:gs,css:Yh,default:Jh,internal_processStyles:b1,keyframes:vs},Symbol.toStringTag,{value:"Module"})),R1=Wn(P1);function Tn(e){if(typeof e!="object"||e===null)return!1;const t=Object.getPrototypeOf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}function e0(e){if(!Tn(e))return e;const t={};return Object.keys(e).forEach(n=>{t[n]=e0(e[n])}),t}function xt(e,t,n={clone:!0}){const r=n.clone?w({},e):e;return Tn(e)&&Tn(t)&&Object.keys(t).forEach(o=>{o!=="__proto__"&&(Tn(t[o])&&o in e&&Tn(e[o])?r[o]=xt(e[o],t[o],n):n.clone?r[o]=Tn(t[o])?e0(t[o]):t[o]:r[o]=t[o])}),r}const _1=Object.freeze(Object.defineProperty({__proto__:null,default:xt,isPlainObject:Tn},Symbol.toStringTag,{value:"Module"})),T1=Wn(_1);function Z(e){if(typeof e!="string")throw new Error(cr(7));return e.charAt(0).toUpperCase()+e.slice(1)}const $1=Object.freeze(Object.defineProperty({__proto__:null,default:Z},Symbol.toStringTag,{value:"Module"})),O1=Wn($1);var t0={exports:{}},le={};/** * @license React * react-is.production.min.js * @@ -52,7 +52,7 @@ Error generating stack: `+i.message+` * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var Ac=Symbol.for("react.element"),jc=Symbol.for("react.portal"),ys=Symbol.for("react.fragment"),xs=Symbol.for("react.strict_mode"),Ss=Symbol.for("react.profiler"),ws=Symbol.for("react.provider"),ks=Symbol.for("react.context"),M1=Symbol.for("react.server_context"),Cs=Symbol.for("react.forward_ref"),Es=Symbol.for("react.suspense"),bs=Symbol.for("react.suspense_list"),Ps=Symbol.for("react.memo"),Rs=Symbol.for("react.lazy"),I1=Symbol.for("react.offscreen"),n0;n0=Symbol.for("react.module.reference");function At(e){if(typeof e=="object"&&e!==null){var t=e.$$typeof;switch(t){case Ac:switch(e=e.type,e){case ys:case Ss:case xs:case Es:case bs:return e;default:switch(e=e&&e.$$typeof,e){case M1:case ks:case Cs:case Rs:case Ps:case ws:return e;default:return t}}case jc:return t}}}le.ContextConsumer=ks;le.ContextProvider=ws;le.Element=Ac;le.ForwardRef=Cs;le.Fragment=ys;le.Lazy=Rs;le.Memo=Ps;le.Portal=jc;le.Profiler=Ss;le.StrictMode=xs;le.Suspense=Es;le.SuspenseList=bs;le.isAsyncMode=function(){return!1};le.isConcurrentMode=function(){return!1};le.isContextConsumer=function(e){return At(e)===ks};le.isContextProvider=function(e){return At(e)===ws};le.isElement=function(e){return typeof e=="object"&&e!==null&&e.$$typeof===Ac};le.isForwardRef=function(e){return At(e)===Cs};le.isFragment=function(e){return At(e)===ys};le.isLazy=function(e){return At(e)===Rs};le.isMemo=function(e){return At(e)===Ps};le.isPortal=function(e){return At(e)===jc};le.isProfiler=function(e){return At(e)===Ss};le.isStrictMode=function(e){return At(e)===xs};le.isSuspense=function(e){return At(e)===Es};le.isSuspenseList=function(e){return At(e)===bs};le.isValidElementType=function(e){return typeof e=="string"||typeof e=="function"||e===ys||e===Ss||e===xs||e===Es||e===bs||e===I1||typeof e=="object"&&e!==null&&(e.$$typeof===Rs||e.$$typeof===Ps||e.$$typeof===ws||e.$$typeof===ks||e.$$typeof===Cs||e.$$typeof===n0||e.getModuleId!==void 0)};le.typeOf=At;t0.exports=le;var Ef=t0.exports;const N1=/^\s*function(?:\s|\s*\/\*.*\*\/\s*)+([^(\s/]*)\s*/;function r0(e){const t=`${e}`.match(N1);return t&&t[1]||""}function o0(e,t=""){return e.displayName||e.name||r0(e)||t}function bf(e,t,n){const r=o0(t);return e.displayName||(r!==""?`${n}(${r})`:n)}function z1(e){if(e!=null){if(typeof e=="string")return e;if(typeof e=="function")return o0(e,"Component");if(typeof e=="object")switch(e.$$typeof){case Ef.ForwardRef:return bf(e,e.render,"ForwardRef");case Ef.Memo:return bf(e,e.type,"memo");default:return}}}const L1=Object.freeze(Object.defineProperty({__proto__:null,default:z1,getFunctionName:r0},Symbol.toStringTag,{value:"Module"})),F1=Wn(L1),A1=["values","unit","step"],j1=e=>{const t=Object.keys(e).map(n=>({key:n,val:e[n]}))||[];return t.sort((n,r)=>n.val-r.val),t.reduce((n,r)=>w({},n,{[r.key]:r.val}),{})};function i0(e){const{values:t={xs:0,sm:600,md:900,lg:1200,xl:1536},unit:n="px",step:r=5}=e,o=V(e,A1),i=j1(t),l=Object.keys(i);function s(m){return`@media (min-width:${typeof t[m]=="number"?t[m]:m}${n})`}function a(m){return`@media (max-width:${(typeof t[m]=="number"?t[m]:m)-r/100}${n})`}function u(m,x){const g=l.indexOf(x);return`@media (min-width:${typeof t[m]=="number"?t[m]:m}${n}) and (max-width:${(g!==-1&&typeof t[l[g]]=="number"?t[l[g]]:x)-r/100}${n})`}function f(m){return l.indexOf(m)+1`@media (min-width:${Dc[e]}px)`};function xn(e,t,n){const r=e.theme||{};if(Array.isArray(t)){const i=r.breakpoints||Pf;return t.reduce((l,s,a)=>(l[i.up(i.keys[a])]=n(t[a]),l),{})}if(typeof t=="object"){const i=r.breakpoints||Pf;return Object.keys(t).reduce((l,s)=>{if(Object.keys(i.values||Dc).indexOf(s)!==-1){const a=i.up(s);l[a]=n(t[s],s)}else{const a=s;l[a]=t[a]}return l},{})}return n(t)}function B1(e={}){var t;return((t=e.keys)==null?void 0:t.reduce((r,o)=>{const i=e.up(o);return r[i]={},r},{}))||{}}function W1(e,t){return e.reduce((n,r)=>{const o=n[r];return(!o||Object.keys(o).length===0)&&delete n[r],n},t)}function _s(e,t,n=!0){if(!t||typeof t!="string")return null;if(e&&e.vars&&n){const r=`vars.${t}`.split(".").reduce((o,i)=>o&&o[i]?o[i]:null,e);if(r!=null)return r}return t.split(".").reduce((r,o)=>r&&r[o]!=null?r[o]:null,e)}function Ll(e,t,n,r=n){let o;return typeof e=="function"?o=e(n):Array.isArray(e)?o=e[n]||r:o=_s(e,n)||r,t&&(o=t(o,r,e)),o}function Ne(e){const{prop:t,cssProperty:n=e.prop,themeKey:r,transform:o}=e,i=l=>{if(l[t]==null)return null;const s=l[t],a=l.theme,u=_s(a,r)||{};return xn(l,s,h=>{let m=Ll(u,o,h);return h===m&&typeof h=="string"&&(m=Ll(u,o,`${t}${h==="default"?"":Z(h)}`,h)),n===!1?m:{[n]:m}})};return i.propTypes={},i.filterProps=[t],i}function U1(e){const t={};return n=>(t[n]===void 0&&(t[n]=e(n)),t[n])}const H1={m:"margin",p:"padding"},V1={t:"Top",r:"Right",b:"Bottom",l:"Left",x:["Left","Right"],y:["Top","Bottom"]},Rf={marginX:"mx",marginY:"my",paddingX:"px",paddingY:"py"},K1=U1(e=>{if(e.length>2)if(Rf[e])e=Rf[e];else return[e];const[t,n]=e.split(""),r=H1[t],o=V1[n]||"";return Array.isArray(o)?o.map(i=>r+i):[r+o]}),Bc=["m","mt","mr","mb","ml","mx","my","margin","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","marginInline","marginInlineStart","marginInlineEnd","marginBlock","marginBlockStart","marginBlockEnd"],Wc=["p","pt","pr","pb","pl","px","py","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingX","paddingY","paddingInline","paddingInlineStart","paddingInlineEnd","paddingBlock","paddingBlockStart","paddingBlockEnd"];[...Bc,...Wc];function yi(e,t,n,r){var o;const i=(o=_s(e,t,!1))!=null?o:n;return typeof i=="number"?l=>typeof l=="string"?l:i*l:Array.isArray(i)?l=>typeof l=="string"?l:i[l]:typeof i=="function"?i:()=>{}}function l0(e){return yi(e,"spacing",8)}function xi(e,t){if(typeof t=="string"||t==null)return t;const n=Math.abs(t),r=e(n);return t>=0?r:typeof r=="number"?-r:`-${r}`}function G1(e,t){return n=>e.reduce((r,o)=>(r[o]=xi(t,n),r),{})}function Q1(e,t,n,r){if(t.indexOf(n)===-1)return null;const o=K1(n),i=G1(o,r),l=e[n];return xn(e,l,i)}function s0(e,t){const n=l0(e.theme);return Object.keys(e).map(r=>Q1(e,t,r,n)).reduce(Bo,{})}function be(e){return s0(e,Bc)}be.propTypes={};be.filterProps=Bc;function Pe(e){return s0(e,Wc)}Pe.propTypes={};Pe.filterProps=Wc;function q1(e=8){if(e.mui)return e;const t=l0({spacing:e}),n=(...r)=>(r.length===0?[1]:r).map(i=>{const l=t(i);return typeof l=="number"?`${l}px`:l}).join(" ");return n.mui=!0,n}function Ts(...e){const t=e.reduce((r,o)=>(o.filterProps.forEach(i=>{r[i]=o}),r),{}),n=r=>Object.keys(r).reduce((o,i)=>t[i]?Bo(o,t[i](r)):o,{});return n.propTypes={},n.filterProps=e.reduce((r,o)=>r.concat(o.filterProps),[]),n}function Ot(e){return typeof e!="number"?e:`${e}px solid`}function jt(e,t){return Ne({prop:e,themeKey:"borders",transform:t})}const X1=jt("border",Ot),Y1=jt("borderTop",Ot),Z1=jt("borderRight",Ot),J1=jt("borderBottom",Ot),ex=jt("borderLeft",Ot),tx=jt("borderColor"),nx=jt("borderTopColor"),rx=jt("borderRightColor"),ox=jt("borderBottomColor"),ix=jt("borderLeftColor"),lx=jt("outline",Ot),sx=jt("outlineColor"),$s=e=>{if(e.borderRadius!==void 0&&e.borderRadius!==null){const t=yi(e.theme,"shape.borderRadius",4),n=r=>({borderRadius:xi(t,r)});return xn(e,e.borderRadius,n)}return null};$s.propTypes={};$s.filterProps=["borderRadius"];Ts(X1,Y1,Z1,J1,ex,tx,nx,rx,ox,ix,$s,lx,sx);const Os=e=>{if(e.gap!==void 0&&e.gap!==null){const t=yi(e.theme,"spacing",8),n=r=>({gap:xi(t,r)});return xn(e,e.gap,n)}return null};Os.propTypes={};Os.filterProps=["gap"];const Ms=e=>{if(e.columnGap!==void 0&&e.columnGap!==null){const t=yi(e.theme,"spacing",8),n=r=>({columnGap:xi(t,r)});return xn(e,e.columnGap,n)}return null};Ms.propTypes={};Ms.filterProps=["columnGap"];const Is=e=>{if(e.rowGap!==void 0&&e.rowGap!==null){const t=yi(e.theme,"spacing",8),n=r=>({rowGap:xi(t,r)});return xn(e,e.rowGap,n)}return null};Is.propTypes={};Is.filterProps=["rowGap"];const ax=Ne({prop:"gridColumn"}),ux=Ne({prop:"gridRow"}),cx=Ne({prop:"gridAutoFlow"}),dx=Ne({prop:"gridAutoColumns"}),fx=Ne({prop:"gridAutoRows"}),px=Ne({prop:"gridTemplateColumns"}),mx=Ne({prop:"gridTemplateRows"}),hx=Ne({prop:"gridTemplateAreas"}),gx=Ne({prop:"gridArea"});Ts(Os,Ms,Is,ax,ux,cx,dx,fx,px,mx,hx,gx);function Hr(e,t){return t==="grey"?t:e}const vx=Ne({prop:"color",themeKey:"palette",transform:Hr}),yx=Ne({prop:"bgcolor",cssProperty:"backgroundColor",themeKey:"palette",transform:Hr}),xx=Ne({prop:"backgroundColor",themeKey:"palette",transform:Hr});Ts(vx,yx,xx);function mt(e){return e<=1&&e!==0?`${e*100}%`:e}const Sx=Ne({prop:"width",transform:mt}),Uc=e=>{if(e.maxWidth!==void 0&&e.maxWidth!==null){const t=n=>{var r,o;const i=((r=e.theme)==null||(r=r.breakpoints)==null||(r=r.values)==null?void 0:r[n])||Dc[n];return i?((o=e.theme)==null||(o=o.breakpoints)==null?void 0:o.unit)!=="px"?{maxWidth:`${i}${e.theme.breakpoints.unit}`}:{maxWidth:i}:{maxWidth:mt(n)}};return xn(e,e.maxWidth,t)}return null};Uc.filterProps=["maxWidth"];const wx=Ne({prop:"minWidth",transform:mt}),kx=Ne({prop:"height",transform:mt}),Cx=Ne({prop:"maxHeight",transform:mt}),Ex=Ne({prop:"minHeight",transform:mt});Ne({prop:"size",cssProperty:"width",transform:mt});Ne({prop:"size",cssProperty:"height",transform:mt});const bx=Ne({prop:"boxSizing"});Ts(Sx,Uc,wx,kx,Cx,Ex,bx);const Si={border:{themeKey:"borders",transform:Ot},borderTop:{themeKey:"borders",transform:Ot},borderRight:{themeKey:"borders",transform:Ot},borderBottom:{themeKey:"borders",transform:Ot},borderLeft:{themeKey:"borders",transform:Ot},borderColor:{themeKey:"palette"},borderTopColor:{themeKey:"palette"},borderRightColor:{themeKey:"palette"},borderBottomColor:{themeKey:"palette"},borderLeftColor:{themeKey:"palette"},outline:{themeKey:"borders",transform:Ot},outlineColor:{themeKey:"palette"},borderRadius:{themeKey:"shape.borderRadius",style:$s},color:{themeKey:"palette",transform:Hr},bgcolor:{themeKey:"palette",cssProperty:"backgroundColor",transform:Hr},backgroundColor:{themeKey:"palette",transform:Hr},p:{style:Pe},pt:{style:Pe},pr:{style:Pe},pb:{style:Pe},pl:{style:Pe},px:{style:Pe},py:{style:Pe},padding:{style:Pe},paddingTop:{style:Pe},paddingRight:{style:Pe},paddingBottom:{style:Pe},paddingLeft:{style:Pe},paddingX:{style:Pe},paddingY:{style:Pe},paddingInline:{style:Pe},paddingInlineStart:{style:Pe},paddingInlineEnd:{style:Pe},paddingBlock:{style:Pe},paddingBlockStart:{style:Pe},paddingBlockEnd:{style:Pe},m:{style:be},mt:{style:be},mr:{style:be},mb:{style:be},ml:{style:be},mx:{style:be},my:{style:be},margin:{style:be},marginTop:{style:be},marginRight:{style:be},marginBottom:{style:be},marginLeft:{style:be},marginX:{style:be},marginY:{style:be},marginInline:{style:be},marginInlineStart:{style:be},marginInlineEnd:{style:be},marginBlock:{style:be},marginBlockStart:{style:be},marginBlockEnd:{style:be},displayPrint:{cssProperty:!1,transform:e=>({"@media print":{display:e}})},display:{},overflow:{},textOverflow:{},visibility:{},whiteSpace:{},flexBasis:{},flexDirection:{},flexWrap:{},justifyContent:{},alignItems:{},alignContent:{},order:{},flex:{},flexGrow:{},flexShrink:{},alignSelf:{},justifyItems:{},justifySelf:{},gap:{style:Os},rowGap:{style:Is},columnGap:{style:Ms},gridColumn:{},gridRow:{},gridAutoFlow:{},gridAutoColumns:{},gridAutoRows:{},gridTemplateColumns:{},gridTemplateRows:{},gridTemplateAreas:{},gridArea:{},position:{},zIndex:{themeKey:"zIndex"},top:{},right:{},bottom:{},left:{},boxShadow:{themeKey:"shadows"},width:{transform:mt},maxWidth:{style:Uc},minWidth:{transform:mt},height:{transform:mt},maxHeight:{transform:mt},minHeight:{transform:mt},boxSizing:{},fontFamily:{themeKey:"typography"},fontSize:{themeKey:"typography"},fontStyle:{themeKey:"typography"},fontWeight:{themeKey:"typography"},letterSpacing:{},textTransform:{},lineHeight:{},textAlign:{},typography:{cssProperty:!1,themeKey:"typography"}};function Px(...e){const t=e.reduce((r,o)=>r.concat(Object.keys(o)),[]),n=new Set(t);return e.every(r=>n.size===Object.keys(r).length)}function Rx(e,t){return typeof e=="function"?e(t):e}function a0(){function e(n,r,o,i){const l={[n]:r,theme:o},s=i[n];if(!s)return{[n]:r};const{cssProperty:a=n,themeKey:u,transform:f,style:h}=s;if(r==null)return null;if(u==="typography"&&r==="inherit")return{[n]:r};const m=_s(o,u)||{};return h?h(l):xn(l,r,g=>{let v=Ll(m,f,g);return g===v&&typeof g=="string"&&(v=Ll(m,f,`${n}${g==="default"?"":Z(g)}`,g)),a===!1?v:{[a]:v}})}function t(n){var r;const{sx:o,theme:i={}}=n||{};if(!o)return null;const l=(r=i.unstable_sxConfig)!=null?r:Si;function s(a){let u=a;if(typeof a=="function")u=a(i);else if(typeof a!="object")return a;if(!u)return null;const f=B1(i.breakpoints),h=Object.keys(f);let m=f;return Object.keys(u).forEach(x=>{const g=Rx(u[x],i);if(g!=null)if(typeof g=="object")if(l[x])m=Bo(m,e(x,g,i,l));else{const v=xn({theme:i},g,b=>({[x]:b}));Px(v,g)?m[x]=t({sx:g,theme:i}):m=Bo(m,v)}else m=Bo(m,e(x,g,i,l))}),W1(h,m)}return Array.isArray(o)?o.map(s):s(o)}return t}const wi=a0();wi.filterProps=["sx"];function u0(e,t){const n=this;return n.vars&&typeof n.getColorSchemeSelector=="function"?{[n.getColorSchemeSelector(e).replace(/(\[[^\]]+\])/,"*:where($1)")]:t}:n.palette.mode===e?t:{}}const _x=["breakpoints","palette","spacing","shape"];function Hc(e={},...t){const{breakpoints:n={},palette:r={},spacing:o,shape:i={}}=e,l=V(e,_x),s=i0(n),a=q1(o);let u=yt({breakpoints:s,direction:"ltr",components:{},palette:w({mode:"light"},r),spacing:a,shape:w({},D1,i)},l);return u.applyStyles=u0,u=t.reduce((f,h)=>yt(f,h),u),u.unstable_sxConfig=w({},Si,l==null?void 0:l.unstable_sxConfig),u.unstable_sx=function(h){return wi({sx:h,theme:this})},u}const Tx=Object.freeze(Object.defineProperty({__proto__:null,default:Hc,private_createBreakpoints:i0,unstable_applyStyles:u0},Symbol.toStringTag,{value:"Module"})),$x=Wn(Tx),Ox=["sx"],Mx=e=>{var t,n;const r={systemProps:{},otherProps:{}},o=(t=e==null||(n=e.theme)==null?void 0:n.unstable_sxConfig)!=null?t:Si;return Object.keys(e).forEach(i=>{o[i]?r.systemProps[i]=e[i]:r.otherProps[i]=e[i]}),r};function Vc(e){const{sx:t}=e,n=V(e,Ox),{systemProps:r,otherProps:o}=Mx(n);let i;return Array.isArray(t)?i=[r,...t]:typeof t=="function"?i=(...l)=>{const s=t(...l);return Tn(s)?w({},r,s):r}:i=w({},r,t),w({},o,{sx:i})}const Ix=Object.freeze(Object.defineProperty({__proto__:null,default:wi,extendSxProp:Vc,unstable_createStyleFunctionSx:a0,unstable_defaultSxConfig:Si},Symbol.toStringTag,{value:"Module"})),Nx=Wn(Ix);var lo=Eh;Object.defineProperty(gi,"__esModule",{value:!0});var zx=gi.default=Qx;gi.shouldForwardProp=ll;gi.systemDefaultTheme=void 0;var Rt=lo(Oh()),Cu=lo(ky()),_f=Wx(R1),Lx=T1;lo(O1);lo(F1);var Fx=lo($x),Ax=lo(Nx);const jx=["ownerState"],Dx=["variants"],Bx=["name","slot","skipVariantsResolver","skipSx","overridesResolver"];function c0(e){if(typeof WeakMap!="function")return null;var t=new WeakMap,n=new WeakMap;return(c0=function(r){return r?n:t})(e)}function Wx(e,t){if(e&&e.__esModule)return e;if(e===null||typeof e!="object"&&typeof e!="function")return{default:e};var n=c0(t);if(n&&n.has(e))return n.get(e);var r={__proto__:null},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if(i!=="default"&&Object.prototype.hasOwnProperty.call(e,i)){var l=o?Object.getOwnPropertyDescriptor(e,i):null;l&&(l.get||l.set)?Object.defineProperty(r,i,l):r[i]=e[i]}return r.default=e,n&&n.set(e,r),r}function Ux(e){return Object.keys(e).length===0}function Hx(e){return typeof e=="string"&&e.charCodeAt(0)>96}function ll(e){return e!=="ownerState"&&e!=="theme"&&e!=="sx"&&e!=="as"}const Vx=gi.systemDefaultTheme=(0,Fx.default)(),Kx=e=>e&&e.charAt(0).toLowerCase()+e.slice(1);function Wi({defaultTheme:e,theme:t,themeId:n}){return Ux(t)?e:t[n]||t}function Gx(e){return e?(t,n)=>n[e]:null}function sl(e,t){let{ownerState:n}=t,r=(0,Cu.default)(t,jx);const o=typeof e=="function"?e((0,Rt.default)({ownerState:n},r)):e;if(Array.isArray(o))return o.flatMap(i=>sl(i,(0,Rt.default)({ownerState:n},r)));if(o&&typeof o=="object"&&Array.isArray(o.variants)){const{variants:i=[]}=o;let s=(0,Cu.default)(o,Dx);return i.forEach(a=>{let u=!0;typeof a.props=="function"?u=a.props((0,Rt.default)({ownerState:n},r,n)):Object.keys(a.props).forEach(f=>{(n==null?void 0:n[f])!==a.props[f]&&r[f]!==a.props[f]&&(u=!1)}),u&&(Array.isArray(s)||(s=[s]),s.push(typeof a.style=="function"?a.style((0,Rt.default)({ownerState:n},r,n)):a.style))}),s}return o}function Qx(e={}){const{themeId:t,defaultTheme:n=Vx,rootShouldForwardProp:r=ll,slotShouldForwardProp:o=ll}=e,i=l=>(0,Ax.default)((0,Rt.default)({},l,{theme:Wi((0,Rt.default)({},l,{defaultTheme:n,themeId:t}))}));return i.__mui_systemSx=!0,(l,s={})=>{(0,_f.internal_processStyles)(l,k=>k.filter(E=>!(E!=null&&E.__mui_systemSx)));const{name:a,slot:u,skipVariantsResolver:f,skipSx:h,overridesResolver:m=Gx(Kx(u))}=s,x=(0,Cu.default)(s,Bx),g=f!==void 0?f:u&&u!=="Root"&&u!=="root"||!1,v=h||!1;let b,p=ll;u==="Root"||u==="root"?p=r:u?p=o:Hx(l)&&(p=void 0);const c=(0,_f.default)(l,(0,Rt.default)({shouldForwardProp:p,label:b},x)),d=k=>typeof k=="function"&&k.__emotion_real!==k||(0,Lx.isPlainObject)(k)?E=>sl(k,(0,Rt.default)({},E,{theme:Wi({theme:E.theme,defaultTheme:n,themeId:t})})):k,y=(k,...E)=>{let C=d(k);const R=E?E.map(d):[];a&&m&&R.push(j=>{const D=Wi((0,Rt.default)({},j,{defaultTheme:n,themeId:t}));if(!D.components||!D.components[a]||!D.components[a].styleOverrides)return null;const F=D.components[a].styleOverrides,I={};return Object.entries(F).forEach(([N,z])=>{I[N]=sl(z,(0,Rt.default)({},j,{theme:D}))}),m(j,I)}),a&&!g&&R.push(j=>{var D;const F=Wi((0,Rt.default)({},j,{defaultTheme:n,themeId:t})),I=F==null||(D=F.components)==null||(D=D[a])==null?void 0:D.variants;return sl({variants:I},(0,Rt.default)({},j,{theme:F}))}),v||R.push(i);const O=R.length-E.length;if(Array.isArray(k)&&O>0){const j=new Array(O).fill("");C=[...k,...j],C.raw=[...k.raw,...j]}const T=c(C,...R);return l.muiName&&(T.muiName=l.muiName),T};return c.withConfig&&(y.withConfig=c.withConfig),y}}const Tf=e=>e,qx=()=>{let e=Tf;return{configure(t){e=t},generate(t){return e(t)},reset(){e=Tf}}},d0=qx(),Xx={active:"active",checked:"checked",completed:"completed",disabled:"disabled",error:"error",expanded:"expanded",focused:"focused",focusVisible:"focusVisible",open:"open",readOnly:"readOnly",required:"required",selected:"selected"};function _e(e,t,n="Mui"){const r=Xx[t];return r?`${n}-${r}`:`${d0.generate(e)}-${t}`}function Yx(e,t){return w({toolbar:{minHeight:56,[e.up("xs")]:{"@media (orientation: landscape)":{minHeight:48}},[e.up("sm")]:{minHeight:64}}},t)}const ci={black:"#000",white:"#fff"},Zx={50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121",A100:"#f5f5f5",A200:"#eeeeee",A400:"#bdbdbd",A700:"#616161"},gr={50:"#f3e5f5",100:"#e1bee7",200:"#ce93d8",300:"#ba68c8",400:"#ab47bc",500:"#9c27b0",600:"#8e24aa",700:"#7b1fa2",800:"#6a1b9a",900:"#4a148c",A100:"#ea80fc",A200:"#e040fb",A400:"#d500f9",A700:"#aa00ff"},vr={50:"#ffebee",100:"#ffcdd2",200:"#ef9a9a",300:"#e57373",400:"#ef5350",500:"#f44336",600:"#e53935",700:"#d32f2f",800:"#c62828",900:"#b71c1c",A100:"#ff8a80",A200:"#ff5252",A400:"#ff1744",A700:"#d50000"},wo={50:"#fff3e0",100:"#ffe0b2",200:"#ffcc80",300:"#ffb74d",400:"#ffa726",500:"#ff9800",600:"#fb8c00",700:"#f57c00",800:"#ef6c00",900:"#e65100",A100:"#ffd180",A200:"#ffab40",A400:"#ff9100",A700:"#ff6d00"},yr={50:"#e3f2fd",100:"#bbdefb",200:"#90caf9",300:"#64b5f6",400:"#42a5f5",500:"#2196f3",600:"#1e88e5",700:"#1976d2",800:"#1565c0",900:"#0d47a1",A100:"#82b1ff",A200:"#448aff",A400:"#2979ff",A700:"#2962ff"},xr={50:"#e1f5fe",100:"#b3e5fc",200:"#81d4fa",300:"#4fc3f7",400:"#29b6f6",500:"#03a9f4",600:"#039be5",700:"#0288d1",800:"#0277bd",900:"#01579b",A100:"#80d8ff",A200:"#40c4ff",A400:"#00b0ff",A700:"#0091ea"},Sr={50:"#e8f5e9",100:"#c8e6c9",200:"#a5d6a7",300:"#81c784",400:"#66bb6a",500:"#4caf50",600:"#43a047",700:"#388e3c",800:"#2e7d32",900:"#1b5e20",A100:"#b9f6ca",A200:"#69f0ae",A400:"#00e676",A700:"#00c853"},Jx=["mode","contrastThreshold","tonalOffset"],$f={text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.38)"},divider:"rgba(0, 0, 0, 0.12)",background:{paper:ci.white,default:ci.white},action:{active:"rgba(0, 0, 0, 0.54)",hover:"rgba(0, 0, 0, 0.04)",hoverOpacity:.04,selected:"rgba(0, 0, 0, 0.08)",selectedOpacity:.08,disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(0, 0, 0, 0.12)",disabledOpacity:.38,focus:"rgba(0, 0, 0, 0.12)",focusOpacity:.12,activatedOpacity:.12}},ya={text:{primary:ci.white,secondary:"rgba(255, 255, 255, 0.7)",disabled:"rgba(255, 255, 255, 0.5)",icon:"rgba(255, 255, 255, 0.5)"},divider:"rgba(255, 255, 255, 0.12)",background:{paper:"#121212",default:"#121212"},action:{active:ci.white,hover:"rgba(255, 255, 255, 0.08)",hoverOpacity:.08,selected:"rgba(255, 255, 255, 0.16)",selectedOpacity:.16,disabled:"rgba(255, 255, 255, 0.3)",disabledBackground:"rgba(255, 255, 255, 0.12)",disabledOpacity:.38,focus:"rgba(255, 255, 255, 0.12)",focusOpacity:.12,activatedOpacity:.24}};function Of(e,t,n,r){const o=r.light||r,i=r.dark||r*1.5;e[t]||(e.hasOwnProperty(n)?e[t]=e[n]:t==="light"?e.light=dy(e.main,o):t==="dark"&&(e.dark=uy(e.main,i)))}function eS(e="light"){return e==="dark"?{main:yr[200],light:yr[50],dark:yr[400]}:{main:yr[700],light:yr[400],dark:yr[800]}}function tS(e="light"){return e==="dark"?{main:gr[200],light:gr[50],dark:gr[400]}:{main:gr[500],light:gr[300],dark:gr[700]}}function nS(e="light"){return e==="dark"?{main:vr[500],light:vr[300],dark:vr[700]}:{main:vr[700],light:vr[400],dark:vr[800]}}function rS(e="light"){return e==="dark"?{main:xr[400],light:xr[300],dark:xr[700]}:{main:xr[700],light:xr[500],dark:xr[900]}}function oS(e="light"){return e==="dark"?{main:Sr[400],light:Sr[300],dark:Sr[700]}:{main:Sr[800],light:Sr[500],dark:Sr[900]}}function iS(e="light"){return e==="dark"?{main:wo[400],light:wo[300],dark:wo[700]}:{main:"#ed6c02",light:wo[500],dark:wo[900]}}function lS(e){const{mode:t="light",contrastThreshold:n=3,tonalOffset:r=.2}=e,o=V(e,Jx),i=e.primary||eS(t),l=e.secondary||tS(t),s=e.error||nS(t),a=e.info||rS(t),u=e.success||oS(t),f=e.warning||iS(t);function h(v){return cy(v,ya.text.primary)>=n?ya.text.primary:$f.text.primary}const m=({color:v,name:b,mainShade:p=500,lightShade:c=300,darkShade:d=700})=>{if(v=w({},v),!v.main&&v[p]&&(v.main=v[p]),!v.hasOwnProperty("main"))throw new Error(ur(11,b?` (${b})`:"",p));if(typeof v.main!="string")throw new Error(ur(12,b?` (${b})`:"",JSON.stringify(v.main)));return Of(v,"light",c,r),Of(v,"dark",d,r),v.contrastText||(v.contrastText=h(v.main)),v},x={dark:ya,light:$f};return yt(w({common:w({},ci),mode:t,primary:m({color:i,name:"primary"}),secondary:m({color:l,name:"secondary",mainShade:"A400",lightShade:"A200",darkShade:"A700"}),error:m({color:s,name:"error"}),warning:m({color:f,name:"warning"}),info:m({color:a,name:"info"}),success:m({color:u,name:"success"}),grey:Zx,contrastThreshold:n,getContrastText:h,augmentColor:m,tonalOffset:r},x[t]),o)}const sS=["fontFamily","fontSize","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","htmlFontSize","allVariants","pxToRem"];function aS(e){return Math.round(e*1e5)/1e5}const Mf={textTransform:"uppercase"},If='"Roboto", "Helvetica", "Arial", sans-serif';function uS(e,t){const n=typeof t=="function"?t(e):t,{fontFamily:r=If,fontSize:o=14,fontWeightLight:i=300,fontWeightRegular:l=400,fontWeightMedium:s=500,fontWeightBold:a=700,htmlFontSize:u=16,allVariants:f,pxToRem:h}=n,m=V(n,sS),x=o/14,g=h||(p=>`${p/u*x}rem`),v=(p,c,d,y,k)=>w({fontFamily:r,fontWeight:p,fontSize:g(c),lineHeight:d},r===If?{letterSpacing:`${aS(y/c)}em`}:{},k,f),b={h1:v(i,96,1.167,-1.5),h2:v(i,60,1.2,-.5),h3:v(l,48,1.167,0),h4:v(l,34,1.235,.25),h5:v(l,24,1.334,0),h6:v(s,20,1.6,.15),subtitle1:v(l,16,1.75,.15),subtitle2:v(s,14,1.57,.1),body1:v(l,16,1.5,.15),body2:v(l,14,1.43,.15),button:v(s,14,1.75,.4,Mf),caption:v(l,12,1.66,.4),overline:v(l,12,2.66,1,Mf),inherit:{fontFamily:"inherit",fontWeight:"inherit",fontSize:"inherit",lineHeight:"inherit",letterSpacing:"inherit"}};return yt(w({htmlFontSize:u,pxToRem:g,fontFamily:r,fontSize:o,fontWeightLight:i,fontWeightRegular:l,fontWeightMedium:s,fontWeightBold:a},b),m,{clone:!1})}const cS=.2,dS=.14,fS=.12;function ve(...e){return[`${e[0]}px ${e[1]}px ${e[2]}px ${e[3]}px rgba(0,0,0,${cS})`,`${e[4]}px ${e[5]}px ${e[6]}px ${e[7]}px rgba(0,0,0,${dS})`,`${e[8]}px ${e[9]}px ${e[10]}px ${e[11]}px rgba(0,0,0,${fS})`].join(",")}const pS=["none",ve(0,2,1,-1,0,1,1,0,0,1,3,0),ve(0,3,1,-2,0,2,2,0,0,1,5,0),ve(0,3,3,-2,0,3,4,0,0,1,8,0),ve(0,2,4,-1,0,4,5,0,0,1,10,0),ve(0,3,5,-1,0,5,8,0,0,1,14,0),ve(0,3,5,-1,0,6,10,0,0,1,18,0),ve(0,4,5,-2,0,7,10,1,0,2,16,1),ve(0,5,5,-3,0,8,10,1,0,3,14,2),ve(0,5,6,-3,0,9,12,1,0,3,16,2),ve(0,6,6,-3,0,10,14,1,0,4,18,3),ve(0,6,7,-4,0,11,15,1,0,4,20,3),ve(0,7,8,-4,0,12,17,2,0,5,22,4),ve(0,7,8,-4,0,13,19,2,0,5,24,4),ve(0,7,9,-4,0,14,21,2,0,5,26,4),ve(0,8,9,-5,0,15,22,2,0,6,28,5),ve(0,8,10,-5,0,16,24,2,0,6,30,5),ve(0,8,11,-5,0,17,26,2,0,6,32,5),ve(0,9,11,-5,0,18,28,2,0,7,34,6),ve(0,9,12,-6,0,19,29,2,0,7,36,6),ve(0,10,13,-6,0,20,31,3,0,8,38,7),ve(0,10,13,-6,0,21,33,3,0,8,40,7),ve(0,10,14,-6,0,22,35,3,0,8,42,7),ve(0,11,14,-7,0,23,36,3,0,9,44,8),ve(0,11,15,-7,0,24,38,3,0,9,46,8)],mS=["duration","easing","delay"],hS={easeInOut:"cubic-bezier(0.4, 0, 0.2, 1)",easeOut:"cubic-bezier(0.0, 0, 0.2, 1)",easeIn:"cubic-bezier(0.4, 0, 1, 1)",sharp:"cubic-bezier(0.4, 0, 0.6, 1)"},gS={shortest:150,shorter:200,short:250,standard:300,complex:375,enteringScreen:225,leavingScreen:195};function Nf(e){return`${Math.round(e)}ms`}function vS(e){if(!e)return 0;const t=e/36;return Math.round((4+15*t**.25+t/5)*10)}function yS(e){const t=w({},hS,e.easing),n=w({},gS,e.duration);return w({getAutoHeightDuration:vS,create:(o=["all"],i={})=>{const{duration:l=n.standard,easing:s=t.easeInOut,delay:a=0}=i;return V(i,mS),(Array.isArray(o)?o:[o]).map(u=>`${u} ${typeof l=="string"?l:Nf(l)} ${s} ${typeof a=="string"?a:Nf(a)}`).join(",")}},e,{easing:t,duration:n})}const xS={mobileStepper:1e3,fab:1050,speedDial:1050,appBar:1100,drawer:1200,modal:1300,snackbar:1400,tooltip:1500},SS=["breakpoints","mixins","spacing","palette","transitions","typography","shape"];function f0(e={},...t){const{mixins:n={},palette:r={},transitions:o={},typography:i={}}=e,l=V(e,SS);if(e.vars)throw new Error(ur(18));const s=lS(r),a=Hc(e);let u=yt(a,{mixins:Yx(a.breakpoints,n),palette:s,shadows:pS.slice(),typography:uS(s,i),transitions:yS(o),zIndex:w({},xS)});return u=yt(u,l),u=t.reduce((f,h)=>yt(f,h),u),u.unstable_sxConfig=w({},Si,l==null?void 0:l.unstable_sxConfig),u.unstable_sx=function(h){return wi({sx:h,theme:this})},u}const Ns=f0(),ki="$$material";function p0(e){return e!=="ownerState"&&e!=="theme"&&e!=="sx"&&e!=="as"}const qt=e=>p0(e)&&e!=="classes",K=zx({themeId:ki,defaultTheme:Ns,rootShouldForwardProp:qt});function wS(e){const{theme:t,name:n,props:r}=e;return!t||!t.components||!t.components[n]||!t.components[n].defaultProps?r:Rc(t.components[n].defaultProps,r)}function kS(e){return Object.keys(e).length===0}function CS(e=null){const t=S.useContext(gs);return!t||kS(t)?e:t}const ES=Hc();function zs(e=ES){return CS(e)}function bS({props:e,name:t,defaultTheme:n,themeId:r}){let o=zs(n);return r&&(o=o[r]||o),wS({theme:o,name:t,props:e})}function Te({props:e,name:t}){return bS({props:e,name:t,defaultTheme:Ns,themeId:ki})}function Eu(e,t){typeof e=="function"?e(t):e&&(e.current=t)}function ft(...e){return S.useMemo(()=>e.every(t=>t==null)?null:t=>{e.forEach(n=>{Eu(n,t)})},e)}const cr=typeof window<"u"?S.useLayoutEffect:S.useEffect;function Lr(e){const t=S.useRef(e);return cr(()=>{t.current=e}),S.useRef((...n)=>(0,t.current)(...n)).current}const zf={};function PS(e,t){const n=S.useRef(zf);return n.current===zf&&(n.current=e(t)),n}const RS=[];function _S(e){S.useEffect(e,RS)}class Ls{constructor(){this.currentId=null,this.clear=()=>{this.currentId!==null&&(clearTimeout(this.currentId),this.currentId=null)},this.disposeEffect=()=>this.clear}static create(){return new Ls}start(t,n){this.clear(),this.currentId=setTimeout(()=>{this.currentId=null,n()},t)}}function m0(){const e=PS(Ls.create).current;return _S(e.disposeEffect),e}let Fs=!0,bu=!1;const TS=new Ls,$S={text:!0,search:!0,url:!0,tel:!0,email:!0,password:!0,number:!0,date:!0,month:!0,week:!0,time:!0,datetime:!0,"datetime-local":!0};function OS(e){const{type:t,tagName:n}=e;return!!(n==="INPUT"&&$S[t]&&!e.readOnly||n==="TEXTAREA"&&!e.readOnly||e.isContentEditable)}function MS(e){e.metaKey||e.altKey||e.ctrlKey||(Fs=!0)}function xa(){Fs=!1}function IS(){this.visibilityState==="hidden"&&bu&&(Fs=!0)}function NS(e){e.addEventListener("keydown",MS,!0),e.addEventListener("mousedown",xa,!0),e.addEventListener("pointerdown",xa,!0),e.addEventListener("touchstart",xa,!0),e.addEventListener("visibilitychange",IS,!0)}function zS(e){const{target:t}=e;try{return t.matches(":focus-visible")}catch{}return Fs||OS(t)}function LS(){const e=S.useCallback(o=>{o!=null&&NS(o.ownerDocument)},[]),t=S.useRef(!1);function n(){return t.current?(bu=!0,TS.start(100,()=>{bu=!1}),t.current=!1,!0):!1}function r(o){return zS(o)?(t.current=!0,!0):!1}return{isFocusVisibleRef:t,onFocus:r,onBlur:n,ref:e}}function Pu(e,t){return Pu=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,o){return r.__proto__=o,r},Pu(e,t)}function h0(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,Pu(e,t)}const Lf={disabled:!1},Fl=Vt.createContext(null);var FS=function(t){return t.scrollTop},To="unmounted",Xn="exited",Yn="entering",kr="entered",Ru="exiting",ln=function(e){h0(t,e);function t(r,o){var i;i=e.call(this,r,o)||this;var l=o,s=l&&!l.isMounting?r.enter:r.appear,a;return i.appearStatus=null,r.in?s?(a=Xn,i.appearStatus=Yn):a=kr:r.unmountOnExit||r.mountOnEnter?a=To:a=Xn,i.state={status:a},i.nextCallback=null,i}t.getDerivedStateFromProps=function(o,i){var l=o.in;return l&&i.status===To?{status:Xn}:null};var n=t.prototype;return n.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},n.componentDidUpdate=function(o){var i=null;if(o!==this.props){var l=this.state.status;this.props.in?l!==Yn&&l!==kr&&(i=Yn):(l===Yn||l===kr)&&(i=Ru)}this.updateStatus(!1,i)},n.componentWillUnmount=function(){this.cancelNextCallback()},n.getTimeouts=function(){var o=this.props.timeout,i,l,s;return i=l=s=o,o!=null&&typeof o!="number"&&(i=o.exit,l=o.enter,s=o.appear!==void 0?o.appear:l),{exit:i,enter:l,appear:s}},n.updateStatus=function(o,i){if(o===void 0&&(o=!1),i!==null)if(this.cancelNextCallback(),i===Yn){if(this.props.unmountOnExit||this.props.mountOnEnter){var l=this.props.nodeRef?this.props.nodeRef.current:Di.findDOMNode(this);l&&FS(l)}this.performEnter(o)}else this.performExit();else this.props.unmountOnExit&&this.state.status===Xn&&this.setState({status:To})},n.performEnter=function(o){var i=this,l=this.props.enter,s=this.context?this.context.isMounting:o,a=this.props.nodeRef?[s]:[Di.findDOMNode(this),s],u=a[0],f=a[1],h=this.getTimeouts(),m=s?h.appear:h.enter;if(!o&&!l||Lf.disabled){this.safeSetState({status:kr},function(){i.props.onEntered(u)});return}this.props.onEnter(u,f),this.safeSetState({status:Yn},function(){i.props.onEntering(u,f),i.onTransitionEnd(m,function(){i.safeSetState({status:kr},function(){i.props.onEntered(u,f)})})})},n.performExit=function(){var o=this,i=this.props.exit,l=this.getTimeouts(),s=this.props.nodeRef?void 0:Di.findDOMNode(this);if(!i||Lf.disabled){this.safeSetState({status:Xn},function(){o.props.onExited(s)});return}this.props.onExit(s),this.safeSetState({status:Ru},function(){o.props.onExiting(s),o.onTransitionEnd(l.exit,function(){o.safeSetState({status:Xn},function(){o.props.onExited(s)})})})},n.cancelNextCallback=function(){this.nextCallback!==null&&(this.nextCallback.cancel(),this.nextCallback=null)},n.safeSetState=function(o,i){i=this.setNextCallback(i),this.setState(o,i)},n.setNextCallback=function(o){var i=this,l=!0;return this.nextCallback=function(s){l&&(l=!1,i.nextCallback=null,o(s))},this.nextCallback.cancel=function(){l=!1},this.nextCallback},n.onTransitionEnd=function(o,i){this.setNextCallback(i);var l=this.props.nodeRef?this.props.nodeRef.current:Di.findDOMNode(this),s=o==null&&!this.props.addEndListener;if(!l||s){setTimeout(this.nextCallback,0);return}if(this.props.addEndListener){var a=this.props.nodeRef?[this.nextCallback]:[l,this.nextCallback],u=a[0],f=a[1];this.props.addEndListener(u,f)}o!=null&&setTimeout(this.nextCallback,o)},n.render=function(){var o=this.state.status;if(o===To)return null;var i=this.props,l=i.children;i.in,i.mountOnEnter,i.unmountOnExit,i.appear,i.enter,i.exit,i.timeout,i.addEndListener,i.onEnter,i.onEntering,i.onEntered,i.onExit,i.onExiting,i.onExited,i.nodeRef;var s=V(i,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]);return Vt.createElement(Fl.Provider,{value:null},typeof l=="function"?l(o,s):Vt.cloneElement(Vt.Children.only(l),s))},t}(Vt.Component);ln.contextType=Fl;ln.propTypes={};function wr(){}ln.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:wr,onEntering:wr,onEntered:wr,onExit:wr,onExiting:wr,onExited:wr};ln.UNMOUNTED=To;ln.EXITED=Xn;ln.ENTERING=Yn;ln.ENTERED=kr;ln.EXITING=Ru;function AS(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Kc(e,t){var n=function(i){return t&&S.isValidElement(i)?t(i):i},r=Object.create(null);return e&&S.Children.map(e,function(o){return o}).forEach(function(o){r[o.key]=n(o)}),r}function jS(e,t){e=e||{},t=t||{};function n(f){return f in t?t[f]:e[f]}var r=Object.create(null),o=[];for(var i in e)i in t?o.length&&(r[i]=o,o=[]):o.push(i);var l,s={};for(var a in t){if(r[a])for(l=0;ls!=="theme"&&s!=="sx"&&s!=="as"})(wi);return S.forwardRef(function(a,u){const f=zs(n),h=Vc(a),{className:m,component:x="div"}=h,g=V(h,VS);return _.jsx(i,w({as:x,ref:u,className:Y(m,o?o(r):r),theme:t&&f[t]||f},g))})}function Ee(e,t,n="Mui"){const r={};return t.forEach(o=>{r[o]=_e(e,o,n)}),r}function Ff(...e){return e.reduce((t,n)=>n==null?t:function(...o){t.apply(this,o),n.apply(this,o)},()=>{})}function g0(e,t=166){let n;function r(...o){const i=()=>{e.apply(this,o)};clearTimeout(n),n=setTimeout(i,t)}return r.clear=()=>{clearTimeout(n)},r}function Sa(e,t){var n,r;return S.isValidElement(e)&&t.indexOf((n=e.type.muiName)!=null?n:(r=e.type)==null||(r=r._payload)==null||(r=r.value)==null?void 0:r.muiName)!==-1}function xt(e){return e&&e.ownerDocument||document}function dr(e){return xt(e).defaultView||window}let Af=0;function GS(e){const[t,n]=S.useState(e),r=e||t;return S.useEffect(()=>{t==null&&(Af+=1,n(`mui-${Af}`))},[t]),r}const jf=ba.useId;function v0(e){if(jf!==void 0){const t=jf();return e??t}return GS(e)}function Df({controlled:e,default:t,name:n,state:r="value"}){const{current:o}=S.useRef(e!==void 0),[i,l]=S.useState(t),s=o?e:i,a=S.useCallback(u=>{o||l(u)},[]);return[s,a]}function y0(e){const t=e.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}const QS=S.createContext(),qS=()=>{const e=S.useContext(QS);return e??!1};function XS(e){const{className:t,classes:n,pulsate:r=!1,rippleX:o,rippleY:i,rippleSize:l,in:s,onExited:a,timeout:u}=e,[f,h]=S.useState(!1),m=Y(t,n.ripple,n.rippleVisible,r&&n.ripplePulsate),x={width:l,height:l,top:-(l/2)+i,left:-(l/2)+o},g=Y(n.child,f&&n.childLeaving,r&&n.childPulsate);return!s&&!f&&h(!0),S.useEffect(()=>{if(!s&&a!=null){const v=setTimeout(a,u);return()=>{clearTimeout(v)}}},[a,s,u]),_.jsx("span",{className:m,style:x,children:_.jsx("span",{className:g})})}const _t=Ee("MuiTouchRipple",["root","ripple","rippleVisible","ripplePulsate","child","childLeaving","childPulsate"]),YS=["center","classes","className"];let As=e=>e,Bf,Wf,Uf,Hf;const _u=550,ZS=80,JS=vs(Bf||(Bf=As` + */var Ac=Symbol.for("react.element"),jc=Symbol.for("react.portal"),ys=Symbol.for("react.fragment"),xs=Symbol.for("react.strict_mode"),Ss=Symbol.for("react.profiler"),ws=Symbol.for("react.provider"),ks=Symbol.for("react.context"),M1=Symbol.for("react.server_context"),Cs=Symbol.for("react.forward_ref"),Es=Symbol.for("react.suspense"),bs=Symbol.for("react.suspense_list"),Ps=Symbol.for("react.memo"),Rs=Symbol.for("react.lazy"),I1=Symbol.for("react.offscreen"),n0;n0=Symbol.for("react.module.reference");function At(e){if(typeof e=="object"&&e!==null){var t=e.$$typeof;switch(t){case Ac:switch(e=e.type,e){case ys:case Ss:case xs:case Es:case bs:return e;default:switch(e=e&&e.$$typeof,e){case M1:case ks:case Cs:case Rs:case Ps:case ws:return e;default:return t}}case jc:return t}}}le.ContextConsumer=ks;le.ContextProvider=ws;le.Element=Ac;le.ForwardRef=Cs;le.Fragment=ys;le.Lazy=Rs;le.Memo=Ps;le.Portal=jc;le.Profiler=Ss;le.StrictMode=xs;le.Suspense=Es;le.SuspenseList=bs;le.isAsyncMode=function(){return!1};le.isConcurrentMode=function(){return!1};le.isContextConsumer=function(e){return At(e)===ks};le.isContextProvider=function(e){return At(e)===ws};le.isElement=function(e){return typeof e=="object"&&e!==null&&e.$$typeof===Ac};le.isForwardRef=function(e){return At(e)===Cs};le.isFragment=function(e){return At(e)===ys};le.isLazy=function(e){return At(e)===Rs};le.isMemo=function(e){return At(e)===Ps};le.isPortal=function(e){return At(e)===jc};le.isProfiler=function(e){return At(e)===Ss};le.isStrictMode=function(e){return At(e)===xs};le.isSuspense=function(e){return At(e)===Es};le.isSuspenseList=function(e){return At(e)===bs};le.isValidElementType=function(e){return typeof e=="string"||typeof e=="function"||e===ys||e===Ss||e===xs||e===Es||e===bs||e===I1||typeof e=="object"&&e!==null&&(e.$$typeof===Rs||e.$$typeof===Ps||e.$$typeof===ws||e.$$typeof===ks||e.$$typeof===Cs||e.$$typeof===n0||e.getModuleId!==void 0)};le.typeOf=At;t0.exports=le;var Ef=t0.exports;const N1=/^\s*function(?:\s|\s*\/\*.*\*\/\s*)+([^(\s/]*)\s*/;function r0(e){const t=`${e}`.match(N1);return t&&t[1]||""}function o0(e,t=""){return e.displayName||e.name||r0(e)||t}function bf(e,t,n){const r=o0(t);return e.displayName||(r!==""?`${n}(${r})`:n)}function z1(e){if(e!=null){if(typeof e=="string")return e;if(typeof e=="function")return o0(e,"Component");if(typeof e=="object")switch(e.$$typeof){case Ef.ForwardRef:return bf(e,e.render,"ForwardRef");case Ef.Memo:return bf(e,e.type,"memo");default:return}}}const L1=Object.freeze(Object.defineProperty({__proto__:null,default:z1,getFunctionName:r0},Symbol.toStringTag,{value:"Module"})),F1=Wn(L1),A1=["values","unit","step"],j1=e=>{const t=Object.keys(e).map(n=>({key:n,val:e[n]}))||[];return t.sort((n,r)=>n.val-r.val),t.reduce((n,r)=>w({},n,{[r.key]:r.val}),{})};function i0(e){const{values:t={xs:0,sm:600,md:900,lg:1200,xl:1536},unit:n="px",step:r=5}=e,o=V(e,A1),i=j1(t),l=Object.keys(i);function s(m){return`@media (min-width:${typeof t[m]=="number"?t[m]:m}${n})`}function a(m){return`@media (max-width:${(typeof t[m]=="number"?t[m]:m)-r/100}${n})`}function u(m,x){const g=l.indexOf(x);return`@media (min-width:${typeof t[m]=="number"?t[m]:m}${n}) and (max-width:${(g!==-1&&typeof t[l[g]]=="number"?t[l[g]]:x)-r/100}${n})`}function f(m){return l.indexOf(m)+1`@media (min-width:${Dc[e]}px)`};function xn(e,t,n){const r=e.theme||{};if(Array.isArray(t)){const i=r.breakpoints||Pf;return t.reduce((l,s,a)=>(l[i.up(i.keys[a])]=n(t[a]),l),{})}if(typeof t=="object"){const i=r.breakpoints||Pf;return Object.keys(t).reduce((l,s)=>{if(Object.keys(i.values||Dc).indexOf(s)!==-1){const a=i.up(s);l[a]=n(t[s],s)}else{const a=s;l[a]=t[a]}return l},{})}return n(t)}function B1(e={}){var t;return((t=e.keys)==null?void 0:t.reduce((r,o)=>{const i=e.up(o);return r[i]={},r},{}))||{}}function W1(e,t){return e.reduce((n,r)=>{const o=n[r];return(!o||Object.keys(o).length===0)&&delete n[r],n},t)}function _s(e,t,n=!0){if(!t||typeof t!="string")return null;if(e&&e.vars&&n){const r=`vars.${t}`.split(".").reduce((o,i)=>o&&o[i]?o[i]:null,e);if(r!=null)return r}return t.split(".").reduce((r,o)=>r&&r[o]!=null?r[o]:null,e)}function Ll(e,t,n,r=n){let o;return typeof e=="function"?o=e(n):Array.isArray(e)?o=e[n]||r:o=_s(e,n)||r,t&&(o=t(o,r,e)),o}function Ne(e){const{prop:t,cssProperty:n=e.prop,themeKey:r,transform:o}=e,i=l=>{if(l[t]==null)return null;const s=l[t],a=l.theme,u=_s(a,r)||{};return xn(l,s,h=>{let m=Ll(u,o,h);return h===m&&typeof h=="string"&&(m=Ll(u,o,`${t}${h==="default"?"":Z(h)}`,h)),n===!1?m:{[n]:m}})};return i.propTypes={},i.filterProps=[t],i}function U1(e){const t={};return n=>(t[n]===void 0&&(t[n]=e(n)),t[n])}const H1={m:"margin",p:"padding"},V1={t:"Top",r:"Right",b:"Bottom",l:"Left",x:["Left","Right"],y:["Top","Bottom"]},Rf={marginX:"mx",marginY:"my",paddingX:"px",paddingY:"py"},K1=U1(e=>{if(e.length>2)if(Rf[e])e=Rf[e];else return[e];const[t,n]=e.split(""),r=H1[t],o=V1[n]||"";return Array.isArray(o)?o.map(i=>r+i):[r+o]}),Bc=["m","mt","mr","mb","ml","mx","my","margin","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","marginInline","marginInlineStart","marginInlineEnd","marginBlock","marginBlockStart","marginBlockEnd"],Wc=["p","pt","pr","pb","pl","px","py","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingX","paddingY","paddingInline","paddingInlineStart","paddingInlineEnd","paddingBlock","paddingBlockStart","paddingBlockEnd"];[...Bc,...Wc];function yi(e,t,n,r){var o;const i=(o=_s(e,t,!1))!=null?o:n;return typeof i=="number"?l=>typeof l=="string"?l:i*l:Array.isArray(i)?l=>typeof l=="string"?l:i[l]:typeof i=="function"?i:()=>{}}function l0(e){return yi(e,"spacing",8)}function xi(e,t){if(typeof t=="string"||t==null)return t;const n=Math.abs(t),r=e(n);return t>=0?r:typeof r=="number"?-r:`-${r}`}function G1(e,t){return n=>e.reduce((r,o)=>(r[o]=xi(t,n),r),{})}function Q1(e,t,n,r){if(t.indexOf(n)===-1)return null;const o=K1(n),i=G1(o,r),l=e[n];return xn(e,l,i)}function s0(e,t){const n=l0(e.theme);return Object.keys(e).map(r=>Q1(e,t,r,n)).reduce(Bo,{})}function be(e){return s0(e,Bc)}be.propTypes={};be.filterProps=Bc;function Pe(e){return s0(e,Wc)}Pe.propTypes={};Pe.filterProps=Wc;function q1(e=8){if(e.mui)return e;const t=l0({spacing:e}),n=(...r)=>(r.length===0?[1]:r).map(i=>{const l=t(i);return typeof l=="number"?`${l}px`:l}).join(" ");return n.mui=!0,n}function Ts(...e){const t=e.reduce((r,o)=>(o.filterProps.forEach(i=>{r[i]=o}),r),{}),n=r=>Object.keys(r).reduce((o,i)=>t[i]?Bo(o,t[i](r)):o,{});return n.propTypes={},n.filterProps=e.reduce((r,o)=>r.concat(o.filterProps),[]),n}function Mt(e){return typeof e!="number"?e:`${e}px solid`}function jt(e,t){return Ne({prop:e,themeKey:"borders",transform:t})}const X1=jt("border",Mt),Y1=jt("borderTop",Mt),Z1=jt("borderRight",Mt),J1=jt("borderBottom",Mt),ex=jt("borderLeft",Mt),tx=jt("borderColor"),nx=jt("borderTopColor"),rx=jt("borderRightColor"),ox=jt("borderBottomColor"),ix=jt("borderLeftColor"),lx=jt("outline",Mt),sx=jt("outlineColor"),$s=e=>{if(e.borderRadius!==void 0&&e.borderRadius!==null){const t=yi(e.theme,"shape.borderRadius",4),n=r=>({borderRadius:xi(t,r)});return xn(e,e.borderRadius,n)}return null};$s.propTypes={};$s.filterProps=["borderRadius"];Ts(X1,Y1,Z1,J1,ex,tx,nx,rx,ox,ix,$s,lx,sx);const Os=e=>{if(e.gap!==void 0&&e.gap!==null){const t=yi(e.theme,"spacing",8),n=r=>({gap:xi(t,r)});return xn(e,e.gap,n)}return null};Os.propTypes={};Os.filterProps=["gap"];const Ms=e=>{if(e.columnGap!==void 0&&e.columnGap!==null){const t=yi(e.theme,"spacing",8),n=r=>({columnGap:xi(t,r)});return xn(e,e.columnGap,n)}return null};Ms.propTypes={};Ms.filterProps=["columnGap"];const Is=e=>{if(e.rowGap!==void 0&&e.rowGap!==null){const t=yi(e.theme,"spacing",8),n=r=>({rowGap:xi(t,r)});return xn(e,e.rowGap,n)}return null};Is.propTypes={};Is.filterProps=["rowGap"];const ax=Ne({prop:"gridColumn"}),ux=Ne({prop:"gridRow"}),cx=Ne({prop:"gridAutoFlow"}),dx=Ne({prop:"gridAutoColumns"}),fx=Ne({prop:"gridAutoRows"}),px=Ne({prop:"gridTemplateColumns"}),mx=Ne({prop:"gridTemplateRows"}),hx=Ne({prop:"gridTemplateAreas"}),gx=Ne({prop:"gridArea"});Ts(Os,Ms,Is,ax,ux,cx,dx,fx,px,mx,hx,gx);function Vr(e,t){return t==="grey"?t:e}const vx=Ne({prop:"color",themeKey:"palette",transform:Vr}),yx=Ne({prop:"bgcolor",cssProperty:"backgroundColor",themeKey:"palette",transform:Vr}),xx=Ne({prop:"backgroundColor",themeKey:"palette",transform:Vr});Ts(vx,yx,xx);function ht(e){return e<=1&&e!==0?`${e*100}%`:e}const Sx=Ne({prop:"width",transform:ht}),Uc=e=>{if(e.maxWidth!==void 0&&e.maxWidth!==null){const t=n=>{var r,o;const i=((r=e.theme)==null||(r=r.breakpoints)==null||(r=r.values)==null?void 0:r[n])||Dc[n];return i?((o=e.theme)==null||(o=o.breakpoints)==null?void 0:o.unit)!=="px"?{maxWidth:`${i}${e.theme.breakpoints.unit}`}:{maxWidth:i}:{maxWidth:ht(n)}};return xn(e,e.maxWidth,t)}return null};Uc.filterProps=["maxWidth"];const wx=Ne({prop:"minWidth",transform:ht}),kx=Ne({prop:"height",transform:ht}),Cx=Ne({prop:"maxHeight",transform:ht}),Ex=Ne({prop:"minHeight",transform:ht});Ne({prop:"size",cssProperty:"width",transform:ht});Ne({prop:"size",cssProperty:"height",transform:ht});const bx=Ne({prop:"boxSizing"});Ts(Sx,Uc,wx,kx,Cx,Ex,bx);const Si={border:{themeKey:"borders",transform:Mt},borderTop:{themeKey:"borders",transform:Mt},borderRight:{themeKey:"borders",transform:Mt},borderBottom:{themeKey:"borders",transform:Mt},borderLeft:{themeKey:"borders",transform:Mt},borderColor:{themeKey:"palette"},borderTopColor:{themeKey:"palette"},borderRightColor:{themeKey:"palette"},borderBottomColor:{themeKey:"palette"},borderLeftColor:{themeKey:"palette"},outline:{themeKey:"borders",transform:Mt},outlineColor:{themeKey:"palette"},borderRadius:{themeKey:"shape.borderRadius",style:$s},color:{themeKey:"palette",transform:Vr},bgcolor:{themeKey:"palette",cssProperty:"backgroundColor",transform:Vr},backgroundColor:{themeKey:"palette",transform:Vr},p:{style:Pe},pt:{style:Pe},pr:{style:Pe},pb:{style:Pe},pl:{style:Pe},px:{style:Pe},py:{style:Pe},padding:{style:Pe},paddingTop:{style:Pe},paddingRight:{style:Pe},paddingBottom:{style:Pe},paddingLeft:{style:Pe},paddingX:{style:Pe},paddingY:{style:Pe},paddingInline:{style:Pe},paddingInlineStart:{style:Pe},paddingInlineEnd:{style:Pe},paddingBlock:{style:Pe},paddingBlockStart:{style:Pe},paddingBlockEnd:{style:Pe},m:{style:be},mt:{style:be},mr:{style:be},mb:{style:be},ml:{style:be},mx:{style:be},my:{style:be},margin:{style:be},marginTop:{style:be},marginRight:{style:be},marginBottom:{style:be},marginLeft:{style:be},marginX:{style:be},marginY:{style:be},marginInline:{style:be},marginInlineStart:{style:be},marginInlineEnd:{style:be},marginBlock:{style:be},marginBlockStart:{style:be},marginBlockEnd:{style:be},displayPrint:{cssProperty:!1,transform:e=>({"@media print":{display:e}})},display:{},overflow:{},textOverflow:{},visibility:{},whiteSpace:{},flexBasis:{},flexDirection:{},flexWrap:{},justifyContent:{},alignItems:{},alignContent:{},order:{},flex:{},flexGrow:{},flexShrink:{},alignSelf:{},justifyItems:{},justifySelf:{},gap:{style:Os},rowGap:{style:Is},columnGap:{style:Ms},gridColumn:{},gridRow:{},gridAutoFlow:{},gridAutoColumns:{},gridAutoRows:{},gridTemplateColumns:{},gridTemplateRows:{},gridTemplateAreas:{},gridArea:{},position:{},zIndex:{themeKey:"zIndex"},top:{},right:{},bottom:{},left:{},boxShadow:{themeKey:"shadows"},width:{transform:ht},maxWidth:{style:Uc},minWidth:{transform:ht},height:{transform:ht},maxHeight:{transform:ht},minHeight:{transform:ht},boxSizing:{},fontFamily:{themeKey:"typography"},fontSize:{themeKey:"typography"},fontStyle:{themeKey:"typography"},fontWeight:{themeKey:"typography"},letterSpacing:{},textTransform:{},lineHeight:{},textAlign:{},typography:{cssProperty:!1,themeKey:"typography"}};function Px(...e){const t=e.reduce((r,o)=>r.concat(Object.keys(o)),[]),n=new Set(t);return e.every(r=>n.size===Object.keys(r).length)}function Rx(e,t){return typeof e=="function"?e(t):e}function a0(){function e(n,r,o,i){const l={[n]:r,theme:o},s=i[n];if(!s)return{[n]:r};const{cssProperty:a=n,themeKey:u,transform:f,style:h}=s;if(r==null)return null;if(u==="typography"&&r==="inherit")return{[n]:r};const m=_s(o,u)||{};return h?h(l):xn(l,r,g=>{let v=Ll(m,f,g);return g===v&&typeof g=="string"&&(v=Ll(m,f,`${n}${g==="default"?"":Z(g)}`,g)),a===!1?v:{[a]:v}})}function t(n){var r;const{sx:o,theme:i={}}=n||{};if(!o)return null;const l=(r=i.unstable_sxConfig)!=null?r:Si;function s(a){let u=a;if(typeof a=="function")u=a(i);else if(typeof a!="object")return a;if(!u)return null;const f=B1(i.breakpoints),h=Object.keys(f);let m=f;return Object.keys(u).forEach(x=>{const g=Rx(u[x],i);if(g!=null)if(typeof g=="object")if(l[x])m=Bo(m,e(x,g,i,l));else{const v=xn({theme:i},g,b=>({[x]:b}));Px(v,g)?m[x]=t({sx:g,theme:i}):m=Bo(m,v)}else m=Bo(m,e(x,g,i,l))}),W1(h,m)}return Array.isArray(o)?o.map(s):s(o)}return t}const wi=a0();wi.filterProps=["sx"];function u0(e,t){const n=this;return n.vars&&typeof n.getColorSchemeSelector=="function"?{[n.getColorSchemeSelector(e).replace(/(\[[^\]]+\])/,"*:where($1)")]:t}:n.palette.mode===e?t:{}}const _x=["breakpoints","palette","spacing","shape"];function Hc(e={},...t){const{breakpoints:n={},palette:r={},spacing:o,shape:i={}}=e,l=V(e,_x),s=i0(n),a=q1(o);let u=xt({breakpoints:s,direction:"ltr",components:{},palette:w({mode:"light"},r),spacing:a,shape:w({},D1,i)},l);return u.applyStyles=u0,u=t.reduce((f,h)=>xt(f,h),u),u.unstable_sxConfig=w({},Si,l==null?void 0:l.unstable_sxConfig),u.unstable_sx=function(h){return wi({sx:h,theme:this})},u}const Tx=Object.freeze(Object.defineProperty({__proto__:null,default:Hc,private_createBreakpoints:i0,unstable_applyStyles:u0},Symbol.toStringTag,{value:"Module"})),$x=Wn(Tx),Ox=["sx"],Mx=e=>{var t,n;const r={systemProps:{},otherProps:{}},o=(t=e==null||(n=e.theme)==null?void 0:n.unstable_sxConfig)!=null?t:Si;return Object.keys(e).forEach(i=>{o[i]?r.systemProps[i]=e[i]:r.otherProps[i]=e[i]}),r};function Vc(e){const{sx:t}=e,n=V(e,Ox),{systemProps:r,otherProps:o}=Mx(n);let i;return Array.isArray(t)?i=[r,...t]:typeof t=="function"?i=(...l)=>{const s=t(...l);return Tn(s)?w({},r,s):r}:i=w({},r,t),w({},o,{sx:i})}const Ix=Object.freeze(Object.defineProperty({__proto__:null,default:wi,extendSxProp:Vc,unstable_createStyleFunctionSx:a0,unstable_defaultSxConfig:Si},Symbol.toStringTag,{value:"Module"})),Nx=Wn(Ix);var so=Eh;Object.defineProperty(gi,"__esModule",{value:!0});var zx=gi.default=Qx;gi.shouldForwardProp=ll;gi.systemDefaultTheme=void 0;var _t=so(Oh()),Cu=so(ky()),_f=Wx(R1),Lx=T1;so(O1);so(F1);var Fx=so($x),Ax=so(Nx);const jx=["ownerState"],Dx=["variants"],Bx=["name","slot","skipVariantsResolver","skipSx","overridesResolver"];function c0(e){if(typeof WeakMap!="function")return null;var t=new WeakMap,n=new WeakMap;return(c0=function(r){return r?n:t})(e)}function Wx(e,t){if(e&&e.__esModule)return e;if(e===null||typeof e!="object"&&typeof e!="function")return{default:e};var n=c0(t);if(n&&n.has(e))return n.get(e);var r={__proto__:null},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if(i!=="default"&&Object.prototype.hasOwnProperty.call(e,i)){var l=o?Object.getOwnPropertyDescriptor(e,i):null;l&&(l.get||l.set)?Object.defineProperty(r,i,l):r[i]=e[i]}return r.default=e,n&&n.set(e,r),r}function Ux(e){return Object.keys(e).length===0}function Hx(e){return typeof e=="string"&&e.charCodeAt(0)>96}function ll(e){return e!=="ownerState"&&e!=="theme"&&e!=="sx"&&e!=="as"}const Vx=gi.systemDefaultTheme=(0,Fx.default)(),Kx=e=>e&&e.charAt(0).toLowerCase()+e.slice(1);function Wi({defaultTheme:e,theme:t,themeId:n}){return Ux(t)?e:t[n]||t}function Gx(e){return e?(t,n)=>n[e]:null}function sl(e,t){let{ownerState:n}=t,r=(0,Cu.default)(t,jx);const o=typeof e=="function"?e((0,_t.default)({ownerState:n},r)):e;if(Array.isArray(o))return o.flatMap(i=>sl(i,(0,_t.default)({ownerState:n},r)));if(o&&typeof o=="object"&&Array.isArray(o.variants)){const{variants:i=[]}=o;let s=(0,Cu.default)(o,Dx);return i.forEach(a=>{let u=!0;typeof a.props=="function"?u=a.props((0,_t.default)({ownerState:n},r,n)):Object.keys(a.props).forEach(f=>{(n==null?void 0:n[f])!==a.props[f]&&r[f]!==a.props[f]&&(u=!1)}),u&&(Array.isArray(s)||(s=[s]),s.push(typeof a.style=="function"?a.style((0,_t.default)({ownerState:n},r,n)):a.style))}),s}return o}function Qx(e={}){const{themeId:t,defaultTheme:n=Vx,rootShouldForwardProp:r=ll,slotShouldForwardProp:o=ll}=e,i=l=>(0,Ax.default)((0,_t.default)({},l,{theme:Wi((0,_t.default)({},l,{defaultTheme:n,themeId:t}))}));return i.__mui_systemSx=!0,(l,s={})=>{(0,_f.internal_processStyles)(l,k=>k.filter(E=>!(E!=null&&E.__mui_systemSx)));const{name:a,slot:u,skipVariantsResolver:f,skipSx:h,overridesResolver:m=Gx(Kx(u))}=s,x=(0,Cu.default)(s,Bx),g=f!==void 0?f:u&&u!=="Root"&&u!=="root"||!1,v=h||!1;let b,p=ll;u==="Root"||u==="root"?p=r:u?p=o:Hx(l)&&(p=void 0);const c=(0,_f.default)(l,(0,_t.default)({shouldForwardProp:p,label:b},x)),d=k=>typeof k=="function"&&k.__emotion_real!==k||(0,Lx.isPlainObject)(k)?E=>sl(k,(0,_t.default)({},E,{theme:Wi({theme:E.theme,defaultTheme:n,themeId:t})})):k,y=(k,...E)=>{let C=d(k);const R=E?E.map(d):[];a&&m&&R.push(j=>{const D=Wi((0,_t.default)({},j,{defaultTheme:n,themeId:t}));if(!D.components||!D.components[a]||!D.components[a].styleOverrides)return null;const F=D.components[a].styleOverrides,I={};return Object.entries(F).forEach(([N,z])=>{I[N]=sl(z,(0,_t.default)({},j,{theme:D}))}),m(j,I)}),a&&!g&&R.push(j=>{var D;const F=Wi((0,_t.default)({},j,{defaultTheme:n,themeId:t})),I=F==null||(D=F.components)==null||(D=D[a])==null?void 0:D.variants;return sl({variants:I},(0,_t.default)({},j,{theme:F}))}),v||R.push(i);const O=R.length-E.length;if(Array.isArray(k)&&O>0){const j=new Array(O).fill("");C=[...k,...j],C.raw=[...k.raw,...j]}const T=c(C,...R);return l.muiName&&(T.muiName=l.muiName),T};return c.withConfig&&(y.withConfig=c.withConfig),y}}const Tf=e=>e,qx=()=>{let e=Tf;return{configure(t){e=t},generate(t){return e(t)},reset(){e=Tf}}},d0=qx(),Xx={active:"active",checked:"checked",completed:"completed",disabled:"disabled",error:"error",expanded:"expanded",focused:"focused",focusVisible:"focusVisible",open:"open",readOnly:"readOnly",required:"required",selected:"selected"};function _e(e,t,n="Mui"){const r=Xx[t];return r?`${n}-${r}`:`${d0.generate(e)}-${t}`}function Yx(e,t){return w({toolbar:{minHeight:56,[e.up("xs")]:{"@media (orientation: landscape)":{minHeight:48}},[e.up("sm")]:{minHeight:64}}},t)}const ci={black:"#000",white:"#fff"},Zx={50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121",A100:"#f5f5f5",A200:"#eeeeee",A400:"#bdbdbd",A700:"#616161"},vr={50:"#f3e5f5",100:"#e1bee7",200:"#ce93d8",300:"#ba68c8",400:"#ab47bc",500:"#9c27b0",600:"#8e24aa",700:"#7b1fa2",800:"#6a1b9a",900:"#4a148c",A100:"#ea80fc",A200:"#e040fb",A400:"#d500f9",A700:"#aa00ff"},yr={50:"#ffebee",100:"#ffcdd2",200:"#ef9a9a",300:"#e57373",400:"#ef5350",500:"#f44336",600:"#e53935",700:"#d32f2f",800:"#c62828",900:"#b71c1c",A100:"#ff8a80",A200:"#ff5252",A400:"#ff1744",A700:"#d50000"},ko={50:"#fff3e0",100:"#ffe0b2",200:"#ffcc80",300:"#ffb74d",400:"#ffa726",500:"#ff9800",600:"#fb8c00",700:"#f57c00",800:"#ef6c00",900:"#e65100",A100:"#ffd180",A200:"#ffab40",A400:"#ff9100",A700:"#ff6d00"},xr={50:"#e3f2fd",100:"#bbdefb",200:"#90caf9",300:"#64b5f6",400:"#42a5f5",500:"#2196f3",600:"#1e88e5",700:"#1976d2",800:"#1565c0",900:"#0d47a1",A100:"#82b1ff",A200:"#448aff",A400:"#2979ff",A700:"#2962ff"},Sr={50:"#e1f5fe",100:"#b3e5fc",200:"#81d4fa",300:"#4fc3f7",400:"#29b6f6",500:"#03a9f4",600:"#039be5",700:"#0288d1",800:"#0277bd",900:"#01579b",A100:"#80d8ff",A200:"#40c4ff",A400:"#00b0ff",A700:"#0091ea"},wr={50:"#e8f5e9",100:"#c8e6c9",200:"#a5d6a7",300:"#81c784",400:"#66bb6a",500:"#4caf50",600:"#43a047",700:"#388e3c",800:"#2e7d32",900:"#1b5e20",A100:"#b9f6ca",A200:"#69f0ae",A400:"#00e676",A700:"#00c853"},Jx=["mode","contrastThreshold","tonalOffset"],$f={text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.38)"},divider:"rgba(0, 0, 0, 0.12)",background:{paper:ci.white,default:ci.white},action:{active:"rgba(0, 0, 0, 0.54)",hover:"rgba(0, 0, 0, 0.04)",hoverOpacity:.04,selected:"rgba(0, 0, 0, 0.08)",selectedOpacity:.08,disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(0, 0, 0, 0.12)",disabledOpacity:.38,focus:"rgba(0, 0, 0, 0.12)",focusOpacity:.12,activatedOpacity:.12}},ya={text:{primary:ci.white,secondary:"rgba(255, 255, 255, 0.7)",disabled:"rgba(255, 255, 255, 0.5)",icon:"rgba(255, 255, 255, 0.5)"},divider:"rgba(255, 255, 255, 0.12)",background:{paper:"#121212",default:"#121212"},action:{active:ci.white,hover:"rgba(255, 255, 255, 0.08)",hoverOpacity:.08,selected:"rgba(255, 255, 255, 0.16)",selectedOpacity:.16,disabled:"rgba(255, 255, 255, 0.3)",disabledBackground:"rgba(255, 255, 255, 0.12)",disabledOpacity:.38,focus:"rgba(255, 255, 255, 0.12)",focusOpacity:.12,activatedOpacity:.24}};function Of(e,t,n,r){const o=r.light||r,i=r.dark||r*1.5;e[t]||(e.hasOwnProperty(n)?e[t]=e[n]:t==="light"?e.light=dy(e.main,o):t==="dark"&&(e.dark=uy(e.main,i)))}function eS(e="light"){return e==="dark"?{main:xr[200],light:xr[50],dark:xr[400]}:{main:xr[700],light:xr[400],dark:xr[800]}}function tS(e="light"){return e==="dark"?{main:vr[200],light:vr[50],dark:vr[400]}:{main:vr[500],light:vr[300],dark:vr[700]}}function nS(e="light"){return e==="dark"?{main:yr[500],light:yr[300],dark:yr[700]}:{main:yr[700],light:yr[400],dark:yr[800]}}function rS(e="light"){return e==="dark"?{main:Sr[400],light:Sr[300],dark:Sr[700]}:{main:Sr[700],light:Sr[500],dark:Sr[900]}}function oS(e="light"){return e==="dark"?{main:wr[400],light:wr[300],dark:wr[700]}:{main:wr[800],light:wr[500],dark:wr[900]}}function iS(e="light"){return e==="dark"?{main:ko[400],light:ko[300],dark:ko[700]}:{main:"#ed6c02",light:ko[500],dark:ko[900]}}function lS(e){const{mode:t="light",contrastThreshold:n=3,tonalOffset:r=.2}=e,o=V(e,Jx),i=e.primary||eS(t),l=e.secondary||tS(t),s=e.error||nS(t),a=e.info||rS(t),u=e.success||oS(t),f=e.warning||iS(t);function h(v){return cy(v,ya.text.primary)>=n?ya.text.primary:$f.text.primary}const m=({color:v,name:b,mainShade:p=500,lightShade:c=300,darkShade:d=700})=>{if(v=w({},v),!v.main&&v[p]&&(v.main=v[p]),!v.hasOwnProperty("main"))throw new Error(cr(11,b?` (${b})`:"",p));if(typeof v.main!="string")throw new Error(cr(12,b?` (${b})`:"",JSON.stringify(v.main)));return Of(v,"light",c,r),Of(v,"dark",d,r),v.contrastText||(v.contrastText=h(v.main)),v},x={dark:ya,light:$f};return xt(w({common:w({},ci),mode:t,primary:m({color:i,name:"primary"}),secondary:m({color:l,name:"secondary",mainShade:"A400",lightShade:"A200",darkShade:"A700"}),error:m({color:s,name:"error"}),warning:m({color:f,name:"warning"}),info:m({color:a,name:"info"}),success:m({color:u,name:"success"}),grey:Zx,contrastThreshold:n,getContrastText:h,augmentColor:m,tonalOffset:r},x[t]),o)}const sS=["fontFamily","fontSize","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","htmlFontSize","allVariants","pxToRem"];function aS(e){return Math.round(e*1e5)/1e5}const Mf={textTransform:"uppercase"},If='"Roboto", "Helvetica", "Arial", sans-serif';function uS(e,t){const n=typeof t=="function"?t(e):t,{fontFamily:r=If,fontSize:o=14,fontWeightLight:i=300,fontWeightRegular:l=400,fontWeightMedium:s=500,fontWeightBold:a=700,htmlFontSize:u=16,allVariants:f,pxToRem:h}=n,m=V(n,sS),x=o/14,g=h||(p=>`${p/u*x}rem`),v=(p,c,d,y,k)=>w({fontFamily:r,fontWeight:p,fontSize:g(c),lineHeight:d},r===If?{letterSpacing:`${aS(y/c)}em`}:{},k,f),b={h1:v(i,96,1.167,-1.5),h2:v(i,60,1.2,-.5),h3:v(l,48,1.167,0),h4:v(l,34,1.235,.25),h5:v(l,24,1.334,0),h6:v(s,20,1.6,.15),subtitle1:v(l,16,1.75,.15),subtitle2:v(s,14,1.57,.1),body1:v(l,16,1.5,.15),body2:v(l,14,1.43,.15),button:v(s,14,1.75,.4,Mf),caption:v(l,12,1.66,.4),overline:v(l,12,2.66,1,Mf),inherit:{fontFamily:"inherit",fontWeight:"inherit",fontSize:"inherit",lineHeight:"inherit",letterSpacing:"inherit"}};return xt(w({htmlFontSize:u,pxToRem:g,fontFamily:r,fontSize:o,fontWeightLight:i,fontWeightRegular:l,fontWeightMedium:s,fontWeightBold:a},b),m,{clone:!1})}const cS=.2,dS=.14,fS=.12;function ve(...e){return[`${e[0]}px ${e[1]}px ${e[2]}px ${e[3]}px rgba(0,0,0,${cS})`,`${e[4]}px ${e[5]}px ${e[6]}px ${e[7]}px rgba(0,0,0,${dS})`,`${e[8]}px ${e[9]}px ${e[10]}px ${e[11]}px rgba(0,0,0,${fS})`].join(",")}const pS=["none",ve(0,2,1,-1,0,1,1,0,0,1,3,0),ve(0,3,1,-2,0,2,2,0,0,1,5,0),ve(0,3,3,-2,0,3,4,0,0,1,8,0),ve(0,2,4,-1,0,4,5,0,0,1,10,0),ve(0,3,5,-1,0,5,8,0,0,1,14,0),ve(0,3,5,-1,0,6,10,0,0,1,18,0),ve(0,4,5,-2,0,7,10,1,0,2,16,1),ve(0,5,5,-3,0,8,10,1,0,3,14,2),ve(0,5,6,-3,0,9,12,1,0,3,16,2),ve(0,6,6,-3,0,10,14,1,0,4,18,3),ve(0,6,7,-4,0,11,15,1,0,4,20,3),ve(0,7,8,-4,0,12,17,2,0,5,22,4),ve(0,7,8,-4,0,13,19,2,0,5,24,4),ve(0,7,9,-4,0,14,21,2,0,5,26,4),ve(0,8,9,-5,0,15,22,2,0,6,28,5),ve(0,8,10,-5,0,16,24,2,0,6,30,5),ve(0,8,11,-5,0,17,26,2,0,6,32,5),ve(0,9,11,-5,0,18,28,2,0,7,34,6),ve(0,9,12,-6,0,19,29,2,0,7,36,6),ve(0,10,13,-6,0,20,31,3,0,8,38,7),ve(0,10,13,-6,0,21,33,3,0,8,40,7),ve(0,10,14,-6,0,22,35,3,0,8,42,7),ve(0,11,14,-7,0,23,36,3,0,9,44,8),ve(0,11,15,-7,0,24,38,3,0,9,46,8)],mS=["duration","easing","delay"],hS={easeInOut:"cubic-bezier(0.4, 0, 0.2, 1)",easeOut:"cubic-bezier(0.0, 0, 0.2, 1)",easeIn:"cubic-bezier(0.4, 0, 1, 1)",sharp:"cubic-bezier(0.4, 0, 0.6, 1)"},gS={shortest:150,shorter:200,short:250,standard:300,complex:375,enteringScreen:225,leavingScreen:195};function Nf(e){return`${Math.round(e)}ms`}function vS(e){if(!e)return 0;const t=e/36;return Math.round((4+15*t**.25+t/5)*10)}function yS(e){const t=w({},hS,e.easing),n=w({},gS,e.duration);return w({getAutoHeightDuration:vS,create:(o=["all"],i={})=>{const{duration:l=n.standard,easing:s=t.easeInOut,delay:a=0}=i;return V(i,mS),(Array.isArray(o)?o:[o]).map(u=>`${u} ${typeof l=="string"?l:Nf(l)} ${s} ${typeof a=="string"?a:Nf(a)}`).join(",")}},e,{easing:t,duration:n})}const xS={mobileStepper:1e3,fab:1050,speedDial:1050,appBar:1100,drawer:1200,modal:1300,snackbar:1400,tooltip:1500},SS=["breakpoints","mixins","spacing","palette","transitions","typography","shape"];function f0(e={},...t){const{mixins:n={},palette:r={},transitions:o={},typography:i={}}=e,l=V(e,SS);if(e.vars)throw new Error(cr(18));const s=lS(r),a=Hc(e);let u=xt(a,{mixins:Yx(a.breakpoints,n),palette:s,shadows:pS.slice(),typography:uS(s,i),transitions:yS(o),zIndex:w({},xS)});return u=xt(u,l),u=t.reduce((f,h)=>xt(f,h),u),u.unstable_sxConfig=w({},Si,l==null?void 0:l.unstable_sxConfig),u.unstable_sx=function(h){return wi({sx:h,theme:this})},u}const Ns=f0(),ki="$$material";function p0(e){return e!=="ownerState"&&e!=="theme"&&e!=="sx"&&e!=="as"}const qt=e=>p0(e)&&e!=="classes",K=zx({themeId:ki,defaultTheme:Ns,rootShouldForwardProp:qt});function wS(e){const{theme:t,name:n,props:r}=e;return!t||!t.components||!t.components[n]||!t.components[n].defaultProps?r:Rc(t.components[n].defaultProps,r)}function kS(e){return Object.keys(e).length===0}function CS(e=null){const t=S.useContext(gs);return!t||kS(t)?e:t}const ES=Hc();function zs(e=ES){return CS(e)}function bS({props:e,name:t,defaultTheme:n,themeId:r}){let o=zs(n);return r&&(o=o[r]||o),wS({theme:o,name:t,props:e})}function Te({props:e,name:t}){return bS({props:e,name:t,defaultTheme:Ns,themeId:ki})}function Eu(e,t){typeof e=="function"?e(t):e&&(e.current=t)}function ft(...e){return S.useMemo(()=>e.every(t=>t==null)?null:t=>{e.forEach(n=>{Eu(n,t)})},e)}const dr=typeof window<"u"?S.useLayoutEffect:S.useEffect;function Fr(e){const t=S.useRef(e);return dr(()=>{t.current=e}),S.useRef((...n)=>(0,t.current)(...n)).current}const zf={};function PS(e,t){const n=S.useRef(zf);return n.current===zf&&(n.current=e(t)),n}const RS=[];function _S(e){S.useEffect(e,RS)}class Ls{constructor(){this.currentId=null,this.clear=()=>{this.currentId!==null&&(clearTimeout(this.currentId),this.currentId=null)},this.disposeEffect=()=>this.clear}static create(){return new Ls}start(t,n){this.clear(),this.currentId=setTimeout(()=>{this.currentId=null,n()},t)}}function m0(){const e=PS(Ls.create).current;return _S(e.disposeEffect),e}let Fs=!0,bu=!1;const TS=new Ls,$S={text:!0,search:!0,url:!0,tel:!0,email:!0,password:!0,number:!0,date:!0,month:!0,week:!0,time:!0,datetime:!0,"datetime-local":!0};function OS(e){const{type:t,tagName:n}=e;return!!(n==="INPUT"&&$S[t]&&!e.readOnly||n==="TEXTAREA"&&!e.readOnly||e.isContentEditable)}function MS(e){e.metaKey||e.altKey||e.ctrlKey||(Fs=!0)}function xa(){Fs=!1}function IS(){this.visibilityState==="hidden"&&bu&&(Fs=!0)}function NS(e){e.addEventListener("keydown",MS,!0),e.addEventListener("mousedown",xa,!0),e.addEventListener("pointerdown",xa,!0),e.addEventListener("touchstart",xa,!0),e.addEventListener("visibilitychange",IS,!0)}function zS(e){const{target:t}=e;try{return t.matches(":focus-visible")}catch{}return Fs||OS(t)}function LS(){const e=S.useCallback(o=>{o!=null&&NS(o.ownerDocument)},[]),t=S.useRef(!1);function n(){return t.current?(bu=!0,TS.start(100,()=>{bu=!1}),t.current=!1,!0):!1}function r(o){return zS(o)?(t.current=!0,!0):!1}return{isFocusVisibleRef:t,onFocus:r,onBlur:n,ref:e}}function Pu(e,t){return Pu=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,o){return r.__proto__=o,r},Pu(e,t)}function h0(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,Pu(e,t)}const Lf={disabled:!1},Fl=Vt.createContext(null);var FS=function(t){return t.scrollTop},$o="unmounted",Xn="exited",Yn="entering",Cr="entered",Ru="exiting",ln=function(e){h0(t,e);function t(r,o){var i;i=e.call(this,r,o)||this;var l=o,s=l&&!l.isMounting?r.enter:r.appear,a;return i.appearStatus=null,r.in?s?(a=Xn,i.appearStatus=Yn):a=Cr:r.unmountOnExit||r.mountOnEnter?a=$o:a=Xn,i.state={status:a},i.nextCallback=null,i}t.getDerivedStateFromProps=function(o,i){var l=o.in;return l&&i.status===$o?{status:Xn}:null};var n=t.prototype;return n.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},n.componentDidUpdate=function(o){var i=null;if(o!==this.props){var l=this.state.status;this.props.in?l!==Yn&&l!==Cr&&(i=Yn):(l===Yn||l===Cr)&&(i=Ru)}this.updateStatus(!1,i)},n.componentWillUnmount=function(){this.cancelNextCallback()},n.getTimeouts=function(){var o=this.props.timeout,i,l,s;return i=l=s=o,o!=null&&typeof o!="number"&&(i=o.exit,l=o.enter,s=o.appear!==void 0?o.appear:l),{exit:i,enter:l,appear:s}},n.updateStatus=function(o,i){if(o===void 0&&(o=!1),i!==null)if(this.cancelNextCallback(),i===Yn){if(this.props.unmountOnExit||this.props.mountOnEnter){var l=this.props.nodeRef?this.props.nodeRef.current:Di.findDOMNode(this);l&&FS(l)}this.performEnter(o)}else this.performExit();else this.props.unmountOnExit&&this.state.status===Xn&&this.setState({status:$o})},n.performEnter=function(o){var i=this,l=this.props.enter,s=this.context?this.context.isMounting:o,a=this.props.nodeRef?[s]:[Di.findDOMNode(this),s],u=a[0],f=a[1],h=this.getTimeouts(),m=s?h.appear:h.enter;if(!o&&!l||Lf.disabled){this.safeSetState({status:Cr},function(){i.props.onEntered(u)});return}this.props.onEnter(u,f),this.safeSetState({status:Yn},function(){i.props.onEntering(u,f),i.onTransitionEnd(m,function(){i.safeSetState({status:Cr},function(){i.props.onEntered(u,f)})})})},n.performExit=function(){var o=this,i=this.props.exit,l=this.getTimeouts(),s=this.props.nodeRef?void 0:Di.findDOMNode(this);if(!i||Lf.disabled){this.safeSetState({status:Xn},function(){o.props.onExited(s)});return}this.props.onExit(s),this.safeSetState({status:Ru},function(){o.props.onExiting(s),o.onTransitionEnd(l.exit,function(){o.safeSetState({status:Xn},function(){o.props.onExited(s)})})})},n.cancelNextCallback=function(){this.nextCallback!==null&&(this.nextCallback.cancel(),this.nextCallback=null)},n.safeSetState=function(o,i){i=this.setNextCallback(i),this.setState(o,i)},n.setNextCallback=function(o){var i=this,l=!0;return this.nextCallback=function(s){l&&(l=!1,i.nextCallback=null,o(s))},this.nextCallback.cancel=function(){l=!1},this.nextCallback},n.onTransitionEnd=function(o,i){this.setNextCallback(i);var l=this.props.nodeRef?this.props.nodeRef.current:Di.findDOMNode(this),s=o==null&&!this.props.addEndListener;if(!l||s){setTimeout(this.nextCallback,0);return}if(this.props.addEndListener){var a=this.props.nodeRef?[this.nextCallback]:[l,this.nextCallback],u=a[0],f=a[1];this.props.addEndListener(u,f)}o!=null&&setTimeout(this.nextCallback,o)},n.render=function(){var o=this.state.status;if(o===$o)return null;var i=this.props,l=i.children;i.in,i.mountOnEnter,i.unmountOnExit,i.appear,i.enter,i.exit,i.timeout,i.addEndListener,i.onEnter,i.onEntering,i.onEntered,i.onExit,i.onExiting,i.onExited,i.nodeRef;var s=V(i,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]);return Vt.createElement(Fl.Provider,{value:null},typeof l=="function"?l(o,s):Vt.cloneElement(Vt.Children.only(l),s))},t}(Vt.Component);ln.contextType=Fl;ln.propTypes={};function kr(){}ln.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:kr,onEntering:kr,onEntered:kr,onExit:kr,onExiting:kr,onExited:kr};ln.UNMOUNTED=$o;ln.EXITED=Xn;ln.ENTERING=Yn;ln.ENTERED=Cr;ln.EXITING=Ru;function AS(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Kc(e,t){var n=function(i){return t&&S.isValidElement(i)?t(i):i},r=Object.create(null);return e&&S.Children.map(e,function(o){return o}).forEach(function(o){r[o.key]=n(o)}),r}function jS(e,t){e=e||{},t=t||{};function n(f){return f in t?t[f]:e[f]}var r=Object.create(null),o=[];for(var i in e)i in t?o.length&&(r[i]=o,o=[]):o.push(i);var l,s={};for(var a in t){if(r[a])for(l=0;ls!=="theme"&&s!=="sx"&&s!=="as"})(wi);return S.forwardRef(function(a,u){const f=zs(n),h=Vc(a),{className:m,component:x="div"}=h,g=V(h,VS);return _.jsx(i,w({as:x,ref:u,className:Y(m,o?o(r):r),theme:t&&f[t]||f},g))})}function Ee(e,t,n="Mui"){const r={};return t.forEach(o=>{r[o]=_e(e,o,n)}),r}function Ff(...e){return e.reduce((t,n)=>n==null?t:function(...o){t.apply(this,o),n.apply(this,o)},()=>{})}function g0(e,t=166){let n;function r(...o){const i=()=>{e.apply(this,o)};clearTimeout(n),n=setTimeout(i,t)}return r.clear=()=>{clearTimeout(n)},r}function Sa(e,t){var n,r;return S.isValidElement(e)&&t.indexOf((n=e.type.muiName)!=null?n:(r=e.type)==null||(r=r._payload)==null||(r=r.value)==null?void 0:r.muiName)!==-1}function St(e){return e&&e.ownerDocument||document}function fr(e){return St(e).defaultView||window}let Af=0;function GS(e){const[t,n]=S.useState(e),r=e||t;return S.useEffect(()=>{t==null&&(Af+=1,n(`mui-${Af}`))},[t]),r}const jf=ba.useId;function v0(e){if(jf!==void 0){const t=jf();return e??t}return GS(e)}function Df({controlled:e,default:t,name:n,state:r="value"}){const{current:o}=S.useRef(e!==void 0),[i,l]=S.useState(t),s=o?e:i,a=S.useCallback(u=>{o||l(u)},[]);return[s,a]}function y0(e){const t=e.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}const QS=S.createContext(),qS=()=>{const e=S.useContext(QS);return e??!1};function XS(e){const{className:t,classes:n,pulsate:r=!1,rippleX:o,rippleY:i,rippleSize:l,in:s,onExited:a,timeout:u}=e,[f,h]=S.useState(!1),m=Y(t,n.ripple,n.rippleVisible,r&&n.ripplePulsate),x={width:l,height:l,top:-(l/2)+i,left:-(l/2)+o},g=Y(n.child,f&&n.childLeaving,r&&n.childPulsate);return!s&&!f&&h(!0),S.useEffect(()=>{if(!s&&a!=null){const v=setTimeout(a,u);return()=>{clearTimeout(v)}}},[a,s,u]),_.jsx("span",{className:m,style:x,children:_.jsx("span",{className:g})})}const Tt=Ee("MuiTouchRipple",["root","ripple","rippleVisible","ripplePulsate","child","childLeaving","childPulsate"]),YS=["center","classes","className"];let As=e=>e,Bf,Wf,Uf,Hf;const _u=550,ZS=80,JS=vs(Bf||(Bf=As` 0% { transform: scale(0); opacity: 0.1; @@ -125,8 +125,8 @@ Error generating stack: `+i.message+` animation-iteration-count: infinite; animation-delay: 200ms; } -`),_t.rippleVisible,JS,_u,({theme:e})=>e.transitions.easing.easeInOut,_t.ripplePulsate,({theme:e})=>e.transitions.duration.shorter,_t.child,_t.childLeaving,ew,_u,({theme:e})=>e.transitions.easing.easeInOut,_t.childPulsate,tw,({theme:e})=>e.transitions.easing.easeInOut),ow=S.forwardRef(function(t,n){const r=Te({props:t,name:"MuiTouchRipple"}),{center:o=!1,classes:i={},className:l}=r,s=V(r,YS),[a,u]=S.useState([]),f=S.useRef(0),h=S.useRef(null);S.useEffect(()=>{h.current&&(h.current(),h.current=null)},[a]);const m=S.useRef(!1),x=m0(),g=S.useRef(null),v=S.useRef(null),b=S.useCallback(y=>{const{pulsate:k,rippleX:E,rippleY:C,rippleSize:R,cb:O}=y;u(T=>[...T,_.jsx(rw,{classes:{ripple:Y(i.ripple,_t.ripple),rippleVisible:Y(i.rippleVisible,_t.rippleVisible),ripplePulsate:Y(i.ripplePulsate,_t.ripplePulsate),child:Y(i.child,_t.child),childLeaving:Y(i.childLeaving,_t.childLeaving),childPulsate:Y(i.childPulsate,_t.childPulsate)},timeout:_u,pulsate:k,rippleX:E,rippleY:C,rippleSize:R},f.current)]),f.current+=1,h.current=O},[i]),p=S.useCallback((y={},k={},E=()=>{})=>{const{pulsate:C=!1,center:R=o||k.pulsate,fakeElement:O=!1}=k;if((y==null?void 0:y.type)==="mousedown"&&m.current){m.current=!1;return}(y==null?void 0:y.type)==="touchstart"&&(m.current=!0);const T=O?null:v.current,j=T?T.getBoundingClientRect():{width:0,height:0,left:0,top:0};let D,F,I;if(R||y===void 0||y.clientX===0&&y.clientY===0||!y.clientX&&!y.touches)D=Math.round(j.width/2),F=Math.round(j.height/2);else{const{clientX:N,clientY:z}=y.touches&&y.touches.length>0?y.touches[0]:y;D=Math.round(N-j.left),F=Math.round(z-j.top)}if(R)I=Math.sqrt((2*j.width**2+j.height**2)/3),I%2===0&&(I+=1);else{const N=Math.max(Math.abs((T?T.clientWidth:0)-D),D)*2+2,z=Math.max(Math.abs((T?T.clientHeight:0)-F),F)*2+2;I=Math.sqrt(N**2+z**2)}y!=null&&y.touches?g.current===null&&(g.current=()=>{b({pulsate:C,rippleX:D,rippleY:F,rippleSize:I,cb:E})},x.start(ZS,()=>{g.current&&(g.current(),g.current=null)})):b({pulsate:C,rippleX:D,rippleY:F,rippleSize:I,cb:E})},[o,b,x]),c=S.useCallback(()=>{p({},{pulsate:!0})},[p]),d=S.useCallback((y,k)=>{if(x.clear(),(y==null?void 0:y.type)==="touchend"&&g.current){g.current(),g.current=null,x.start(0,()=>{d(y,k)});return}g.current=null,u(E=>E.length>0?E.slice(1):E),h.current=k},[x]);return S.useImperativeHandle(n,()=>({pulsate:c,start:p,stop:d}),[c,p,d]),_.jsx(nw,w({className:Y(_t.root,i.root,l),ref:v},s,{children:_.jsx(Gc,{component:null,exit:!0,children:a})}))});function iw(e){return _e("MuiButtonBase",e)}const lw=Ee("MuiButtonBase",["root","disabled","focusVisible"]),sw=["action","centerRipple","children","className","component","disabled","disableRipple","disableTouchRipple","focusRipple","focusVisibleClassName","LinkComponent","onBlur","onClick","onContextMenu","onDragLeave","onFocus","onFocusVisible","onKeyDown","onKeyUp","onMouseDown","onMouseLeave","onMouseUp","onTouchEnd","onTouchMove","onTouchStart","tabIndex","TouchRippleProps","touchRippleRef","type"],aw=e=>{const{disabled:t,focusVisible:n,focusVisibleClassName:r,classes:o}=e,l=Me({root:["root",t&&"disabled",n&&"focusVisible"]},iw,o);return n&&r&&(l.root+=` ${r}`),l},uw=K("button",{name:"MuiButtonBase",slot:"Root",overridesResolver:(e,t)=>t.root})({display:"inline-flex",alignItems:"center",justifyContent:"center",position:"relative",boxSizing:"border-box",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none",textDecoration:"none",color:"inherit","&::-moz-focus-inner":{borderStyle:"none"},[`&.${lw.disabled}`]:{pointerEvents:"none",cursor:"default"},"@media print":{colorAdjust:"exact"}}),cw=S.forwardRef(function(t,n){const r=Te({props:t,name:"MuiButtonBase"}),{action:o,centerRipple:i=!1,children:l,className:s,component:a="button",disabled:u=!1,disableRipple:f=!1,disableTouchRipple:h=!1,focusRipple:m=!1,LinkComponent:x="a",onBlur:g,onClick:v,onContextMenu:b,onDragLeave:p,onFocus:c,onFocusVisible:d,onKeyDown:y,onKeyUp:k,onMouseDown:E,onMouseLeave:C,onMouseUp:R,onTouchEnd:O,onTouchMove:T,onTouchStart:j,tabIndex:D=0,TouchRippleProps:F,touchRippleRef:I,type:N}=r,z=V(r,sw),B=S.useRef(null),P=S.useRef(null),M=ft(P,I),{isFocusVisibleRef:A,onFocus:q,onBlur:G,ref:ue}=LS(),[H,se]=S.useState(!1);u&&H&&se(!1),S.useImperativeHandle(o,()=>({focusVisible:()=>{se(!0),B.current.focus()}}),[]);const[ee,Fe]=S.useState(!1);S.useEffect(()=>{Fe(!0)},[]);const Je=ee&&!f&&!u;S.useEffect(()=>{H&&m&&!f&&ee&&P.current.pulsate()},[f,m,H,ee]);function $e(U,un,uo=h){return Lr(co=>(un&&un(co),!uo&&P.current&&P.current[U](co),!0))}const ot=$e("start",E),re=$e("stop",b),xe=$e("stop",p),X=$e("stop",R),ae=$e("stop",U=>{H&&U.preventDefault(),C&&C(U)}),he=$e("start",j),wn=$e("stop",O),Et=$e("stop",T),bt=$e("stop",U=>{G(U),A.current===!1&&se(!1),g&&g(U)},!1),Dt=Lr(U=>{B.current||(B.current=U.currentTarget),q(U),A.current===!0&&(se(!0),d&&d(U)),c&&c(U)}),Pt=()=>{const U=B.current;return a&&a!=="button"&&!(U.tagName==="A"&&U.href)},Se=S.useRef(!1),sn=Lr(U=>{m&&!Se.current&&H&&P.current&&U.key===" "&&(Se.current=!0,P.current.stop(U,()=>{P.current.start(U)})),U.target===U.currentTarget&&Pt()&&U.key===" "&&U.preventDefault(),y&&y(U),U.target===U.currentTarget&&Pt()&&U.key==="Enter"&&!u&&(U.preventDefault(),v&&v(U))}),it=Lr(U=>{m&&U.key===" "&&P.current&&H&&!U.defaultPrevented&&(Se.current=!1,P.current.stop(U,()=>{P.current.pulsate(U)})),k&&k(U),v&&U.target===U.currentTarget&&Pt()&&U.key===" "&&!U.defaultPrevented&&v(U)});let ge=a;ge==="button"&&(z.href||z.to)&&(ge=x);const Xt={};ge==="button"?(Xt.type=N===void 0?"button":N,Xt.disabled=u):(!z.href&&!z.to&&(Xt.role="button"),u&&(Xt["aria-disabled"]=u));const kn=ft(n,ue,B),an=w({},r,{centerRipple:i,component:a,disabled:u,disableRipple:f,disableTouchRipple:h,focusRipple:m,tabIndex:D,focusVisible:H}),ce=aw(an);return _.jsxs(uw,w({as:ge,className:Y(ce.root,s),ownerState:an,onBlur:bt,onClick:v,onContextMenu:re,onFocus:Dt,onKeyDown:sn,onKeyUp:it,onMouseDown:ot,onMouseLeave:ae,onMouseUp:X,onDragLeave:xe,onTouchEnd:wn,onTouchMove:Et,onTouchStart:he,ref:kn,tabIndex:u?-1:D,type:N},Xt,z,{children:[l,Je?_.jsx(ow,w({ref:M,center:i},F)):null]}))});function dw(e){return _e("MuiButton",e)}const Ui=Ee("MuiButton",["root","text","textInherit","textPrimary","textSecondary","textSuccess","textError","textInfo","textWarning","outlined","outlinedInherit","outlinedPrimary","outlinedSecondary","outlinedSuccess","outlinedError","outlinedInfo","outlinedWarning","contained","containedInherit","containedPrimary","containedSecondary","containedSuccess","containedError","containedInfo","containedWarning","disableElevation","focusVisible","disabled","colorInherit","colorPrimary","colorSecondary","colorSuccess","colorError","colorInfo","colorWarning","textSizeSmall","textSizeMedium","textSizeLarge","outlinedSizeSmall","outlinedSizeMedium","outlinedSizeLarge","containedSizeSmall","containedSizeMedium","containedSizeLarge","sizeMedium","sizeSmall","sizeLarge","fullWidth","startIcon","endIcon","icon","iconSizeSmall","iconSizeMedium","iconSizeLarge"]),fw=S.createContext({}),pw=S.createContext(void 0),mw=["children","color","component","className","disabled","disableElevation","disableFocusRipple","endIcon","focusVisibleClassName","fullWidth","size","startIcon","type","variant"],hw=e=>{const{color:t,disableElevation:n,fullWidth:r,size:o,variant:i,classes:l}=e,s={root:["root",i,`${i}${Z(t)}`,`size${Z(o)}`,`${i}Size${Z(o)}`,`color${Z(t)}`,n&&"disableElevation",r&&"fullWidth"],label:["label"],startIcon:["icon","startIcon",`iconSize${Z(o)}`],endIcon:["icon","endIcon",`iconSize${Z(o)}`]},a=Me(s,dw,l);return w({},l,a)},x0=e=>w({},e.size==="small"&&{"& > *:nth-of-type(1)":{fontSize:18}},e.size==="medium"&&{"& > *:nth-of-type(1)":{fontSize:20}},e.size==="large"&&{"& > *:nth-of-type(1)":{fontSize:22}}),gw=K(cw,{shouldForwardProp:e=>qt(e)||e==="classes",name:"MuiButton",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[n.variant],t[`${n.variant}${Z(n.color)}`],t[`size${Z(n.size)}`],t[`${n.variant}Size${Z(n.size)}`],n.color==="inherit"&&t.colorInherit,n.disableElevation&&t.disableElevation,n.fullWidth&&t.fullWidth]}})(({theme:e,ownerState:t})=>{var n,r;const o=e.palette.mode==="light"?e.palette.grey[300]:e.palette.grey[800],i=e.palette.mode==="light"?e.palette.grey.A100:e.palette.grey[700];return w({},e.typography.button,{minWidth:64,padding:"6px 16px",borderRadius:(e.vars||e).shape.borderRadius,transition:e.transitions.create(["background-color","box-shadow","border-color","color"],{duration:e.transitions.duration.short}),"&:hover":w({textDecoration:"none",backgroundColor:e.vars?`rgba(${e.vars.palette.text.primaryChannel} / ${e.vars.palette.action.hoverOpacity})`:zr(e.palette.text.primary,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},t.variant==="text"&&t.color!=="inherit"&&{backgroundColor:e.vars?`rgba(${e.vars.palette[t.color].mainChannel} / ${e.vars.palette.action.hoverOpacity})`:zr(e.palette[t.color].main,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},t.variant==="outlined"&&t.color!=="inherit"&&{border:`1px solid ${(e.vars||e).palette[t.color].main}`,backgroundColor:e.vars?`rgba(${e.vars.palette[t.color].mainChannel} / ${e.vars.palette.action.hoverOpacity})`:zr(e.palette[t.color].main,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},t.variant==="contained"&&{backgroundColor:e.vars?e.vars.palette.Button.inheritContainedHoverBg:i,boxShadow:(e.vars||e).shadows[4],"@media (hover: none)":{boxShadow:(e.vars||e).shadows[2],backgroundColor:(e.vars||e).palette.grey[300]}},t.variant==="contained"&&t.color!=="inherit"&&{backgroundColor:(e.vars||e).palette[t.color].dark,"@media (hover: none)":{backgroundColor:(e.vars||e).palette[t.color].main}}),"&:active":w({},t.variant==="contained"&&{boxShadow:(e.vars||e).shadows[8]}),[`&.${Ui.focusVisible}`]:w({},t.variant==="contained"&&{boxShadow:(e.vars||e).shadows[6]}),[`&.${Ui.disabled}`]:w({color:(e.vars||e).palette.action.disabled},t.variant==="outlined"&&{border:`1px solid ${(e.vars||e).palette.action.disabledBackground}`},t.variant==="contained"&&{color:(e.vars||e).palette.action.disabled,boxShadow:(e.vars||e).shadows[0],backgroundColor:(e.vars||e).palette.action.disabledBackground})},t.variant==="text"&&{padding:"6px 8px"},t.variant==="text"&&t.color!=="inherit"&&{color:(e.vars||e).palette[t.color].main},t.variant==="outlined"&&{padding:"5px 15px",border:"1px solid currentColor"},t.variant==="outlined"&&t.color!=="inherit"&&{color:(e.vars||e).palette[t.color].main,border:e.vars?`1px solid rgba(${e.vars.palette[t.color].mainChannel} / 0.5)`:`1px solid ${zr(e.palette[t.color].main,.5)}`},t.variant==="contained"&&{color:e.vars?e.vars.palette.text.primary:(n=(r=e.palette).getContrastText)==null?void 0:n.call(r,e.palette.grey[300]),backgroundColor:e.vars?e.vars.palette.Button.inheritContainedBg:o,boxShadow:(e.vars||e).shadows[2]},t.variant==="contained"&&t.color!=="inherit"&&{color:(e.vars||e).palette[t.color].contrastText,backgroundColor:(e.vars||e).palette[t.color].main},t.color==="inherit"&&{color:"inherit",borderColor:"currentColor"},t.size==="small"&&t.variant==="text"&&{padding:"4px 5px",fontSize:e.typography.pxToRem(13)},t.size==="large"&&t.variant==="text"&&{padding:"8px 11px",fontSize:e.typography.pxToRem(15)},t.size==="small"&&t.variant==="outlined"&&{padding:"3px 9px",fontSize:e.typography.pxToRem(13)},t.size==="large"&&t.variant==="outlined"&&{padding:"7px 21px",fontSize:e.typography.pxToRem(15)},t.size==="small"&&t.variant==="contained"&&{padding:"4px 10px",fontSize:e.typography.pxToRem(13)},t.size==="large"&&t.variant==="contained"&&{padding:"8px 22px",fontSize:e.typography.pxToRem(15)},t.fullWidth&&{width:"100%"})},({ownerState:e})=>e.disableElevation&&{boxShadow:"none","&:hover":{boxShadow:"none"},[`&.${Ui.focusVisible}`]:{boxShadow:"none"},"&:active":{boxShadow:"none"},[`&.${Ui.disabled}`]:{boxShadow:"none"}}),vw=K("span",{name:"MuiButton",slot:"StartIcon",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.startIcon,t[`iconSize${Z(n.size)}`]]}})(({ownerState:e})=>w({display:"inherit",marginRight:8,marginLeft:-4},e.size==="small"&&{marginLeft:-2},x0(e))),yw=K("span",{name:"MuiButton",slot:"EndIcon",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.endIcon,t[`iconSize${Z(n.size)}`]]}})(({ownerState:e})=>w({display:"inherit",marginRight:-4,marginLeft:8},e.size==="small"&&{marginRight:-2},x0(e))),xw=S.forwardRef(function(t,n){const r=S.useContext(fw),o=S.useContext(pw),i=Rc(r,t),l=Te({props:i,name:"MuiButton"}),{children:s,color:a="primary",component:u="button",className:f,disabled:h=!1,disableElevation:m=!1,disableFocusRipple:x=!1,endIcon:g,focusVisibleClassName:v,fullWidth:b=!1,size:p="medium",startIcon:c,type:d,variant:y="text"}=l,k=V(l,mw),E=w({},l,{color:a,component:u,disabled:h,disableElevation:m,disableFocusRipple:x,fullWidth:b,size:p,type:d,variant:y}),C=hw(E),R=c&&_.jsx(vw,{className:C.startIcon,ownerState:E,children:c}),O=g&&_.jsx(yw,{className:C.endIcon,ownerState:E,children:g}),T=o||"";return _.jsxs(gw,w({ownerState:E,className:Y(r.className,C.root,f,T),component:u,disabled:h,focusRipple:!x,focusVisibleClassName:Y(C.focusVisible,v),ref:n,type:d},k,{classes:C,children:[R,s,O]}))});function S0(){const e=zs(Ns);return e[ki]||e}const Vf=e=>{let t;return e<1?t=5.11916*e**2:t=4.5*Math.log(e+1)+2,(t/100).toFixed(2)};function Sw(e){return _e("MuiSvgIcon",e)}Ee("MuiSvgIcon",["root","colorPrimary","colorSecondary","colorAction","colorError","colorDisabled","fontSizeInherit","fontSizeSmall","fontSizeMedium","fontSizeLarge"]);const ww=["children","className","color","component","fontSize","htmlColor","inheritViewBox","titleAccess","viewBox"],kw=e=>{const{color:t,fontSize:n,classes:r}=e,o={root:["root",t!=="inherit"&&`color${Z(t)}`,`fontSize${Z(n)}`]};return Me(o,Sw,r)},Cw=K("svg",{name:"MuiSvgIcon",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.color!=="inherit"&&t[`color${Z(n.color)}`],t[`fontSize${Z(n.fontSize)}`]]}})(({theme:e,ownerState:t})=>{var n,r,o,i,l,s,a,u,f,h,m,x,g;return{userSelect:"none",width:"1em",height:"1em",display:"inline-block",fill:t.hasSvgAsChild?void 0:"currentColor",flexShrink:0,transition:(n=e.transitions)==null||(r=n.create)==null?void 0:r.call(n,"fill",{duration:(o=e.transitions)==null||(o=o.duration)==null?void 0:o.shorter}),fontSize:{inherit:"inherit",small:((i=e.typography)==null||(l=i.pxToRem)==null?void 0:l.call(i,20))||"1.25rem",medium:((s=e.typography)==null||(a=s.pxToRem)==null?void 0:a.call(s,24))||"1.5rem",large:((u=e.typography)==null||(f=u.pxToRem)==null?void 0:f.call(u,35))||"2.1875rem"}[t.fontSize],color:(h=(m=(e.vars||e).palette)==null||(m=m[t.color])==null?void 0:m.main)!=null?h:{action:(x=(e.vars||e).palette)==null||(x=x.action)==null?void 0:x.active,disabled:(g=(e.vars||e).palette)==null||(g=g.action)==null?void 0:g.disabled,inherit:void 0}[t.color]}}),Tu=S.forwardRef(function(t,n){const r=Te({props:t,name:"MuiSvgIcon"}),{children:o,className:i,color:l="inherit",component:s="svg",fontSize:a="medium",htmlColor:u,inheritViewBox:f=!1,titleAccess:h,viewBox:m="0 0 24 24"}=r,x=V(r,ww),g=S.isValidElement(o)&&o.type==="svg",v=w({},r,{color:l,component:s,fontSize:a,instanceFontSize:t.fontSize,inheritViewBox:f,viewBox:m,hasSvgAsChild:g}),b={};f||(b.viewBox=m);const p=kw(v);return _.jsxs(Cw,w({as:s,className:Y(p.root,i),focusable:"false",color:u,"aria-hidden":h?void 0:!0,role:h?"img":void 0,ref:n},b,x,g&&o.props,{ownerState:v,children:[g?o.props.children:o,h?_.jsx("title",{children:h}):null]}))});Tu.muiName="SvgIcon";function Ew(e,t){function n(r,o){return _.jsx(Tu,w({"data-testid":`${t}Icon`,ref:o},r,{children:e}))}return n.muiName=Tu.muiName,S.memo(S.forwardRef(n))}const w0=e=>e.scrollTop;function Al(e,t){var n,r;const{timeout:o,easing:i,style:l={}}=e;return{duration:(n=l.transitionDuration)!=null?n:typeof o=="number"?o:o[t.mode]||0,easing:(r=l.transitionTimingFunction)!=null?r:typeof i=="object"?i[t.mode]:i,delay:l.transitionDelay}}function bw(e){return _e("MuiPaper",e)}Ee("MuiPaper",["root","rounded","outlined","elevation","elevation0","elevation1","elevation2","elevation3","elevation4","elevation5","elevation6","elevation7","elevation8","elevation9","elevation10","elevation11","elevation12","elevation13","elevation14","elevation15","elevation16","elevation17","elevation18","elevation19","elevation20","elevation21","elevation22","elevation23","elevation24"]);const Pw=["className","component","elevation","square","variant"],Rw=e=>{const{square:t,elevation:n,variant:r,classes:o}=e,i={root:["root",r,!t&&"rounded",r==="elevation"&&`elevation${n}`]};return Me(i,bw,o)},_w=K("div",{name:"MuiPaper",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[n.variant],!n.square&&t.rounded,n.variant==="elevation"&&t[`elevation${n.elevation}`]]}})(({theme:e,ownerState:t})=>{var n;return w({backgroundColor:(e.vars||e).palette.background.paper,color:(e.vars||e).palette.text.primary,transition:e.transitions.create("box-shadow")},!t.square&&{borderRadius:e.shape.borderRadius},t.variant==="outlined"&&{border:`1px solid ${(e.vars||e).palette.divider}`},t.variant==="elevation"&&w({boxShadow:(e.vars||e).shadows[t.elevation]},!e.vars&&e.palette.mode==="dark"&&{backgroundImage:`linear-gradient(${zr("#fff",Vf(t.elevation))}, ${zr("#fff",Vf(t.elevation))})`},e.vars&&{backgroundImage:(n=e.vars.overlays)==null?void 0:n[t.elevation]}))}),Tw=S.forwardRef(function(t,n){const r=Te({props:t,name:"MuiPaper"}),{className:o,component:i="div",elevation:l=1,square:s=!1,variant:a="elevation"}=r,u=V(r,Pw),f=w({},r,{component:i,elevation:l,square:s,variant:a}),h=Rw(f);return _.jsx(_w,w({as:i,ownerState:f,className:Y(h.root,o),ref:n},u))});function jl(e){return typeof e=="string"}function $w(e,t,n){return e===void 0||jl(e)?t:w({},t,{ownerState:w({},t.ownerState,n)})}function k0(e,t=[]){if(e===void 0)return{};const n={};return Object.keys(e).filter(r=>r.match(/^on[A-Z]/)&&typeof e[r]=="function"&&!t.includes(r)).forEach(r=>{n[r]=e[r]}),n}function Ow(e,t,n){return typeof e=="function"?e(t,n):e}function Kf(e){if(e===void 0)return{};const t={};return Object.keys(e).filter(n=>!(n.match(/^on[A-Z]/)&&typeof e[n]=="function")).forEach(n=>{t[n]=e[n]}),t}function Mw(e){const{getSlotProps:t,additionalProps:n,externalSlotProps:r,externalForwardedProps:o,className:i}=e;if(!t){const x=Y(n==null?void 0:n.className,i,o==null?void 0:o.className,r==null?void 0:r.className),g=w({},n==null?void 0:n.style,o==null?void 0:o.style,r==null?void 0:r.style),v=w({},n,o,r);return x.length>0&&(v.className=x),Object.keys(g).length>0&&(v.style=g),{props:v,internalRef:void 0}}const l=k0(w({},o,r)),s=Kf(r),a=Kf(o),u=t(l),f=Y(u==null?void 0:u.className,n==null?void 0:n.className,i,o==null?void 0:o.className,r==null?void 0:r.className),h=w({},u==null?void 0:u.style,n==null?void 0:n.style,o==null?void 0:o.style,r==null?void 0:r.style),m=w({},u,n,a,s);return f.length>0&&(m.className=f),Object.keys(h).length>0&&(m.style=h),{props:m,internalRef:u.ref}}const Iw=["elementType","externalSlotProps","ownerState","skipResolvingSlotProps"];function Jr(e){var t;const{elementType:n,externalSlotProps:r,ownerState:o,skipResolvingSlotProps:i=!1}=e,l=V(e,Iw),s=i?{}:Ow(r,o),{props:a,internalRef:u}=Mw(w({},l,{externalSlotProps:s})),f=ft(u,s==null?void 0:s.ref,(t=e.additionalProps)==null?void 0:t.ref);return $w(n,w({},a,{ref:f}),o)}function Nw(e){return _e("MuiTypography",e)}Ee("MuiTypography",["root","h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","inherit","button","caption","overline","alignLeft","alignRight","alignCenter","alignJustify","noWrap","gutterBottom","paragraph"]);const zw=["align","className","component","gutterBottom","noWrap","paragraph","variant","variantMapping"],Lw=e=>{const{align:t,gutterBottom:n,noWrap:r,paragraph:o,variant:i,classes:l}=e,s={root:["root",i,e.align!=="inherit"&&`align${Z(t)}`,n&&"gutterBottom",r&&"noWrap",o&&"paragraph"]};return Me(s,Nw,l)},Fw=K("span",{name:"MuiTypography",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.variant&&t[n.variant],n.align!=="inherit"&&t[`align${Z(n.align)}`],n.noWrap&&t.noWrap,n.gutterBottom&&t.gutterBottom,n.paragraph&&t.paragraph]}})(({theme:e,ownerState:t})=>w({margin:0},t.variant==="inherit"&&{font:"inherit"},t.variant!=="inherit"&&e.typography[t.variant],t.align!=="inherit"&&{textAlign:t.align},t.noWrap&&{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},t.gutterBottom&&{marginBottom:"0.35em"},t.paragraph&&{marginBottom:16})),Gf={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",subtitle1:"h6",subtitle2:"h6",body1:"p",body2:"p",inherit:"p"},Aw={primary:"primary.main",textPrimary:"text.primary",secondary:"secondary.main",textSecondary:"text.secondary",error:"error.main"},jw=e=>Aw[e]||e,Dw=S.forwardRef(function(t,n){const r=Te({props:t,name:"MuiTypography"}),o=jw(r.color),i=Vc(w({},r,{color:o})),{align:l="inherit",className:s,component:a,gutterBottom:u=!1,noWrap:f=!1,paragraph:h=!1,variant:m="body1",variantMapping:x=Gf}=i,g=V(i,zw),v=w({},i,{align:l,color:o,className:s,component:a,gutterBottom:u,noWrap:f,paragraph:h,variant:m,variantMapping:x}),b=a||(h?"p":x[m]||Gf[m])||"span",p=Lw(v);return _.jsx(Fw,w({as:b,ref:n,ownerState:v,className:Y(p.root,s)},g))}),Bw=["input","select","textarea","a[href]","button","[tabindex]","audio[controls]","video[controls]",'[contenteditable]:not([contenteditable="false"])'].join(",");function Ww(e){const t=parseInt(e.getAttribute("tabindex")||"",10);return Number.isNaN(t)?e.contentEditable==="true"||(e.nodeName==="AUDIO"||e.nodeName==="VIDEO"||e.nodeName==="DETAILS")&&e.getAttribute("tabindex")===null?0:e.tabIndex:t}function Uw(e){if(e.tagName!=="INPUT"||e.type!=="radio"||!e.name)return!1;const t=r=>e.ownerDocument.querySelector(`input[type="radio"]${r}`);let n=t(`[name="${e.name}"]:checked`);return n||(n=t(`[name="${e.name}"]`)),n!==e}function Hw(e){return!(e.disabled||e.tagName==="INPUT"&&e.type==="hidden"||Uw(e))}function Vw(e){const t=[],n=[];return Array.from(e.querySelectorAll(Bw)).forEach((r,o)=>{const i=Ww(r);i===-1||!Hw(r)||(i===0?t.push(r):n.push({documentOrder:o,tabIndex:i,node:r}))}),n.sort((r,o)=>r.tabIndex===o.tabIndex?r.documentOrder-o.documentOrder:r.tabIndex-o.tabIndex).map(r=>r.node).concat(t)}function Kw(){return!0}function Gw(e){const{children:t,disableAutoFocus:n=!1,disableEnforceFocus:r=!1,disableRestoreFocus:o=!1,getTabbable:i=Vw,isEnabled:l=Kw,open:s}=e,a=S.useRef(!1),u=S.useRef(null),f=S.useRef(null),h=S.useRef(null),m=S.useRef(null),x=S.useRef(!1),g=S.useRef(null),v=ft(t.ref,g),b=S.useRef(null);S.useEffect(()=>{!s||!g.current||(x.current=!n)},[n,s]),S.useEffect(()=>{if(!s||!g.current)return;const d=xt(g.current);return g.current.contains(d.activeElement)||(g.current.hasAttribute("tabIndex")||g.current.setAttribute("tabIndex","-1"),x.current&&g.current.focus()),()=>{o||(h.current&&h.current.focus&&(a.current=!0,h.current.focus()),h.current=null)}},[s]),S.useEffect(()=>{if(!s||!g.current)return;const d=xt(g.current),y=C=>{b.current=C,!(r||!l()||C.key!=="Tab")&&d.activeElement===g.current&&C.shiftKey&&(a.current=!0,f.current&&f.current.focus())},k=()=>{const C=g.current;if(C===null)return;if(!d.hasFocus()||!l()||a.current){a.current=!1;return}if(C.contains(d.activeElement)||r&&d.activeElement!==u.current&&d.activeElement!==f.current)return;if(d.activeElement!==m.current)m.current=null;else if(m.current!==null)return;if(!x.current)return;let R=[];if((d.activeElement===u.current||d.activeElement===f.current)&&(R=i(g.current)),R.length>0){var O,T;const j=!!((O=b.current)!=null&&O.shiftKey&&((T=b.current)==null?void 0:T.key)==="Tab"),D=R[0],F=R[R.length-1];typeof D!="string"&&typeof F!="string"&&(j?F.focus():D.focus())}else C.focus()};d.addEventListener("focusin",k),d.addEventListener("keydown",y,!0);const E=setInterval(()=>{d.activeElement&&d.activeElement.tagName==="BODY"&&k()},50);return()=>{clearInterval(E),d.removeEventListener("focusin",k),d.removeEventListener("keydown",y,!0)}},[n,r,o,l,s,i]);const p=d=>{h.current===null&&(h.current=d.relatedTarget),x.current=!0,m.current=d.target;const y=t.props.onFocus;y&&y(d)},c=d=>{h.current===null&&(h.current=d.relatedTarget),x.current=!0};return _.jsxs(S.Fragment,{children:[_.jsx("div",{tabIndex:s?0:-1,onFocus:c,ref:u,"data-testid":"sentinelStart"}),S.cloneElement(t,{ref:v,onFocus:p}),_.jsx("div",{tabIndex:s?0:-1,onFocus:c,ref:f,"data-testid":"sentinelEnd"})]})}function Qw(e){return typeof e=="function"?e():e}const qw=S.forwardRef(function(t,n){const{children:r,container:o,disablePortal:i=!1}=t,[l,s]=S.useState(null),a=ft(S.isValidElement(r)?r.ref:null,n);if(cr(()=>{i||s(Qw(o)||document.body)},[o,i]),cr(()=>{if(l&&!i)return Eu(n,l),()=>{Eu(n,null)}},[n,l,i]),i){if(S.isValidElement(r)){const u={ref:a};return S.cloneElement(r,u)}return _.jsx(S.Fragment,{children:r})}return _.jsx(S.Fragment,{children:l&&Pc.createPortal(r,l)})});function Xw(e){const t=xt(e);return t.body===e?dr(e).innerWidth>t.documentElement.clientWidth:e.scrollHeight>e.clientHeight}function Wo(e,t){t?e.setAttribute("aria-hidden","true"):e.removeAttribute("aria-hidden")}function Qf(e){return parseInt(dr(e).getComputedStyle(e).paddingRight,10)||0}function Yw(e){const n=["TEMPLATE","SCRIPT","STYLE","LINK","MAP","META","NOSCRIPT","PICTURE","COL","COLGROUP","PARAM","SLOT","SOURCE","TRACK"].indexOf(e.tagName)!==-1,r=e.tagName==="INPUT"&&e.getAttribute("type")==="hidden";return n||r}function qf(e,t,n,r,o){const i=[t,n,...r];[].forEach.call(e.children,l=>{const s=i.indexOf(l)===-1,a=!Yw(l);s&&a&&Wo(l,o)})}function wa(e,t){let n=-1;return e.some((r,o)=>t(r)?(n=o,!0):!1),n}function Zw(e,t){const n=[],r=e.container;if(!t.disableScrollLock){if(Xw(r)){const l=y0(xt(r));n.push({value:r.style.paddingRight,property:"padding-right",el:r}),r.style.paddingRight=`${Qf(r)+l}px`;const s=xt(r).querySelectorAll(".mui-fixed");[].forEach.call(s,a=>{n.push({value:a.style.paddingRight,property:"padding-right",el:a}),a.style.paddingRight=`${Qf(a)+l}px`})}let i;if(r.parentNode instanceof DocumentFragment)i=xt(r).body;else{const l=r.parentElement,s=dr(r);i=(l==null?void 0:l.nodeName)==="HTML"&&s.getComputedStyle(l).overflowY==="scroll"?l:r}n.push({value:i.style.overflow,property:"overflow",el:i},{value:i.style.overflowX,property:"overflow-x",el:i},{value:i.style.overflowY,property:"overflow-y",el:i}),i.style.overflow="hidden"}return()=>{n.forEach(({value:i,el:l,property:s})=>{i?l.style.setProperty(s,i):l.style.removeProperty(s)})}}function Jw(e){const t=[];return[].forEach.call(e.children,n=>{n.getAttribute("aria-hidden")==="true"&&t.push(n)}),t}class ek{constructor(){this.containers=void 0,this.modals=void 0,this.modals=[],this.containers=[]}add(t,n){let r=this.modals.indexOf(t);if(r!==-1)return r;r=this.modals.length,this.modals.push(t),t.modalRef&&Wo(t.modalRef,!1);const o=Jw(n);qf(n,t.mount,t.modalRef,o,!0);const i=wa(this.containers,l=>l.container===n);return i!==-1?(this.containers[i].modals.push(t),r):(this.containers.push({modals:[t],container:n,restore:null,hiddenSiblings:o}),r)}mount(t,n){const r=wa(this.containers,i=>i.modals.indexOf(t)!==-1),o=this.containers[r];o.restore||(o.restore=Zw(o,n))}remove(t,n=!0){const r=this.modals.indexOf(t);if(r===-1)return r;const o=wa(this.containers,l=>l.modals.indexOf(t)!==-1),i=this.containers[o];if(i.modals.splice(i.modals.indexOf(t),1),this.modals.splice(r,1),i.modals.length===0)i.restore&&i.restore(),t.modalRef&&Wo(t.modalRef,n),qf(i.container,t.mount,t.modalRef,i.hiddenSiblings,!1),this.containers.splice(o,1);else{const l=i.modals[i.modals.length-1];l.modalRef&&Wo(l.modalRef,!1)}return r}isTopModal(t){return this.modals.length>0&&this.modals[this.modals.length-1]===t}}function tk(e){return typeof e=="function"?e():e}function nk(e){return e?e.props.hasOwnProperty("in"):!1}const rk=new ek;function ok(e){const{container:t,disableEscapeKeyDown:n=!1,disableScrollLock:r=!1,manager:o=rk,closeAfterTransition:i=!1,onTransitionEnter:l,onTransitionExited:s,children:a,onClose:u,open:f,rootRef:h}=e,m=S.useRef({}),x=S.useRef(null),g=S.useRef(null),v=ft(g,h),[b,p]=S.useState(!f),c=nk(a);let d=!0;(e["aria-hidden"]==="false"||e["aria-hidden"]===!1)&&(d=!1);const y=()=>xt(x.current),k=()=>(m.current.modalRef=g.current,m.current.mount=x.current,m.current),E=()=>{o.mount(k(),{disableScrollLock:r}),g.current&&(g.current.scrollTop=0)},C=Lr(()=>{const z=tk(t)||y().body;o.add(k(),z),g.current&&E()}),R=S.useCallback(()=>o.isTopModal(k()),[o]),O=Lr(z=>{x.current=z,z&&(f&&R()?E():g.current&&Wo(g.current,d))}),T=S.useCallback(()=>{o.remove(k(),d)},[d,o]);S.useEffect(()=>()=>{T()},[T]),S.useEffect(()=>{f?C():(!c||!i)&&T()},[f,T,c,i,C]);const j=z=>B=>{var P;(P=z.onKeyDown)==null||P.call(z,B),!(B.key!=="Escape"||B.which===229||!R())&&(n||(B.stopPropagation(),u&&u(B,"escapeKeyDown")))},D=z=>B=>{var P;(P=z.onClick)==null||P.call(z,B),B.target===B.currentTarget&&u&&u(B,"backdropClick")};return{getRootProps:(z={})=>{const B=k0(e);delete B.onTransitionEnter,delete B.onTransitionExited;const P=w({},B,z);return w({role:"presentation"},P,{onKeyDown:j(P),ref:v})},getBackdropProps:(z={})=>{const B=z;return w({"aria-hidden":!0},B,{onClick:D(B),open:f})},getTransitionProps:()=>{const z=()=>{p(!1),l&&l()},B=()=>{p(!0),s&&s(),i&&T()};return{onEnter:Ff(z,a==null?void 0:a.props.onEnter),onExited:Ff(B,a==null?void 0:a.props.onExited)}},rootRef:v,portalRef:O,isTopModal:R,exited:b,hasTransition:c}}const ik=["onChange","maxRows","minRows","style","value"];function Hi(e){return parseInt(e,10)||0}const lk={shadow:{visibility:"hidden",position:"absolute",overflow:"hidden",height:0,top:0,left:0,transform:"translateZ(0)"}};function sk(e){return e==null||Object.keys(e).length===0||e.outerHeightStyle===0&&!e.overflowing}const ak=S.forwardRef(function(t,n){const{onChange:r,maxRows:o,minRows:i=1,style:l,value:s}=t,a=V(t,ik),{current:u}=S.useRef(s!=null),f=S.useRef(null),h=ft(n,f),m=S.useRef(null),x=S.useCallback(()=>{const b=f.current,c=dr(b).getComputedStyle(b);if(c.width==="0px")return{outerHeightStyle:0,overflowing:!1};const d=m.current;d.style.width=c.width,d.value=b.value||t.placeholder||"x",d.value.slice(-1)===` -`&&(d.value+=" ");const y=c.boxSizing,k=Hi(c.paddingBottom)+Hi(c.paddingTop),E=Hi(c.borderBottomWidth)+Hi(c.borderTopWidth),C=d.scrollHeight;d.value="x";const R=d.scrollHeight;let O=C;i&&(O=Math.max(Number(i)*R,O)),o&&(O=Math.min(Number(o)*R,O)),O=Math.max(O,R);const T=O+(y==="border-box"?k+E:0),j=Math.abs(O-C)<=1;return{outerHeightStyle:T,overflowing:j}},[o,i,t.placeholder]),g=S.useCallback(()=>{const b=x();if(sk(b))return;const p=f.current;p.style.height=`${b.outerHeightStyle}px`,p.style.overflow=b.overflowing?"hidden":""},[x]);cr(()=>{const b=()=>{g()};let p;const c=g0(b),d=f.current,y=dr(d);y.addEventListener("resize",c);let k;return typeof ResizeObserver<"u"&&(k=new ResizeObserver(b),k.observe(d)),()=>{c.clear(),cancelAnimationFrame(p),y.removeEventListener("resize",c),k&&k.disconnect()}},[x,g]),cr(()=>{g()});const v=b=>{u||g(),r&&r(b)};return _.jsxs(S.Fragment,{children:[_.jsx("textarea",w({value:s,onChange:v,ref:h,rows:i,style:l},a)),_.jsx("textarea",{"aria-hidden":!0,className:t.className,readOnly:!0,ref:m,tabIndex:-1,style:w({},lk.shadow,l,{paddingTop:0,paddingBottom:0})})]})});function so({props:e,states:t,muiFormControl:n}){return t.reduce((r,o)=>(r[o]=e[o],n&&typeof e[o]>"u"&&(r[o]=n[o]),r),{})}const Qc=S.createContext(void 0);function ao(){return S.useContext(Qc)}function C0(e){return _.jsx(HS,w({},e,{defaultTheme:Ns,themeId:ki}))}function Xf(e){return e!=null&&!(Array.isArray(e)&&e.length===0)}function Dl(e,t=!1){return e&&(Xf(e.value)&&e.value!==""||t&&Xf(e.defaultValue)&&e.defaultValue!=="")}function uk(e){return e.startAdornment}function ck(e){return _e("MuiInputBase",e)}const eo=Ee("MuiInputBase",["root","formControl","focused","disabled","adornedStart","adornedEnd","error","sizeSmall","multiline","colorSecondary","fullWidth","hiddenLabel","readOnly","input","inputSizeSmall","inputMultiline","inputTypeSearch","inputAdornedStart","inputAdornedEnd","inputHiddenLabel"]),dk=["aria-describedby","autoComplete","autoFocus","className","color","components","componentsProps","defaultValue","disabled","disableInjectingGlobalStyles","endAdornment","error","fullWidth","id","inputComponent","inputProps","inputRef","margin","maxRows","minRows","multiline","name","onBlur","onChange","onClick","onFocus","onKeyDown","onKeyUp","placeholder","readOnly","renderSuffix","rows","size","slotProps","slots","startAdornment","type","value"],js=(e,t)=>{const{ownerState:n}=e;return[t.root,n.formControl&&t.formControl,n.startAdornment&&t.adornedStart,n.endAdornment&&t.adornedEnd,n.error&&t.error,n.size==="small"&&t.sizeSmall,n.multiline&&t.multiline,n.color&&t[`color${Z(n.color)}`],n.fullWidth&&t.fullWidth,n.hiddenLabel&&t.hiddenLabel]},Ds=(e,t)=>{const{ownerState:n}=e;return[t.input,n.size==="small"&&t.inputSizeSmall,n.multiline&&t.inputMultiline,n.type==="search"&&t.inputTypeSearch,n.startAdornment&&t.inputAdornedStart,n.endAdornment&&t.inputAdornedEnd,n.hiddenLabel&&t.inputHiddenLabel]},fk=e=>{const{classes:t,color:n,disabled:r,error:o,endAdornment:i,focused:l,formControl:s,fullWidth:a,hiddenLabel:u,multiline:f,readOnly:h,size:m,startAdornment:x,type:g}=e,v={root:["root",`color${Z(n)}`,r&&"disabled",o&&"error",a&&"fullWidth",l&&"focused",s&&"formControl",m&&m!=="medium"&&`size${Z(m)}`,f&&"multiline",x&&"adornedStart",i&&"adornedEnd",u&&"hiddenLabel",h&&"readOnly"],input:["input",r&&"disabled",g==="search"&&"inputTypeSearch",f&&"inputMultiline",m==="small"&&"inputSizeSmall",u&&"inputHiddenLabel",x&&"inputAdornedStart",i&&"inputAdornedEnd",h&&"readOnly"]};return Me(v,ck,t)},Bs=K("div",{name:"MuiInputBase",slot:"Root",overridesResolver:js})(({theme:e,ownerState:t})=>w({},e.typography.body1,{color:(e.vars||e).palette.text.primary,lineHeight:"1.4375em",boxSizing:"border-box",position:"relative",cursor:"text",display:"inline-flex",alignItems:"center",[`&.${eo.disabled}`]:{color:(e.vars||e).palette.text.disabled,cursor:"default"}},t.multiline&&w({padding:"4px 0 5px"},t.size==="small"&&{paddingTop:1}),t.fullWidth&&{width:"100%"})),Ws=K("input",{name:"MuiInputBase",slot:"Input",overridesResolver:Ds})(({theme:e,ownerState:t})=>{const n=e.palette.mode==="light",r=w({color:"currentColor"},e.vars?{opacity:e.vars.opacity.inputPlaceholder}:{opacity:n?.42:.5},{transition:e.transitions.create("opacity",{duration:e.transitions.duration.shorter})}),o={opacity:"0 !important"},i=e.vars?{opacity:e.vars.opacity.inputPlaceholder}:{opacity:n?.42:.5};return w({font:"inherit",letterSpacing:"inherit",color:"currentColor",padding:"4px 0 5px",border:0,boxSizing:"content-box",background:"none",height:"1.4375em",margin:0,WebkitTapHighlightColor:"transparent",display:"block",minWidth:0,width:"100%",animationName:"mui-auto-fill-cancel",animationDuration:"10ms","&::-webkit-input-placeholder":r,"&::-moz-placeholder":r,"&:-ms-input-placeholder":r,"&::-ms-input-placeholder":r,"&:focus":{outline:0},"&:invalid":{boxShadow:"none"},"&::-webkit-search-decoration":{WebkitAppearance:"none"},[`label[data-shrink=false] + .${eo.formControl} &`]:{"&::-webkit-input-placeholder":o,"&::-moz-placeholder":o,"&:-ms-input-placeholder":o,"&::-ms-input-placeholder":o,"&:focus::-webkit-input-placeholder":i,"&:focus::-moz-placeholder":i,"&:focus:-ms-input-placeholder":i,"&:focus::-ms-input-placeholder":i},[`&.${eo.disabled}`]:{opacity:1,WebkitTextFillColor:(e.vars||e).palette.text.disabled},"&:-webkit-autofill":{animationDuration:"5000s",animationName:"mui-auto-fill"}},t.size==="small"&&{paddingTop:1},t.multiline&&{height:"auto",resize:"none",padding:0,paddingTop:0},t.type==="search"&&{MozAppearance:"textfield"})}),pk=_.jsx(C0,{styles:{"@keyframes mui-auto-fill":{from:{display:"block"}},"@keyframes mui-auto-fill-cancel":{from:{display:"block"}}}}),mk=S.forwardRef(function(t,n){var r;const o=Te({props:t,name:"MuiInputBase"}),{"aria-describedby":i,autoComplete:l,autoFocus:s,className:a,components:u={},componentsProps:f={},defaultValue:h,disabled:m,disableInjectingGlobalStyles:x,endAdornment:g,fullWidth:v=!1,id:b,inputComponent:p="input",inputProps:c={},inputRef:d,maxRows:y,minRows:k,multiline:E=!1,name:C,onBlur:R,onChange:O,onClick:T,onFocus:j,onKeyDown:D,onKeyUp:F,placeholder:I,readOnly:N,renderSuffix:z,rows:B,slotProps:P={},slots:M={},startAdornment:A,type:q="text",value:G}=o,ue=V(o,dk),H=c.value!=null?c.value:G,{current:se}=S.useRef(H!=null),ee=S.useRef(),Fe=S.useCallback(ce=>{},[]),Je=ft(ee,d,c.ref,Fe),[$e,ot]=S.useState(!1),re=ao(),xe=so({props:o,muiFormControl:re,states:["color","disabled","error","hiddenLabel","size","required","filled"]});xe.focused=re?re.focused:$e,S.useEffect(()=>{!re&&m&&$e&&(ot(!1),R&&R())},[re,m,$e,R]);const X=re&&re.onFilled,ae=re&&re.onEmpty,he=S.useCallback(ce=>{Dl(ce)?X&&X():ae&&ae()},[X,ae]);cr(()=>{se&&he({value:H})},[H,he,se]);const wn=ce=>{if(xe.disabled){ce.stopPropagation();return}j&&j(ce),c.onFocus&&c.onFocus(ce),re&&re.onFocus?re.onFocus(ce):ot(!0)},Et=ce=>{R&&R(ce),c.onBlur&&c.onBlur(ce),re&&re.onBlur?re.onBlur(ce):ot(!1)},bt=(ce,...U)=>{if(!se){const un=ce.target||ee.current;if(un==null)throw new Error(ur(1));he({value:un.value})}c.onChange&&c.onChange(ce,...U),O&&O(ce,...U)};S.useEffect(()=>{he(ee.current)},[]);const Dt=ce=>{ee.current&&ce.currentTarget===ce.target&&ee.current.focus(),T&&T(ce)};let Pt=p,Se=c;E&&Pt==="input"&&(B?Se=w({type:void 0,minRows:B,maxRows:B},Se):Se=w({type:void 0,maxRows:y,minRows:k},Se),Pt=ak);const sn=ce=>{he(ce.animationName==="mui-auto-fill-cancel"?ee.current:{value:"x"})};S.useEffect(()=>{re&&re.setAdornedStart(!!A)},[re,A]);const it=w({},o,{color:xe.color||"primary",disabled:xe.disabled,endAdornment:g,error:xe.error,focused:xe.focused,formControl:re,fullWidth:v,hiddenLabel:xe.hiddenLabel,multiline:E,size:xe.size,startAdornment:A,type:q}),ge=fk(it),Xt=M.root||u.Root||Bs,kn=P.root||f.root||{},an=M.input||u.Input||Ws;return Se=w({},Se,(r=P.input)!=null?r:f.input),_.jsxs(S.Fragment,{children:[!x&&pk,_.jsxs(Xt,w({},kn,!jl(Xt)&&{ownerState:w({},it,kn.ownerState)},{ref:n,onClick:Dt},ue,{className:Y(ge.root,kn.className,a,N&&"MuiInputBase-readOnly"),children:[A,_.jsx(Qc.Provider,{value:null,children:_.jsx(an,w({ownerState:it,"aria-invalid":xe.error,"aria-describedby":i,autoComplete:l,autoFocus:s,defaultValue:h,disabled:xe.disabled,id:b,onAnimationStart:sn,name:C,placeholder:I,readOnly:N,required:xe.required,rows:B,value:H,onKeyDown:D,onKeyUp:F,type:q},Se,!jl(an)&&{as:Pt,ownerState:w({},it,Se.ownerState)},{ref:Je,className:Y(ge.input,Se.className,N&&"MuiInputBase-readOnly"),onBlur:Et,onChange:bt,onFocus:wn}))}),g,z?z(w({},xe,{startAdornment:A})):null]}))]})}),qc=mk;function hk(e){return _e("MuiInput",e)}const ko=w({},eo,Ee("MuiInput",["root","underline","input"]));function gk(e){return _e("MuiOutlinedInput",e)}const En=w({},eo,Ee("MuiOutlinedInput",["root","notchedOutline","input"]));function vk(e){return _e("MuiFilledInput",e)}const Kn=w({},eo,Ee("MuiFilledInput",["root","underline","input"])),yk=Ew(_.jsx("path",{d:"M7 10l5 5 5-5z"}),"ArrowDropDown"),xk=["addEndListener","appear","children","easing","in","onEnter","onEntered","onEntering","onExit","onExited","onExiting","style","timeout","TransitionComponent"],Sk={entering:{opacity:1},entered:{opacity:1}},wk=S.forwardRef(function(t,n){const r=S0(),o={enter:r.transitions.duration.enteringScreen,exit:r.transitions.duration.leavingScreen},{addEndListener:i,appear:l=!0,children:s,easing:a,in:u,onEnter:f,onEntered:h,onEntering:m,onExit:x,onExited:g,onExiting:v,style:b,timeout:p=o,TransitionComponent:c=ln}=t,d=V(t,xk),y=S.useRef(null),k=ft(y,s.ref,n),E=I=>N=>{if(I){const z=y.current;N===void 0?I(z):I(z,N)}},C=E(m),R=E((I,N)=>{w0(I);const z=Al({style:b,timeout:p,easing:a},{mode:"enter"});I.style.webkitTransition=r.transitions.create("opacity",z),I.style.transition=r.transitions.create("opacity",z),f&&f(I,N)}),O=E(h),T=E(v),j=E(I=>{const N=Al({style:b,timeout:p,easing:a},{mode:"exit"});I.style.webkitTransition=r.transitions.create("opacity",N),I.style.transition=r.transitions.create("opacity",N),x&&x(I)}),D=E(g),F=I=>{i&&i(y.current,I)};return _.jsx(c,w({appear:l,in:u,nodeRef:y,onEnter:R,onEntered:O,onEntering:C,onExit:j,onExited:D,onExiting:T,addEndListener:F,timeout:p},d,{children:(I,N)=>S.cloneElement(s,w({style:w({opacity:0,visibility:I==="exited"&&!u?"hidden":void 0},Sk[I],b,s.props.style),ref:k},N))}))});function kk(e){return _e("MuiBackdrop",e)}Ee("MuiBackdrop",["root","invisible"]);const Ck=["children","className","component","components","componentsProps","invisible","open","slotProps","slots","TransitionComponent","transitionDuration"],Ek=e=>{const{classes:t,invisible:n}=e;return Me({root:["root",n&&"invisible"]},kk,t)},bk=K("div",{name:"MuiBackdrop",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.invisible&&t.invisible]}})(({ownerState:e})=>w({position:"fixed",display:"flex",alignItems:"center",justifyContent:"center",right:0,bottom:0,top:0,left:0,backgroundColor:"rgba(0, 0, 0, 0.5)",WebkitTapHighlightColor:"transparent"},e.invisible&&{backgroundColor:"transparent"})),Pk=S.forwardRef(function(t,n){var r,o,i;const l=Te({props:t,name:"MuiBackdrop"}),{children:s,className:a,component:u="div",components:f={},componentsProps:h={},invisible:m=!1,open:x,slotProps:g={},slots:v={},TransitionComponent:b=wk,transitionDuration:p}=l,c=V(l,Ck),d=w({},l,{component:u,invisible:m}),y=Ek(d),k=(r=g.root)!=null?r:h.root;return _.jsx(b,w({in:x,timeout:p},c,{children:_.jsx(bk,w({"aria-hidden":!0},k,{as:(o=(i=v.root)!=null?i:f.Root)!=null?o:u,className:Y(y.root,a,k==null?void 0:k.className),ownerState:w({},d,k==null?void 0:k.ownerState),classes:y,ref:n,children:s}))}))}),Rk=Ee("MuiBox",["root"]),_k=f0(),Gn=KS({themeId:ki,defaultTheme:_k,defaultClassName:Rk.root,generateClassName:d0.generate}),Tk=(e,t)=>w({WebkitFontSmoothing:"antialiased",MozOsxFontSmoothing:"grayscale",boxSizing:"border-box",WebkitTextSizeAdjust:"100%"},t&&!e.vars&&{colorScheme:e.palette.mode}),$k=e=>w({color:(e.vars||e).palette.text.primary},e.typography.body1,{backgroundColor:(e.vars||e).palette.background.default,"@media print":{backgroundColor:(e.vars||e).palette.common.white}}),Ok=(e,t=!1)=>{var n;const r={};t&&e.colorSchemes&&Object.entries(e.colorSchemes).forEach(([l,s])=>{var a;r[e.getColorSchemeSelector(l).replace(/\s*&/,"")]={colorScheme:(a=s.palette)==null?void 0:a.mode}});let o=w({html:Tk(e,t),"*, *::before, *::after":{boxSizing:"inherit"},"strong, b":{fontWeight:e.typography.fontWeightBold},body:w({margin:0},$k(e),{"&::backdrop":{backgroundColor:(e.vars||e).palette.background.default}})},r);const i=(n=e.components)==null||(n=n.MuiCssBaseline)==null?void 0:n.styleOverrides;return i&&(o=[o,i]),o};function Mk(e){const t=Te({props:e,name:"MuiCssBaseline"}),{children:n,enableColorScheme:r=!1}=t;return _.jsxs(S.Fragment,{children:[_.jsx(C0,{styles:o=>Ok(o,r)}),n]})}function Ik(e){return _e("MuiModal",e)}Ee("MuiModal",["root","hidden","backdrop"]);const Nk=["BackdropComponent","BackdropProps","classes","className","closeAfterTransition","children","container","component","components","componentsProps","disableAutoFocus","disableEnforceFocus","disableEscapeKeyDown","disablePortal","disableRestoreFocus","disableScrollLock","hideBackdrop","keepMounted","onBackdropClick","onClose","onTransitionEnter","onTransitionExited","open","slotProps","slots","theme"],zk=e=>{const{open:t,exited:n,classes:r}=e;return Me({root:["root",!t&&n&&"hidden"],backdrop:["backdrop"]},Ik,r)},Lk=K("div",{name:"MuiModal",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,!n.open&&n.exited&&t.hidden]}})(({theme:e,ownerState:t})=>w({position:"fixed",zIndex:(e.vars||e).zIndex.modal,right:0,bottom:0,top:0,left:0},!t.open&&t.exited&&{visibility:"hidden"})),Fk=K(Pk,{name:"MuiModal",slot:"Backdrop",overridesResolver:(e,t)=>t.backdrop})({zIndex:-1}),Ak=S.forwardRef(function(t,n){var r,o,i,l,s,a;const u=Te({name:"MuiModal",props:t}),{BackdropComponent:f=Fk,BackdropProps:h,className:m,closeAfterTransition:x=!1,children:g,container:v,component:b,components:p={},componentsProps:c={},disableAutoFocus:d=!1,disableEnforceFocus:y=!1,disableEscapeKeyDown:k=!1,disablePortal:E=!1,disableRestoreFocus:C=!1,disableScrollLock:R=!1,hideBackdrop:O=!1,keepMounted:T=!1,onBackdropClick:j,open:D,slotProps:F,slots:I}=u,N=V(u,Nk),z=w({},u,{closeAfterTransition:x,disableAutoFocus:d,disableEnforceFocus:y,disableEscapeKeyDown:k,disablePortal:E,disableRestoreFocus:C,disableScrollLock:R,hideBackdrop:O,keepMounted:T}),{getRootProps:B,getBackdropProps:P,getTransitionProps:M,portalRef:A,isTopModal:q,exited:G,hasTransition:ue}=ok(w({},z,{rootRef:n})),H=w({},z,{exited:G}),se=zk(H),ee={};if(g.props.tabIndex===void 0&&(ee.tabIndex="-1"),ue){const{onEnter:X,onExited:ae}=M();ee.onEnter=X,ee.onExited=ae}const Fe=(r=(o=I==null?void 0:I.root)!=null?o:p.Root)!=null?r:Lk,Je=(i=(l=I==null?void 0:I.backdrop)!=null?l:p.Backdrop)!=null?i:f,$e=(s=F==null?void 0:F.root)!=null?s:c.root,ot=(a=F==null?void 0:F.backdrop)!=null?a:c.backdrop,re=Jr({elementType:Fe,externalSlotProps:$e,externalForwardedProps:N,getSlotProps:B,additionalProps:{ref:n,as:b},ownerState:H,className:Y(m,$e==null?void 0:$e.className,se==null?void 0:se.root,!H.open&&H.exited&&(se==null?void 0:se.hidden))}),xe=Jr({elementType:Je,externalSlotProps:ot,additionalProps:h,getSlotProps:X=>P(w({},X,{onClick:ae=>{j&&j(ae),X!=null&&X.onClick&&X.onClick(ae)}})),className:Y(ot==null?void 0:ot.className,h==null?void 0:h.className,se==null?void 0:se.backdrop),ownerState:H});return!T&&!D&&(!ue||G)?null:_.jsx(qw,{ref:A,container:v,disablePortal:E,children:_.jsxs(Fe,w({},re,{children:[!O&&f?_.jsx(Je,w({},xe)):null,_.jsx(Gw,{disableEnforceFocus:y,disableAutoFocus:d,disableRestoreFocus:C,isEnabled:q,open:D,children:S.cloneElement(g,ee)})]}))})}),jk=["disableUnderline","components","componentsProps","fullWidth","hiddenLabel","inputComponent","multiline","slotProps","slots","type"],Dk=e=>{const{classes:t,disableUnderline:n}=e,o=Me({root:["root",!n&&"underline"],input:["input"]},vk,t);return w({},t,o)},Bk=K(Bs,{shouldForwardProp:e=>qt(e)||e==="classes",name:"MuiFilledInput",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[...js(e,t),!n.disableUnderline&&t.underline]}})(({theme:e,ownerState:t})=>{var n;const r=e.palette.mode==="light",o=r?"rgba(0, 0, 0, 0.42)":"rgba(255, 255, 255, 0.7)",i=r?"rgba(0, 0, 0, 0.06)":"rgba(255, 255, 255, 0.09)",l=r?"rgba(0, 0, 0, 0.09)":"rgba(255, 255, 255, 0.13)",s=r?"rgba(0, 0, 0, 0.12)":"rgba(255, 255, 255, 0.12)";return w({position:"relative",backgroundColor:e.vars?e.vars.palette.FilledInput.bg:i,borderTopLeftRadius:(e.vars||e).shape.borderRadius,borderTopRightRadius:(e.vars||e).shape.borderRadius,transition:e.transitions.create("background-color",{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),"&:hover":{backgroundColor:e.vars?e.vars.palette.FilledInput.hoverBg:l,"@media (hover: none)":{backgroundColor:e.vars?e.vars.palette.FilledInput.bg:i}},[`&.${Kn.focused}`]:{backgroundColor:e.vars?e.vars.palette.FilledInput.bg:i},[`&.${Kn.disabled}`]:{backgroundColor:e.vars?e.vars.palette.FilledInput.disabledBg:s}},!t.disableUnderline&&{"&::after":{borderBottom:`2px solid ${(n=(e.vars||e).palette[t.color||"primary"])==null?void 0:n.main}`,left:0,bottom:0,content:'""',position:"absolute",right:0,transform:"scaleX(0)",transition:e.transitions.create("transform",{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),pointerEvents:"none"},[`&.${Kn.focused}:after`]:{transform:"scaleX(1) translateX(0)"},[`&.${Kn.error}`]:{"&::before, &::after":{borderBottomColor:(e.vars||e).palette.error.main}},"&::before":{borderBottom:`1px solid ${e.vars?`rgba(${e.vars.palette.common.onBackgroundChannel} / ${e.vars.opacity.inputUnderline})`:o}`,left:0,bottom:0,content:'"\\00a0"',position:"absolute",right:0,transition:e.transitions.create("border-bottom-color",{duration:e.transitions.duration.shorter}),pointerEvents:"none"},[`&:hover:not(.${Kn.disabled}, .${Kn.error}):before`]:{borderBottom:`1px solid ${(e.vars||e).palette.text.primary}`},[`&.${Kn.disabled}:before`]:{borderBottomStyle:"dotted"}},t.startAdornment&&{paddingLeft:12},t.endAdornment&&{paddingRight:12},t.multiline&&w({padding:"25px 12px 8px"},t.size==="small"&&{paddingTop:21,paddingBottom:4},t.hiddenLabel&&{paddingTop:16,paddingBottom:17},t.hiddenLabel&&t.size==="small"&&{paddingTop:8,paddingBottom:9}))}),Wk=K(Ws,{name:"MuiFilledInput",slot:"Input",overridesResolver:Ds})(({theme:e,ownerState:t})=>w({paddingTop:25,paddingRight:12,paddingBottom:8,paddingLeft:12},!e.vars&&{"&:-webkit-autofill":{WebkitBoxShadow:e.palette.mode==="light"?null:"0 0 0 100px #266798 inset",WebkitTextFillColor:e.palette.mode==="light"?null:"#fff",caretColor:e.palette.mode==="light"?null:"#fff",borderTopLeftRadius:"inherit",borderTopRightRadius:"inherit"}},e.vars&&{"&:-webkit-autofill":{borderTopLeftRadius:"inherit",borderTopRightRadius:"inherit"},[e.getColorSchemeSelector("dark")]:{"&:-webkit-autofill":{WebkitBoxShadow:"0 0 0 100px #266798 inset",WebkitTextFillColor:"#fff",caretColor:"#fff"}}},t.size==="small"&&{paddingTop:21,paddingBottom:4},t.hiddenLabel&&{paddingTop:16,paddingBottom:17},t.startAdornment&&{paddingLeft:0},t.endAdornment&&{paddingRight:0},t.hiddenLabel&&t.size==="small"&&{paddingTop:8,paddingBottom:9},t.multiline&&{paddingTop:0,paddingBottom:0,paddingLeft:0,paddingRight:0})),Xc=S.forwardRef(function(t,n){var r,o,i,l;const s=Te({props:t,name:"MuiFilledInput"}),{components:a={},componentsProps:u,fullWidth:f=!1,inputComponent:h="input",multiline:m=!1,slotProps:x,slots:g={},type:v="text"}=s,b=V(s,jk),p=w({},s,{fullWidth:f,inputComponent:h,multiline:m,type:v}),c=Dk(s),d={root:{ownerState:p},input:{ownerState:p}},y=x??u?yt(d,x??u):d,k=(r=(o=g.root)!=null?o:a.Root)!=null?r:Bk,E=(i=(l=g.input)!=null?l:a.Input)!=null?i:Wk;return _.jsx(qc,w({slots:{root:k,input:E},componentsProps:y,fullWidth:f,inputComponent:h,multiline:m,ref:n,type:v},b,{classes:c}))});Xc.muiName="Input";function Uk(e){return _e("MuiFormControl",e)}Ee("MuiFormControl",["root","marginNone","marginNormal","marginDense","fullWidth","disabled"]);const Hk=["children","className","color","component","disabled","error","focused","fullWidth","hiddenLabel","margin","required","size","variant"],Vk=e=>{const{classes:t,margin:n,fullWidth:r}=e,o={root:["root",n!=="none"&&`margin${Z(n)}`,r&&"fullWidth"]};return Me(o,Uk,t)},Kk=K("div",{name:"MuiFormControl",slot:"Root",overridesResolver:({ownerState:e},t)=>w({},t.root,t[`margin${Z(e.margin)}`],e.fullWidth&&t.fullWidth)})(({ownerState:e})=>w({display:"inline-flex",flexDirection:"column",position:"relative",minWidth:0,padding:0,margin:0,border:0,verticalAlign:"top"},e.margin==="normal"&&{marginTop:16,marginBottom:8},e.margin==="dense"&&{marginTop:8,marginBottom:4},e.fullWidth&&{width:"100%"})),Gk=S.forwardRef(function(t,n){const r=Te({props:t,name:"MuiFormControl"}),{children:o,className:i,color:l="primary",component:s="div",disabled:a=!1,error:u=!1,focused:f,fullWidth:h=!1,hiddenLabel:m=!1,margin:x="none",required:g=!1,size:v="medium",variant:b="outlined"}=r,p=V(r,Hk),c=w({},r,{color:l,component:s,disabled:a,error:u,fullWidth:h,hiddenLabel:m,margin:x,required:g,size:v,variant:b}),d=Vk(c),[y,k]=S.useState(()=>{let F=!1;return o&&S.Children.forEach(o,I=>{if(!Sa(I,["Input","Select"]))return;const N=Sa(I,["Select"])?I.props.input:I;N&&uk(N.props)&&(F=!0)}),F}),[E,C]=S.useState(()=>{let F=!1;return o&&S.Children.forEach(o,I=>{Sa(I,["Input","Select"])&&(Dl(I.props,!0)||Dl(I.props.inputProps,!0))&&(F=!0)}),F}),[R,O]=S.useState(!1);a&&R&&O(!1);const T=f!==void 0&&!a?f:R;let j;const D=S.useMemo(()=>({adornedStart:y,setAdornedStart:k,color:l,disabled:a,error:u,filled:E,focused:T,fullWidth:h,hiddenLabel:m,size:v,onBlur:()=>{O(!1)},onEmpty:()=>{C(!1)},onFilled:()=>{C(!0)},onFocus:()=>{O(!0)},registerEffect:j,required:g,variant:b}),[y,l,a,u,E,T,h,m,j,g,v,b]);return _.jsx(Qc.Provider,{value:D,children:_.jsx(Kk,w({as:s,ownerState:c,className:Y(d.root,i),ref:n},p,{children:o}))})});function Qk(e){return _e("MuiFormHelperText",e)}const Yf=Ee("MuiFormHelperText",["root","error","disabled","sizeSmall","sizeMedium","contained","focused","filled","required"]);var Zf;const qk=["children","className","component","disabled","error","filled","focused","margin","required","variant"],Xk=e=>{const{classes:t,contained:n,size:r,disabled:o,error:i,filled:l,focused:s,required:a}=e,u={root:["root",o&&"disabled",i&&"error",r&&`size${Z(r)}`,n&&"contained",s&&"focused",l&&"filled",a&&"required"]};return Me(u,Qk,t)},Yk=K("p",{name:"MuiFormHelperText",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.size&&t[`size${Z(n.size)}`],n.contained&&t.contained,n.filled&&t.filled]}})(({theme:e,ownerState:t})=>w({color:(e.vars||e).palette.text.secondary},e.typography.caption,{textAlign:"left",marginTop:3,marginRight:0,marginBottom:0,marginLeft:0,[`&.${Yf.disabled}`]:{color:(e.vars||e).palette.text.disabled},[`&.${Yf.error}`]:{color:(e.vars||e).palette.error.main}},t.size==="small"&&{marginTop:4},t.contained&&{marginLeft:14,marginRight:14})),Zk=S.forwardRef(function(t,n){const r=Te({props:t,name:"MuiFormHelperText"}),{children:o,className:i,component:l="p"}=r,s=V(r,qk),a=ao(),u=so({props:r,muiFormControl:a,states:["variant","size","disabled","error","filled","focused","required"]}),f=w({},r,{component:l,contained:u.variant==="filled"||u.variant==="outlined",variant:u.variant,size:u.size,disabled:u.disabled,error:u.error,filled:u.filled,focused:u.focused,required:u.required}),h=Xk(f);return _.jsx(Yk,w({as:l,ownerState:f,className:Y(h.root,i),ref:n},s,{children:o===" "?Zf||(Zf=_.jsx("span",{className:"notranslate",children:"​"})):o}))});function Jk(e){return _e("MuiFormLabel",e)}const Uo=Ee("MuiFormLabel",["root","colorSecondary","focused","disabled","error","filled","required","asterisk"]),eC=["children","className","color","component","disabled","error","filled","focused","required"],tC=e=>{const{classes:t,color:n,focused:r,disabled:o,error:i,filled:l,required:s}=e,a={root:["root",`color${Z(n)}`,o&&"disabled",i&&"error",l&&"filled",r&&"focused",s&&"required"],asterisk:["asterisk",i&&"error"]};return Me(a,Jk,t)},nC=K("label",{name:"MuiFormLabel",slot:"Root",overridesResolver:({ownerState:e},t)=>w({},t.root,e.color==="secondary"&&t.colorSecondary,e.filled&&t.filled)})(({theme:e,ownerState:t})=>w({color:(e.vars||e).palette.text.secondary},e.typography.body1,{lineHeight:"1.4375em",padding:0,position:"relative",[`&.${Uo.focused}`]:{color:(e.vars||e).palette[t.color].main},[`&.${Uo.disabled}`]:{color:(e.vars||e).palette.text.disabled},[`&.${Uo.error}`]:{color:(e.vars||e).palette.error.main}})),rC=K("span",{name:"MuiFormLabel",slot:"Asterisk",overridesResolver:(e,t)=>t.asterisk})(({theme:e})=>({[`&.${Uo.error}`]:{color:(e.vars||e).palette.error.main}})),oC=S.forwardRef(function(t,n){const r=Te({props:t,name:"MuiFormLabel"}),{children:o,className:i,component:l="label"}=r,s=V(r,eC),a=ao(),u=so({props:r,muiFormControl:a,states:["color","required","focused","disabled","error","filled"]}),f=w({},r,{color:u.color||"primary",component:l,disabled:u.disabled,error:u.error,filled:u.filled,focused:u.focused,required:u.required}),h=tC(f);return _.jsxs(nC,w({as:l,ownerState:f,className:Y(h.root,i),ref:n},s,{children:[o,u.required&&_.jsxs(rC,{ownerState:f,"aria-hidden":!0,className:h.asterisk,children:[" ","*"]})]}))}),iC=["addEndListener","appear","children","easing","in","onEnter","onEntered","onEntering","onExit","onExited","onExiting","style","timeout","TransitionComponent"];function $u(e){return`scale(${e}, ${e**2})`}const lC={entering:{opacity:1,transform:$u(1)},entered:{opacity:1,transform:"none"}},ka=typeof navigator<"u"&&/^((?!chrome|android).)*(safari|mobile)/i.test(navigator.userAgent)&&/(os |version\/)15(.|_)4/i.test(navigator.userAgent),E0=S.forwardRef(function(t,n){const{addEndListener:r,appear:o=!0,children:i,easing:l,in:s,onEnter:a,onEntered:u,onEntering:f,onExit:h,onExited:m,onExiting:x,style:g,timeout:v="auto",TransitionComponent:b=ln}=t,p=V(t,iC),c=m0(),d=S.useRef(),y=S0(),k=S.useRef(null),E=ft(k,i.ref,n),C=N=>z=>{if(N){const B=k.current;z===void 0?N(B):N(B,z)}},R=C(f),O=C((N,z)=>{w0(N);const{duration:B,delay:P,easing:M}=Al({style:g,timeout:v,easing:l},{mode:"enter"});let A;v==="auto"?(A=y.transitions.getAutoHeightDuration(N.clientHeight),d.current=A):A=B,N.style.transition=[y.transitions.create("opacity",{duration:A,delay:P}),y.transitions.create("transform",{duration:ka?A:A*.666,delay:P,easing:M})].join(","),a&&a(N,z)}),T=C(u),j=C(x),D=C(N=>{const{duration:z,delay:B,easing:P}=Al({style:g,timeout:v,easing:l},{mode:"exit"});let M;v==="auto"?(M=y.transitions.getAutoHeightDuration(N.clientHeight),d.current=M):M=z,N.style.transition=[y.transitions.create("opacity",{duration:M,delay:B}),y.transitions.create("transform",{duration:ka?M:M*.666,delay:ka?B:B||M*.333,easing:P})].join(","),N.style.opacity=0,N.style.transform=$u(.75),h&&h(N)}),F=C(m),I=N=>{v==="auto"&&c.start(d.current||0,N),r&&r(k.current,N)};return _.jsx(b,w({appear:o,in:s,nodeRef:k,onEnter:O,onEntered:T,onEntering:R,onExit:D,onExited:F,onExiting:j,addEndListener:I,timeout:v==="auto"?null:v},p,{children:(N,z)=>S.cloneElement(i,w({style:w({opacity:0,transform:$u(.75),visibility:N==="exited"&&!s?"hidden":void 0},lC[N],g,i.props.style),ref:E},z))}))});E0.muiSupportAuto=!0;const sC=["disableUnderline","components","componentsProps","fullWidth","inputComponent","multiline","slotProps","slots","type"],aC=e=>{const{classes:t,disableUnderline:n}=e,o=Me({root:["root",!n&&"underline"],input:["input"]},hk,t);return w({},t,o)},uC=K(Bs,{shouldForwardProp:e=>qt(e)||e==="classes",name:"MuiInput",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[...js(e,t),!n.disableUnderline&&t.underline]}})(({theme:e,ownerState:t})=>{let r=e.palette.mode==="light"?"rgba(0, 0, 0, 0.42)":"rgba(255, 255, 255, 0.7)";return e.vars&&(r=`rgba(${e.vars.palette.common.onBackgroundChannel} / ${e.vars.opacity.inputUnderline})`),w({position:"relative"},t.formControl&&{"label + &":{marginTop:16}},!t.disableUnderline&&{"&::after":{borderBottom:`2px solid ${(e.vars||e).palette[t.color].main}`,left:0,bottom:0,content:'""',position:"absolute",right:0,transform:"scaleX(0)",transition:e.transitions.create("transform",{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),pointerEvents:"none"},[`&.${ko.focused}:after`]:{transform:"scaleX(1) translateX(0)"},[`&.${ko.error}`]:{"&::before, &::after":{borderBottomColor:(e.vars||e).palette.error.main}},"&::before":{borderBottom:`1px solid ${r}`,left:0,bottom:0,content:'"\\00a0"',position:"absolute",right:0,transition:e.transitions.create("border-bottom-color",{duration:e.transitions.duration.shorter}),pointerEvents:"none"},[`&:hover:not(.${ko.disabled}, .${ko.error}):before`]:{borderBottom:`2px solid ${(e.vars||e).palette.text.primary}`,"@media (hover: none)":{borderBottom:`1px solid ${r}`}},[`&.${ko.disabled}:before`]:{borderBottomStyle:"dotted"}})}),cC=K(Ws,{name:"MuiInput",slot:"Input",overridesResolver:Ds})({}),Yc=S.forwardRef(function(t,n){var r,o,i,l;const s=Te({props:t,name:"MuiInput"}),{disableUnderline:a,components:u={},componentsProps:f,fullWidth:h=!1,inputComponent:m="input",multiline:x=!1,slotProps:g,slots:v={},type:b="text"}=s,p=V(s,sC),c=aC(s),y={root:{ownerState:{disableUnderline:a}}},k=g??f?yt(g??f,y):y,E=(r=(o=v.root)!=null?o:u.Root)!=null?r:uC,C=(i=(l=v.input)!=null?l:u.Input)!=null?i:cC;return _.jsx(qc,w({slots:{root:E,input:C},slotProps:k,fullWidth:h,inputComponent:m,multiline:x,ref:n,type:b},p,{classes:c}))});Yc.muiName="Input";function dC(e){return _e("MuiInputLabel",e)}Ee("MuiInputLabel",["root","focused","disabled","error","required","asterisk","formControl","sizeSmall","shrink","animated","standard","filled","outlined"]);const fC=["disableAnimation","margin","shrink","variant","className"],pC=e=>{const{classes:t,formControl:n,size:r,shrink:o,disableAnimation:i,variant:l,required:s}=e,a={root:["root",n&&"formControl",!i&&"animated",o&&"shrink",r&&r!=="normal"&&`size${Z(r)}`,l],asterisk:[s&&"asterisk"]},u=Me(a,dC,t);return w({},t,u)},mC=K(oC,{shouldForwardProp:e=>qt(e)||e==="classes",name:"MuiInputLabel",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[{[`& .${Uo.asterisk}`]:t.asterisk},t.root,n.formControl&&t.formControl,n.size==="small"&&t.sizeSmall,n.shrink&&t.shrink,!n.disableAnimation&&t.animated,n.focused&&t.focused,t[n.variant]]}})(({theme:e,ownerState:t})=>w({display:"block",transformOrigin:"top left",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",maxWidth:"100%"},t.formControl&&{position:"absolute",left:0,top:0,transform:"translate(0, 20px) scale(1)"},t.size==="small"&&{transform:"translate(0, 17px) scale(1)"},t.shrink&&{transform:"translate(0, -1.5px) scale(0.75)",transformOrigin:"top left",maxWidth:"133%"},!t.disableAnimation&&{transition:e.transitions.create(["color","transform","max-width"],{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut})},t.variant==="filled"&&w({zIndex:1,pointerEvents:"none",transform:"translate(12px, 16px) scale(1)",maxWidth:"calc(100% - 24px)"},t.size==="small"&&{transform:"translate(12px, 13px) scale(1)"},t.shrink&&w({userSelect:"none",pointerEvents:"auto",transform:"translate(12px, 7px) scale(0.75)",maxWidth:"calc(133% - 24px)"},t.size==="small"&&{transform:"translate(12px, 4px) scale(0.75)"})),t.variant==="outlined"&&w({zIndex:1,pointerEvents:"none",transform:"translate(14px, 16px) scale(1)",maxWidth:"calc(100% - 24px)"},t.size==="small"&&{transform:"translate(14px, 9px) scale(1)"},t.shrink&&{userSelect:"none",pointerEvents:"auto",maxWidth:"calc(133% - 32px)",transform:"translate(14px, -9px) scale(0.75)"}))),hC=S.forwardRef(function(t,n){const r=Te({name:"MuiInputLabel",props:t}),{disableAnimation:o=!1,shrink:i,className:l}=r,s=V(r,fC),a=ao();let u=i;typeof u>"u"&&a&&(u=a.filled||a.focused||a.adornedStart);const f=so({props:r,muiFormControl:a,states:["size","variant","required","focused"]}),h=w({},r,{disableAnimation:o,formControl:a,shrink:u,size:f.size,variant:f.variant,required:f.required,focused:f.focused}),m=pC(h);return _.jsx(mC,w({"data-shrink":u,ownerState:h,ref:n,className:Y(m.root,l)},s,{classes:m}))}),gC=S.createContext({});function vC(e){return _e("MuiList",e)}Ee("MuiList",["root","padding","dense","subheader"]);const yC=["children","className","component","dense","disablePadding","subheader"],xC=e=>{const{classes:t,disablePadding:n,dense:r,subheader:o}=e;return Me({root:["root",!n&&"padding",r&&"dense",o&&"subheader"]},vC,t)},SC=K("ul",{name:"MuiList",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,!n.disablePadding&&t.padding,n.dense&&t.dense,n.subheader&&t.subheader]}})(({ownerState:e})=>w({listStyle:"none",margin:0,padding:0,position:"relative"},!e.disablePadding&&{paddingTop:8,paddingBottom:8},e.subheader&&{paddingTop:0})),wC=S.forwardRef(function(t,n){const r=Te({props:t,name:"MuiList"}),{children:o,className:i,component:l="ul",dense:s=!1,disablePadding:a=!1,subheader:u}=r,f=V(r,yC),h=S.useMemo(()=>({dense:s}),[s]),m=w({},r,{component:l,dense:s,disablePadding:a}),x=xC(m);return _.jsx(gC.Provider,{value:h,children:_.jsxs(SC,w({as:l,className:Y(x.root,i),ref:n,ownerState:m},f,{children:[u,o]}))})}),kC=["actions","autoFocus","autoFocusItem","children","className","disabledItemsFocusable","disableListWrap","onKeyDown","variant"];function Ca(e,t,n){return e===t?e.firstChild:t&&t.nextElementSibling?t.nextElementSibling:n?null:e.firstChild}function Jf(e,t,n){return e===t?n?e.firstChild:e.lastChild:t&&t.previousElementSibling?t.previousElementSibling:n?null:e.lastChild}function b0(e,t){if(t===void 0)return!0;let n=e.innerText;return n===void 0&&(n=e.textContent),n=n.trim().toLowerCase(),n.length===0?!1:t.repeating?n[0]===t.keys[0]:n.indexOf(t.keys.join(""))===0}function Co(e,t,n,r,o,i){let l=!1,s=o(e,t,t?n:!1);for(;s;){if(s===e.firstChild){if(l)return!1;l=!0}const a=r?!1:s.disabled||s.getAttribute("aria-disabled")==="true";if(!s.hasAttribute("tabindex")||!b0(s,i)||a)s=o(e,s,n);else return s.focus(),!0}return!1}const CC=S.forwardRef(function(t,n){const{actions:r,autoFocus:o=!1,autoFocusItem:i=!1,children:l,className:s,disabledItemsFocusable:a=!1,disableListWrap:u=!1,onKeyDown:f,variant:h="selectedMenu"}=t,m=V(t,kC),x=S.useRef(null),g=S.useRef({keys:[],repeating:!0,previousKeyMatched:!0,lastTime:null});cr(()=>{o&&x.current.focus()},[o]),S.useImperativeHandle(r,()=>({adjustStyleForScrollbar:(d,{direction:y})=>{const k=!x.current.style.width;if(d.clientHeight{const y=x.current,k=d.key,E=xt(y).activeElement;if(k==="ArrowDown")d.preventDefault(),Co(y,E,u,a,Ca);else if(k==="ArrowUp")d.preventDefault(),Co(y,E,u,a,Jf);else if(k==="Home")d.preventDefault(),Co(y,null,u,a,Ca);else if(k==="End")d.preventDefault(),Co(y,null,u,a,Jf);else if(k.length===1){const C=g.current,R=k.toLowerCase(),O=performance.now();C.keys.length>0&&(O-C.lastTime>500?(C.keys=[],C.repeating=!0,C.previousKeyMatched=!0):C.repeating&&R!==C.keys[0]&&(C.repeating=!1)),C.lastTime=O,C.keys.push(R);const T=E&&!C.repeating&&b0(E,C);C.previousKeyMatched&&(T||Co(y,E,!1,a,Ca,C))?d.preventDefault():C.previousKeyMatched=!1}f&&f(d)},b=ft(x,n);let p=-1;S.Children.forEach(l,(d,y)=>{if(!S.isValidElement(d)){p===y&&(p+=1,p>=l.length&&(p=-1));return}d.props.disabled||(h==="selectedMenu"&&d.props.selected||p===-1)&&(p=y),p===y&&(d.props.disabled||d.props.muiSkipListHighlight||d.type.muiSkipListHighlight)&&(p+=1,p>=l.length&&(p=-1))});const c=S.Children.map(l,(d,y)=>{if(y===p){const k={};return i&&(k.autoFocus=!0),d.props.tabIndex===void 0&&h==="selectedMenu"&&(k.tabIndex=0),S.cloneElement(d,k)}return d});return _.jsx(wC,w({role:"menu",ref:b,className:s,onKeyDown:v,tabIndex:o?0:-1},m,{children:c}))});function EC(e){return _e("MuiPopover",e)}Ee("MuiPopover",["root","paper"]);const bC=["onEntering"],PC=["action","anchorEl","anchorOrigin","anchorPosition","anchorReference","children","className","container","elevation","marginThreshold","open","PaperProps","slots","slotProps","transformOrigin","TransitionComponent","transitionDuration","TransitionProps","disableScrollLock"],RC=["slotProps"];function ep(e,t){let n=0;return typeof t=="number"?n=t:t==="center"?n=e.height/2:t==="bottom"&&(n=e.height),n}function tp(e,t){let n=0;return typeof t=="number"?n=t:t==="center"?n=e.width/2:t==="right"&&(n=e.width),n}function np(e){return[e.horizontal,e.vertical].map(t=>typeof t=="number"?`${t}px`:t).join(" ")}function Ea(e){return typeof e=="function"?e():e}const _C=e=>{const{classes:t}=e;return Me({root:["root"],paper:["paper"]},EC,t)},TC=K(Ak,{name:"MuiPopover",slot:"Root",overridesResolver:(e,t)=>t.root})({}),P0=K(Tw,{name:"MuiPopover",slot:"Paper",overridesResolver:(e,t)=>t.paper})({position:"absolute",overflowY:"auto",overflowX:"hidden",minWidth:16,minHeight:16,maxWidth:"calc(100% - 32px)",maxHeight:"calc(100% - 32px)",outline:0}),$C=S.forwardRef(function(t,n){var r,o,i;const l=Te({props:t,name:"MuiPopover"}),{action:s,anchorEl:a,anchorOrigin:u={vertical:"top",horizontal:"left"},anchorPosition:f,anchorReference:h="anchorEl",children:m,className:x,container:g,elevation:v=8,marginThreshold:b=16,open:p,PaperProps:c={},slots:d,slotProps:y,transformOrigin:k={vertical:"top",horizontal:"left"},TransitionComponent:E=E0,transitionDuration:C="auto",TransitionProps:{onEntering:R}={},disableScrollLock:O=!1}=l,T=V(l.TransitionProps,bC),j=V(l,PC),D=(r=y==null?void 0:y.paper)!=null?r:c,F=S.useRef(),I=ft(F,D.ref),N=w({},l,{anchorOrigin:u,anchorReference:h,elevation:v,marginThreshold:b,externalPaperSlotProps:D,transformOrigin:k,TransitionComponent:E,transitionDuration:C,TransitionProps:T}),z=_C(N),B=S.useCallback(()=>{if(h==="anchorPosition")return f;const X=Ea(a),he=(X&&X.nodeType===1?X:xt(F.current).body).getBoundingClientRect();return{top:he.top+ep(he,u.vertical),left:he.left+tp(he,u.horizontal)}},[a,u.horizontal,u.vertical,f,h]),P=S.useCallback(X=>({vertical:ep(X,k.vertical),horizontal:tp(X,k.horizontal)}),[k.horizontal,k.vertical]),M=S.useCallback(X=>{const ae={width:X.offsetWidth,height:X.offsetHeight},he=P(ae);if(h==="none")return{top:null,left:null,transformOrigin:np(he)};const wn=B();let Et=wn.top-he.vertical,bt=wn.left-he.horizontal;const Dt=Et+ae.height,Pt=bt+ae.width,Se=dr(Ea(a)),sn=Se.innerHeight-b,it=Se.innerWidth-b;if(b!==null&&Etsn){const ge=Dt-sn;Et-=ge,he.vertical+=ge}if(b!==null&&btit){const ge=Pt-it;bt-=ge,he.horizontal+=ge}return{top:`${Math.round(Et)}px`,left:`${Math.round(bt)}px`,transformOrigin:np(he)}},[a,h,B,P,b]),[A,q]=S.useState(p),G=S.useCallback(()=>{const X=F.current;if(!X)return;const ae=M(X);ae.top!==null&&(X.style.top=ae.top),ae.left!==null&&(X.style.left=ae.left),X.style.transformOrigin=ae.transformOrigin,q(!0)},[M]);S.useEffect(()=>(O&&window.addEventListener("scroll",G),()=>window.removeEventListener("scroll",G)),[a,O,G]);const ue=(X,ae)=>{R&&R(X,ae),G()},H=()=>{q(!1)};S.useEffect(()=>{p&&G()}),S.useImperativeHandle(s,()=>p?{updatePosition:()=>{G()}}:null,[p,G]),S.useEffect(()=>{if(!p)return;const X=g0(()=>{G()}),ae=dr(a);return ae.addEventListener("resize",X),()=>{X.clear(),ae.removeEventListener("resize",X)}},[a,p,G]);let se=C;C==="auto"&&!E.muiSupportAuto&&(se=void 0);const ee=g||(a?xt(Ea(a)).body:void 0),Fe=(o=d==null?void 0:d.root)!=null?o:TC,Je=(i=d==null?void 0:d.paper)!=null?i:P0,$e=Jr({elementType:Je,externalSlotProps:w({},D,{style:A?D.style:w({},D.style,{opacity:0})}),additionalProps:{elevation:v,ref:I},ownerState:N,className:Y(z.paper,D==null?void 0:D.className)}),ot=Jr({elementType:Fe,externalSlotProps:(y==null?void 0:y.root)||{},externalForwardedProps:j,additionalProps:{ref:n,slotProps:{backdrop:{invisible:!0}},container:ee,open:p},ownerState:N,className:Y(z.root,x)}),{slotProps:re}=ot,xe=V(ot,RC);return _.jsx(Fe,w({},xe,!jl(Fe)&&{slotProps:re,disableScrollLock:O},{children:_.jsx(E,w({appear:!0,in:p,onEntering:ue,onExited:H,timeout:se},T,{children:_.jsx(Je,w({},$e,{children:m}))}))}))});function OC(e){return _e("MuiMenu",e)}Ee("MuiMenu",["root","paper","list"]);const MC=["onEntering"],IC=["autoFocus","children","className","disableAutoFocusItem","MenuListProps","onClose","open","PaperProps","PopoverClasses","transitionDuration","TransitionProps","variant","slots","slotProps"],NC={vertical:"top",horizontal:"right"},zC={vertical:"top",horizontal:"left"},LC=e=>{const{classes:t}=e;return Me({root:["root"],paper:["paper"],list:["list"]},OC,t)},FC=K($C,{shouldForwardProp:e=>qt(e)||e==="classes",name:"MuiMenu",slot:"Root",overridesResolver:(e,t)=>t.root})({}),AC=K(P0,{name:"MuiMenu",slot:"Paper",overridesResolver:(e,t)=>t.paper})({maxHeight:"calc(100% - 96px)",WebkitOverflowScrolling:"touch"}),jC=K(CC,{name:"MuiMenu",slot:"List",overridesResolver:(e,t)=>t.list})({outline:0}),DC=S.forwardRef(function(t,n){var r,o;const i=Te({props:t,name:"MuiMenu"}),{autoFocus:l=!0,children:s,className:a,disableAutoFocusItem:u=!1,MenuListProps:f={},onClose:h,open:m,PaperProps:x={},PopoverClasses:g,transitionDuration:v="auto",TransitionProps:{onEntering:b}={},variant:p="selectedMenu",slots:c={},slotProps:d={}}=i,y=V(i.TransitionProps,MC),k=V(i,IC),E=qS(),C=w({},i,{autoFocus:l,disableAutoFocusItem:u,MenuListProps:f,onEntering:b,PaperProps:x,transitionDuration:v,TransitionProps:y,variant:p}),R=LC(C),O=l&&!u&&m,T=S.useRef(null),j=(P,M)=>{T.current&&T.current.adjustStyleForScrollbar(P,{direction:E?"rtl":"ltr"}),b&&b(P,M)},D=P=>{P.key==="Tab"&&(P.preventDefault(),h&&h(P,"tabKeyDown"))};let F=-1;S.Children.map(s,(P,M)=>{S.isValidElement(P)&&(P.props.disabled||(p==="selectedMenu"&&P.props.selected||F===-1)&&(F=M))});const I=(r=c.paper)!=null?r:AC,N=(o=d.paper)!=null?o:x,z=Jr({elementType:c.root,externalSlotProps:d.root,ownerState:C,className:[R.root,a]}),B=Jr({elementType:I,externalSlotProps:N,ownerState:C,className:R.paper});return _.jsx(FC,w({onClose:h,anchorOrigin:{vertical:"bottom",horizontal:E?"right":"left"},transformOrigin:E?NC:zC,slots:{paper:I,root:c.root},slotProps:{root:z,paper:B},open:m,ref:n,transitionDuration:v,TransitionProps:w({onEntering:j},y),ownerState:C},k,{classes:g,children:_.jsx(jC,w({onKeyDown:D,actions:T,autoFocus:l&&(F===-1||u),autoFocusItem:O,variant:p},f,{className:Y(R.list,f.className),children:s}))}))});function BC(e){return _e("MuiNativeSelect",e)}const Zc=Ee("MuiNativeSelect",["root","select","multiple","filled","outlined","standard","disabled","icon","iconOpen","iconFilled","iconOutlined","iconStandard","nativeInput","error"]),WC=["className","disabled","error","IconComponent","inputRef","variant"],UC=e=>{const{classes:t,variant:n,disabled:r,multiple:o,open:i,error:l}=e,s={select:["select",n,r&&"disabled",o&&"multiple",l&&"error"],icon:["icon",`icon${Z(n)}`,i&&"iconOpen",r&&"disabled"]};return Me(s,BC,t)},R0=({ownerState:e,theme:t})=>w({MozAppearance:"none",WebkitAppearance:"none",userSelect:"none",borderRadius:0,cursor:"pointer","&:focus":w({},t.vars?{backgroundColor:`rgba(${t.vars.palette.common.onBackgroundChannel} / 0.05)`}:{backgroundColor:t.palette.mode==="light"?"rgba(0, 0, 0, 0.05)":"rgba(255, 255, 255, 0.05)"},{borderRadius:0}),"&::-ms-expand":{display:"none"},[`&.${Zc.disabled}`]:{cursor:"default"},"&[multiple]":{height:"auto"},"&:not([multiple]) option, &:not([multiple]) optgroup":{backgroundColor:(t.vars||t).palette.background.paper},"&&&":{paddingRight:24,minWidth:16}},e.variant==="filled"&&{"&&&":{paddingRight:32}},e.variant==="outlined"&&{borderRadius:(t.vars||t).shape.borderRadius,"&:focus":{borderRadius:(t.vars||t).shape.borderRadius},"&&&":{paddingRight:32}}),HC=K("select",{name:"MuiNativeSelect",slot:"Select",shouldForwardProp:qt,overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.select,t[n.variant],n.error&&t.error,{[`&.${Zc.multiple}`]:t.multiple}]}})(R0),_0=({ownerState:e,theme:t})=>w({position:"absolute",right:0,top:"calc(50% - .5em)",pointerEvents:"none",color:(t.vars||t).palette.action.active,[`&.${Zc.disabled}`]:{color:(t.vars||t).palette.action.disabled}},e.open&&{transform:"rotate(180deg)"},e.variant==="filled"&&{right:7},e.variant==="outlined"&&{right:7}),VC=K("svg",{name:"MuiNativeSelect",slot:"Icon",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.icon,n.variant&&t[`icon${Z(n.variant)}`],n.open&&t.iconOpen]}})(_0),KC=S.forwardRef(function(t,n){const{className:r,disabled:o,error:i,IconComponent:l,inputRef:s,variant:a="standard"}=t,u=V(t,WC),f=w({},t,{disabled:o,variant:a,error:i}),h=UC(f);return _.jsxs(S.Fragment,{children:[_.jsx(HC,w({ownerState:f,className:Y(h.select,r),disabled:o,ref:s||n},u)),t.multiple?null:_.jsx(VC,{as:l,ownerState:f,className:h.icon})]})});var rp;const GC=["children","classes","className","label","notched"],QC=K("fieldset",{shouldForwardProp:qt})({textAlign:"left",position:"absolute",bottom:0,right:0,top:-5,left:0,margin:0,padding:"0 8px",pointerEvents:"none",borderRadius:"inherit",borderStyle:"solid",borderWidth:1,overflow:"hidden",minWidth:"0%"}),qC=K("legend",{shouldForwardProp:qt})(({ownerState:e,theme:t})=>w({float:"unset",width:"auto",overflow:"hidden"},!e.withLabel&&{padding:0,lineHeight:"11px",transition:t.transitions.create("width",{duration:150,easing:t.transitions.easing.easeOut})},e.withLabel&&w({display:"block",padding:0,height:11,fontSize:"0.75em",visibility:"hidden",maxWidth:.01,transition:t.transitions.create("max-width",{duration:50,easing:t.transitions.easing.easeOut}),whiteSpace:"nowrap","& > span":{paddingLeft:5,paddingRight:5,display:"inline-block",opacity:0,visibility:"visible"}},e.notched&&{maxWidth:"100%",transition:t.transitions.create("max-width",{duration:100,easing:t.transitions.easing.easeOut,delay:50})})));function XC(e){const{className:t,label:n,notched:r}=e,o=V(e,GC),i=n!=null&&n!=="",l=w({},e,{notched:r,withLabel:i});return _.jsx(QC,w({"aria-hidden":!0,className:t,ownerState:l},o,{children:_.jsx(qC,{ownerState:l,children:i?_.jsx("span",{children:n}):rp||(rp=_.jsx("span",{className:"notranslate",children:"​"}))})}))}const YC=["components","fullWidth","inputComponent","label","multiline","notched","slots","type"],ZC=e=>{const{classes:t}=e,r=Me({root:["root"],notchedOutline:["notchedOutline"],input:["input"]},gk,t);return w({},t,r)},JC=K(Bs,{shouldForwardProp:e=>qt(e)||e==="classes",name:"MuiOutlinedInput",slot:"Root",overridesResolver:js})(({theme:e,ownerState:t})=>{const n=e.palette.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return w({position:"relative",borderRadius:(e.vars||e).shape.borderRadius,[`&:hover .${En.notchedOutline}`]:{borderColor:(e.vars||e).palette.text.primary},"@media (hover: none)":{[`&:hover .${En.notchedOutline}`]:{borderColor:e.vars?`rgba(${e.vars.palette.common.onBackgroundChannel} / 0.23)`:n}},[`&.${En.focused} .${En.notchedOutline}`]:{borderColor:(e.vars||e).palette[t.color].main,borderWidth:2},[`&.${En.error} .${En.notchedOutline}`]:{borderColor:(e.vars||e).palette.error.main},[`&.${En.disabled} .${En.notchedOutline}`]:{borderColor:(e.vars||e).palette.action.disabled}},t.startAdornment&&{paddingLeft:14},t.endAdornment&&{paddingRight:14},t.multiline&&w({padding:"16.5px 14px"},t.size==="small"&&{padding:"8.5px 14px"}))}),e2=K(XC,{name:"MuiOutlinedInput",slot:"NotchedOutline",overridesResolver:(e,t)=>t.notchedOutline})(({theme:e})=>{const t=e.palette.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return{borderColor:e.vars?`rgba(${e.vars.palette.common.onBackgroundChannel} / 0.23)`:t}}),t2=K(Ws,{name:"MuiOutlinedInput",slot:"Input",overridesResolver:Ds})(({theme:e,ownerState:t})=>w({padding:"16.5px 14px"},!e.vars&&{"&:-webkit-autofill":{WebkitBoxShadow:e.palette.mode==="light"?null:"0 0 0 100px #266798 inset",WebkitTextFillColor:e.palette.mode==="light"?null:"#fff",caretColor:e.palette.mode==="light"?null:"#fff",borderRadius:"inherit"}},e.vars&&{"&:-webkit-autofill":{borderRadius:"inherit"},[e.getColorSchemeSelector("dark")]:{"&:-webkit-autofill":{WebkitBoxShadow:"0 0 0 100px #266798 inset",WebkitTextFillColor:"#fff",caretColor:"#fff"}}},t.size==="small"&&{padding:"8.5px 14px"},t.multiline&&{padding:0},t.startAdornment&&{paddingLeft:0},t.endAdornment&&{paddingRight:0})),Jc=S.forwardRef(function(t,n){var r,o,i,l,s;const a=Te({props:t,name:"MuiOutlinedInput"}),{components:u={},fullWidth:f=!1,inputComponent:h="input",label:m,multiline:x=!1,notched:g,slots:v={},type:b="text"}=a,p=V(a,YC),c=ZC(a),d=ao(),y=so({props:a,muiFormControl:d,states:["color","disabled","error","focused","hiddenLabel","size","required"]}),k=w({},a,{color:y.color||"primary",disabled:y.disabled,error:y.error,focused:y.focused,formControl:d,fullWidth:f,hiddenLabel:y.hiddenLabel,multiline:x,size:y.size,type:b}),E=(r=(o=v.root)!=null?o:u.Root)!=null?r:JC,C=(i=(l=v.input)!=null?l:u.Input)!=null?i:t2;return _.jsx(qc,w({slots:{root:E,input:C},renderSuffix:R=>_.jsx(e2,{ownerState:k,className:c.notchedOutline,label:m!=null&&m!==""&&y.required?s||(s=_.jsxs(S.Fragment,{children:[m," ","*"]})):m,notched:typeof g<"u"?g:!!(R.startAdornment||R.filled||R.focused)}),fullWidth:f,inputComponent:h,multiline:x,ref:n,type:b},p,{classes:w({},c,{notchedOutline:null})}))});Jc.muiName="Input";function n2(e){return _e("MuiSelect",e)}const Eo=Ee("MuiSelect",["root","select","multiple","filled","outlined","standard","disabled","focused","icon","iconOpen","iconFilled","iconOutlined","iconStandard","nativeInput","error"]);var op;const r2=["aria-describedby","aria-label","autoFocus","autoWidth","children","className","defaultOpen","defaultValue","disabled","displayEmpty","error","IconComponent","inputRef","labelId","MenuProps","multiple","name","onBlur","onChange","onClose","onFocus","onOpen","open","readOnly","renderValue","SelectDisplayProps","tabIndex","type","value","variant"],o2=K("div",{name:"MuiSelect",slot:"Select",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[{[`&.${Eo.select}`]:t.select},{[`&.${Eo.select}`]:t[n.variant]},{[`&.${Eo.error}`]:t.error},{[`&.${Eo.multiple}`]:t.multiple}]}})(R0,{[`&.${Eo.select}`]:{height:"auto",minHeight:"1.4375em",textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden"}}),i2=K("svg",{name:"MuiSelect",slot:"Icon",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.icon,n.variant&&t[`icon${Z(n.variant)}`],n.open&&t.iconOpen]}})(_0),l2=K("input",{shouldForwardProp:e=>p0(e)&&e!=="classes",name:"MuiSelect",slot:"NativeInput",overridesResolver:(e,t)=>t.nativeInput})({bottom:0,left:0,position:"absolute",opacity:0,pointerEvents:"none",width:"100%",boxSizing:"border-box"});function ip(e,t){return typeof t=="object"&&t!==null?e===t:String(e)===String(t)}function s2(e){return e==null||typeof e=="string"&&!e.trim()}const a2=e=>{const{classes:t,variant:n,disabled:r,multiple:o,open:i,error:l}=e,s={select:["select",n,r&&"disabled",o&&"multiple",l&&"error"],icon:["icon",`icon${Z(n)}`,i&&"iconOpen",r&&"disabled"],nativeInput:["nativeInput"]};return Me(s,n2,t)},u2=S.forwardRef(function(t,n){var r;const{"aria-describedby":o,"aria-label":i,autoFocus:l,autoWidth:s,children:a,className:u,defaultOpen:f,defaultValue:h,disabled:m,displayEmpty:x,error:g=!1,IconComponent:v,inputRef:b,labelId:p,MenuProps:c={},multiple:d,name:y,onBlur:k,onChange:E,onClose:C,onFocus:R,onOpen:O,open:T,readOnly:j,renderValue:D,SelectDisplayProps:F={},tabIndex:I,value:N,variant:z="standard"}=t,B=V(t,r2),[P,M]=Df({controlled:N,default:h,name:"Select"}),[A,q]=Df({controlled:T,default:f,name:"Select"}),G=S.useRef(null),ue=S.useRef(null),[H,se]=S.useState(null),{current:ee}=S.useRef(T!=null),[Fe,Je]=S.useState(),$e=ft(n,b),ot=S.useCallback(W=>{ue.current=W,W&&se(W)},[]),re=H==null?void 0:H.parentNode;S.useImperativeHandle($e,()=>({focus:()=>{ue.current.focus()},node:G.current,value:P}),[P]),S.useEffect(()=>{f&&A&&H&&!ee&&(Je(s?null:re.clientWidth),ue.current.focus())},[H,s]),S.useEffect(()=>{l&&ue.current.focus()},[l]),S.useEffect(()=>{if(!p)return;const W=xt(ue.current).getElementById(p);if(W){const fe=()=>{getSelection().isCollapsed&&ue.current.focus()};return W.addEventListener("click",fe),()=>{W.removeEventListener("click",fe)}}},[p]);const xe=(W,fe)=>{W?O&&O(fe):C&&C(fe),ee||(Je(s?null:re.clientWidth),q(W))},X=W=>{W.button===0&&(W.preventDefault(),ue.current.focus(),xe(!0,W))},ae=W=>{xe(!1,W)},he=S.Children.toArray(a),wn=W=>{const fe=he.find(Ue=>Ue.props.value===W.target.value);fe!==void 0&&(M(fe.props.value),E&&E(W,fe))},Et=W=>fe=>{let Ue;if(fe.currentTarget.hasAttribute("tabindex")){if(d){Ue=Array.isArray(P)?P.slice():[];const mr=P.indexOf(W.props.value);mr===-1?Ue.push(W.props.value):Ue.splice(mr,1)}else Ue=W.props.value;if(W.props.onClick&&W.props.onClick(fe),P!==Ue&&(M(Ue),E)){const mr=fe.nativeEvent||fe,td=new mr.constructor(mr.type,mr);Object.defineProperty(td,"target",{writable:!0,value:{value:Ue,name:y}}),E(td,W)}d||xe(!1,fe)}},bt=W=>{j||[" ","ArrowUp","ArrowDown","Enter"].indexOf(W.key)!==-1&&(W.preventDefault(),xe(!0,W))},Dt=H!==null&&A,Pt=W=>{!Dt&&k&&(Object.defineProperty(W,"target",{writable:!0,value:{value:P,name:y}}),k(W))};delete B["aria-invalid"];let Se,sn;const it=[];let ge=!1;(Dl({value:P})||x)&&(D?Se=D(P):ge=!0);const Xt=he.map(W=>{if(!S.isValidElement(W))return null;let fe;if(d){if(!Array.isArray(P))throw new Error(ur(2));fe=P.some(Ue=>ip(Ue,W.props.value)),fe&&ge&&it.push(W.props.children)}else fe=ip(P,W.props.value),fe&&ge&&(sn=W.props.children);return S.cloneElement(W,{"aria-selected":fe?"true":"false",onClick:Et(W),onKeyUp:Ue=>{Ue.key===" "&&Ue.preventDefault(),W.props.onKeyUp&&W.props.onKeyUp(Ue)},role:"option",selected:fe,value:void 0,"data-value":W.props.value})});ge&&(d?it.length===0?Se=null:Se=it.reduce((W,fe,Ue)=>(W.push(fe),Ue{const{classes:t}=e;return t},ed={name:"MuiSelect",overridesResolver:(e,t)=>t.root,shouldForwardProp:e=>qt(e)&&e!=="variant",slot:"Root"},p2=K(Yc,ed)(""),m2=K(Jc,ed)(""),h2=K(Xc,ed)(""),T0=S.forwardRef(function(t,n){const r=Te({name:"MuiSelect",props:t}),{autoWidth:o=!1,children:i,classes:l={},className:s,defaultOpen:a=!1,displayEmpty:u=!1,IconComponent:f=yk,id:h,input:m,inputProps:x,label:g,labelId:v,MenuProps:b,multiple:p=!1,native:c=!1,onClose:d,onOpen:y,open:k,renderValue:E,SelectDisplayProps:C,variant:R="outlined"}=r,O=V(r,c2),T=c?KC:u2,j=ao(),D=so({props:r,muiFormControl:j,states:["variant","error"]}),F=D.variant||R,I=w({},r,{variant:F,classes:l}),N=f2(I),z=V(N,d2),B=m||{standard:_.jsx(p2,{ownerState:I}),outlined:_.jsx(m2,{label:g,ownerState:I}),filled:_.jsx(h2,{ownerState:I})}[F],P=ft(n,B.ref);return _.jsx(S.Fragment,{children:S.cloneElement(B,w({inputComponent:T,inputProps:w({children:i,error:D.error,IconComponent:f,variant:F,type:void 0,multiple:p},c?{id:h}:{autoWidth:o,defaultOpen:a,displayEmpty:u,labelId:v,MenuProps:b,onClose:d,onOpen:y,open:k,renderValue:E,SelectDisplayProps:w({id:h},C)},x,{classes:x?yt(z,x.classes):z},m?m.props.inputProps:{})},(p&&c||u)&&F==="outlined"?{notched:!0}:{},{ref:P,className:Y(B.props.className,s,N.root)},!m&&{variant:F},O))})});T0.muiName="Select";function g2(e){return _e("MuiTextField",e)}Ee("MuiTextField",["root"]);const v2=["autoComplete","autoFocus","children","className","color","defaultValue","disabled","error","FormHelperTextProps","fullWidth","helperText","id","InputLabelProps","inputProps","InputProps","inputRef","label","maxRows","minRows","multiline","name","onBlur","onChange","onFocus","placeholder","required","rows","select","SelectProps","type","value","variant"],y2={standard:Yc,filled:Xc,outlined:Jc},x2=e=>{const{classes:t}=e;return Me({root:["root"]},g2,t)},S2=K(Gk,{name:"MuiTextField",slot:"Root",overridesResolver:(e,t)=>t.root})({}),lp=S.forwardRef(function(t,n){const r=Te({props:t,name:"MuiTextField"}),{autoComplete:o,autoFocus:i=!1,children:l,className:s,color:a="primary",defaultValue:u,disabled:f=!1,error:h=!1,FormHelperTextProps:m,fullWidth:x=!1,helperText:g,id:v,InputLabelProps:b,inputProps:p,InputProps:c,inputRef:d,label:y,maxRows:k,minRows:E,multiline:C=!1,name:R,onBlur:O,onChange:T,onFocus:j,placeholder:D,required:F=!1,rows:I,select:N=!1,SelectProps:z,type:B,value:P,variant:M="outlined"}=r,A=V(r,v2),q=w({},r,{autoFocus:i,color:a,disabled:f,error:h,fullWidth:x,multiline:C,required:F,select:N,variant:M}),G=x2(q),ue={};M==="outlined"&&(b&&typeof b.shrink<"u"&&(ue.notched=b.shrink),ue.label=y),N&&((!z||!z.native)&&(ue.id=void 0),ue["aria-describedby"]=void 0);const H=v0(v),se=g&&H?`${H}-helper-text`:void 0,ee=y&&H?`${H}-label`:void 0,Fe=y2[M],Je=_.jsx(Fe,w({"aria-describedby":se,autoComplete:o,autoFocus:i,defaultValue:u,fullWidth:x,multiline:C,name:R,rows:I,maxRows:k,minRows:E,type:B,value:P,id:H,inputRef:d,onBlur:O,onChange:T,onFocus:j,placeholder:D,inputProps:p},ue,c));return _.jsxs(S2,w({className:Y(G.root,s),disabled:f,error:h,fullWidth:x,ref:n,required:F,color:a,variant:M,ownerState:q},A,{children:[y!=null&&y!==""&&_.jsx(hC,w({htmlFor:H,id:ee},b,{children:y})),N?_.jsx(T0,w({"aria-describedby":se,id:H,labelId:ee,value:P,input:Je},z,{children:l})):Je,g&&_.jsx(Zk,w({id:se},m,{children:g}))]}))});let Mt,Ou=0,$o=null;function al(){return($o===null||$o.byteLength===0)&&($o=new Uint8Array(Mt.memory.buffer)),$o}const ul=typeof TextEncoder<"u"?new TextEncoder("utf-8"):{encode:()=>{throw Error("TextEncoder not available")}},w2=typeof ul.encodeInto=="function"?function(e,t){return ul.encodeInto(e,t)}:function(e,t){const n=ul.encode(e);return t.set(n),{read:e.length,written:n.length}};function k2(e,t,n){if(n===void 0){const s=ul.encode(e),a=t(s.length,1)>>>0;return al().subarray(a,a+s.length).set(s),Ou=s.length,a}let r=e.length,o=t(r,1)>>>0;const i=al();let l=0;for(;l127)break;i[o+l]=s}if(l!==r){l!==0&&(e=e.slice(l)),o=n(o,r,r=l+e.length*3,1)>>>0;const s=al().subarray(o+l,o+r),a=w2(e,s);l+=a.written}return Ou=l,o}let Oo=null;function sp(){return(Oo===null||Oo.byteLength===0)&&(Oo=new Int32Array(Mt.memory.buffer)),Oo}const $0=typeof TextDecoder<"u"?new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}):{decode:()=>{throw Error("TextDecoder not available")}};typeof TextDecoder<"u"&&$0.decode();function C2(e,t){return e=e>>>0,$0.decode(al().subarray(e,e+t))}function ap(e){let t,n;try{const i=Mt.__wbindgen_add_to_stack_pointer(-16),l=k2(e,Mt.__wbindgen_malloc,Mt.__wbindgen_realloc),s=Ou;Mt.parse_sql(i,l,s);var r=sp()[i/4+0],o=sp()[i/4+1];return t=r,n=o,C2(r,o)}finally{Mt.__wbindgen_add_to_stack_pointer(16),Mt.__wbindgen_free(t,n,1)}}async function E2(e,t){if(typeof Response=="function"&&e instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(e,t)}catch(r){if(e.headers.get("Content-Type")!="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",r);else throw r}const n=await e.arrayBuffer();return await WebAssembly.instantiate(n,t)}else{const n=await WebAssembly.instantiate(e,t);return n instanceof WebAssembly.Instance?{instance:n,module:e}:n}}function b2(){const e={};return e.wbg={},e}function P2(e,t){return Mt=e.exports,O0.__wbindgen_wasm_module=t,Oo=null,$o=null,Mt}async function O0(e){if(Mt!==void 0)return Mt;typeof e>"u"&&(e=new URL("/postgresql-cst-parser/assets/postgresql_cst_parser_wasm_bg-DmDZPLZN.wasm",import.meta.url));const t=b2();(typeof e=="string"||typeof Request=="function"&&e instanceof Request||typeof URL=="function"&&e instanceof URL)&&(e=fetch(e));const{instance:n,module:r}=await E2(await e,t);return P2(n,r)}function R2(){const[e,t]=S.useState(`SELECT +`),Tt.rippleVisible,JS,_u,({theme:e})=>e.transitions.easing.easeInOut,Tt.ripplePulsate,({theme:e})=>e.transitions.duration.shorter,Tt.child,Tt.childLeaving,ew,_u,({theme:e})=>e.transitions.easing.easeInOut,Tt.childPulsate,tw,({theme:e})=>e.transitions.easing.easeInOut),ow=S.forwardRef(function(t,n){const r=Te({props:t,name:"MuiTouchRipple"}),{center:o=!1,classes:i={},className:l}=r,s=V(r,YS),[a,u]=S.useState([]),f=S.useRef(0),h=S.useRef(null);S.useEffect(()=>{h.current&&(h.current(),h.current=null)},[a]);const m=S.useRef(!1),x=m0(),g=S.useRef(null),v=S.useRef(null),b=S.useCallback(y=>{const{pulsate:k,rippleX:E,rippleY:C,rippleSize:R,cb:O}=y;u(T=>[...T,_.jsx(rw,{classes:{ripple:Y(i.ripple,Tt.ripple),rippleVisible:Y(i.rippleVisible,Tt.rippleVisible),ripplePulsate:Y(i.ripplePulsate,Tt.ripplePulsate),child:Y(i.child,Tt.child),childLeaving:Y(i.childLeaving,Tt.childLeaving),childPulsate:Y(i.childPulsate,Tt.childPulsate)},timeout:_u,pulsate:k,rippleX:E,rippleY:C,rippleSize:R},f.current)]),f.current+=1,h.current=O},[i]),p=S.useCallback((y={},k={},E=()=>{})=>{const{pulsate:C=!1,center:R=o||k.pulsate,fakeElement:O=!1}=k;if((y==null?void 0:y.type)==="mousedown"&&m.current){m.current=!1;return}(y==null?void 0:y.type)==="touchstart"&&(m.current=!0);const T=O?null:v.current,j=T?T.getBoundingClientRect():{width:0,height:0,left:0,top:0};let D,F,I;if(R||y===void 0||y.clientX===0&&y.clientY===0||!y.clientX&&!y.touches)D=Math.round(j.width/2),F=Math.round(j.height/2);else{const{clientX:N,clientY:z}=y.touches&&y.touches.length>0?y.touches[0]:y;D=Math.round(N-j.left),F=Math.round(z-j.top)}if(R)I=Math.sqrt((2*j.width**2+j.height**2)/3),I%2===0&&(I+=1);else{const N=Math.max(Math.abs((T?T.clientWidth:0)-D),D)*2+2,z=Math.max(Math.abs((T?T.clientHeight:0)-F),F)*2+2;I=Math.sqrt(N**2+z**2)}y!=null&&y.touches?g.current===null&&(g.current=()=>{b({pulsate:C,rippleX:D,rippleY:F,rippleSize:I,cb:E})},x.start(ZS,()=>{g.current&&(g.current(),g.current=null)})):b({pulsate:C,rippleX:D,rippleY:F,rippleSize:I,cb:E})},[o,b,x]),c=S.useCallback(()=>{p({},{pulsate:!0})},[p]),d=S.useCallback((y,k)=>{if(x.clear(),(y==null?void 0:y.type)==="touchend"&&g.current){g.current(),g.current=null,x.start(0,()=>{d(y,k)});return}g.current=null,u(E=>E.length>0?E.slice(1):E),h.current=k},[x]);return S.useImperativeHandle(n,()=>({pulsate:c,start:p,stop:d}),[c,p,d]),_.jsx(nw,w({className:Y(Tt.root,i.root,l),ref:v},s,{children:_.jsx(Gc,{component:null,exit:!0,children:a})}))});function iw(e){return _e("MuiButtonBase",e)}const lw=Ee("MuiButtonBase",["root","disabled","focusVisible"]),sw=["action","centerRipple","children","className","component","disabled","disableRipple","disableTouchRipple","focusRipple","focusVisibleClassName","LinkComponent","onBlur","onClick","onContextMenu","onDragLeave","onFocus","onFocusVisible","onKeyDown","onKeyUp","onMouseDown","onMouseLeave","onMouseUp","onTouchEnd","onTouchMove","onTouchStart","tabIndex","TouchRippleProps","touchRippleRef","type"],aw=e=>{const{disabled:t,focusVisible:n,focusVisibleClassName:r,classes:o}=e,l=Me({root:["root",t&&"disabled",n&&"focusVisible"]},iw,o);return n&&r&&(l.root+=` ${r}`),l},uw=K("button",{name:"MuiButtonBase",slot:"Root",overridesResolver:(e,t)=>t.root})({display:"inline-flex",alignItems:"center",justifyContent:"center",position:"relative",boxSizing:"border-box",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none",textDecoration:"none",color:"inherit","&::-moz-focus-inner":{borderStyle:"none"},[`&.${lw.disabled}`]:{pointerEvents:"none",cursor:"default"},"@media print":{colorAdjust:"exact"}}),cw=S.forwardRef(function(t,n){const r=Te({props:t,name:"MuiButtonBase"}),{action:o,centerRipple:i=!1,children:l,className:s,component:a="button",disabled:u=!1,disableRipple:f=!1,disableTouchRipple:h=!1,focusRipple:m=!1,LinkComponent:x="a",onBlur:g,onClick:v,onContextMenu:b,onDragLeave:p,onFocus:c,onFocusVisible:d,onKeyDown:y,onKeyUp:k,onMouseDown:E,onMouseLeave:C,onMouseUp:R,onTouchEnd:O,onTouchMove:T,onTouchStart:j,tabIndex:D=0,TouchRippleProps:F,touchRippleRef:I,type:N}=r,z=V(r,sw),B=S.useRef(null),P=S.useRef(null),M=ft(P,I),{isFocusVisibleRef:A,onFocus:q,onBlur:G,ref:ue}=LS(),[H,se]=S.useState(!1);u&&H&&se(!1),S.useImperativeHandle(o,()=>({focusVisible:()=>{se(!0),B.current.focus()}}),[]);const[ee,Fe]=S.useState(!1);S.useEffect(()=>{Fe(!0)},[]);const Je=ee&&!f&&!u;S.useEffect(()=>{H&&m&&!f&&ee&&P.current.pulsate()},[f,m,H,ee]);function $e(U,un,co=h){return Fr(fo=>(un&&un(fo),!co&&P.current&&P.current[U](fo),!0))}const ot=$e("start",E),re=$e("stop",b),xe=$e("stop",p),X=$e("stop",R),ae=$e("stop",U=>{H&&U.preventDefault(),C&&C(U)}),he=$e("start",j),wn=$e("stop",O),bt=$e("stop",T),Pt=$e("stop",U=>{G(U),A.current===!1&&se(!1),g&&g(U)},!1),Dt=Fr(U=>{B.current||(B.current=U.currentTarget),q(U),A.current===!0&&(se(!0),d&&d(U)),c&&c(U)}),Rt=()=>{const U=B.current;return a&&a!=="button"&&!(U.tagName==="A"&&U.href)},Se=S.useRef(!1),sn=Fr(U=>{m&&!Se.current&&H&&P.current&&U.key===" "&&(Se.current=!0,P.current.stop(U,()=>{P.current.start(U)})),U.target===U.currentTarget&&Rt()&&U.key===" "&&U.preventDefault(),y&&y(U),U.target===U.currentTarget&&Rt()&&U.key==="Enter"&&!u&&(U.preventDefault(),v&&v(U))}),it=Fr(U=>{m&&U.key===" "&&P.current&&H&&!U.defaultPrevented&&(Se.current=!1,P.current.stop(U,()=>{P.current.pulsate(U)})),k&&k(U),v&&U.target===U.currentTarget&&Rt()&&U.key===" "&&!U.defaultPrevented&&v(U)});let ge=a;ge==="button"&&(z.href||z.to)&&(ge=x);const Xt={};ge==="button"?(Xt.type=N===void 0?"button":N,Xt.disabled=u):(!z.href&&!z.to&&(Xt.role="button"),u&&(Xt["aria-disabled"]=u));const kn=ft(n,ue,B),an=w({},r,{centerRipple:i,component:a,disabled:u,disableRipple:f,disableTouchRipple:h,focusRipple:m,tabIndex:D,focusVisible:H}),ce=aw(an);return _.jsxs(uw,w({as:ge,className:Y(ce.root,s),ownerState:an,onBlur:Pt,onClick:v,onContextMenu:re,onFocus:Dt,onKeyDown:sn,onKeyUp:it,onMouseDown:ot,onMouseLeave:ae,onMouseUp:X,onDragLeave:xe,onTouchEnd:wn,onTouchMove:bt,onTouchStart:he,ref:kn,tabIndex:u?-1:D,type:N},Xt,z,{children:[l,Je?_.jsx(ow,w({ref:M,center:i},F)):null]}))});function dw(e){return _e("MuiButton",e)}const Ui=Ee("MuiButton",["root","text","textInherit","textPrimary","textSecondary","textSuccess","textError","textInfo","textWarning","outlined","outlinedInherit","outlinedPrimary","outlinedSecondary","outlinedSuccess","outlinedError","outlinedInfo","outlinedWarning","contained","containedInherit","containedPrimary","containedSecondary","containedSuccess","containedError","containedInfo","containedWarning","disableElevation","focusVisible","disabled","colorInherit","colorPrimary","colorSecondary","colorSuccess","colorError","colorInfo","colorWarning","textSizeSmall","textSizeMedium","textSizeLarge","outlinedSizeSmall","outlinedSizeMedium","outlinedSizeLarge","containedSizeSmall","containedSizeMedium","containedSizeLarge","sizeMedium","sizeSmall","sizeLarge","fullWidth","startIcon","endIcon","icon","iconSizeSmall","iconSizeMedium","iconSizeLarge"]),fw=S.createContext({}),pw=S.createContext(void 0),mw=["children","color","component","className","disabled","disableElevation","disableFocusRipple","endIcon","focusVisibleClassName","fullWidth","size","startIcon","type","variant"],hw=e=>{const{color:t,disableElevation:n,fullWidth:r,size:o,variant:i,classes:l}=e,s={root:["root",i,`${i}${Z(t)}`,`size${Z(o)}`,`${i}Size${Z(o)}`,`color${Z(t)}`,n&&"disableElevation",r&&"fullWidth"],label:["label"],startIcon:["icon","startIcon",`iconSize${Z(o)}`],endIcon:["icon","endIcon",`iconSize${Z(o)}`]},a=Me(s,dw,l);return w({},l,a)},x0=e=>w({},e.size==="small"&&{"& > *:nth-of-type(1)":{fontSize:18}},e.size==="medium"&&{"& > *:nth-of-type(1)":{fontSize:20}},e.size==="large"&&{"& > *:nth-of-type(1)":{fontSize:22}}),gw=K(cw,{shouldForwardProp:e=>qt(e)||e==="classes",name:"MuiButton",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[n.variant],t[`${n.variant}${Z(n.color)}`],t[`size${Z(n.size)}`],t[`${n.variant}Size${Z(n.size)}`],n.color==="inherit"&&t.colorInherit,n.disableElevation&&t.disableElevation,n.fullWidth&&t.fullWidth]}})(({theme:e,ownerState:t})=>{var n,r;const o=e.palette.mode==="light"?e.palette.grey[300]:e.palette.grey[800],i=e.palette.mode==="light"?e.palette.grey.A100:e.palette.grey[700];return w({},e.typography.button,{minWidth:64,padding:"6px 16px",borderRadius:(e.vars||e).shape.borderRadius,transition:e.transitions.create(["background-color","box-shadow","border-color","color"],{duration:e.transitions.duration.short}),"&:hover":w({textDecoration:"none",backgroundColor:e.vars?`rgba(${e.vars.palette.text.primaryChannel} / ${e.vars.palette.action.hoverOpacity})`:Lr(e.palette.text.primary,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},t.variant==="text"&&t.color!=="inherit"&&{backgroundColor:e.vars?`rgba(${e.vars.palette[t.color].mainChannel} / ${e.vars.palette.action.hoverOpacity})`:Lr(e.palette[t.color].main,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},t.variant==="outlined"&&t.color!=="inherit"&&{border:`1px solid ${(e.vars||e).palette[t.color].main}`,backgroundColor:e.vars?`rgba(${e.vars.palette[t.color].mainChannel} / ${e.vars.palette.action.hoverOpacity})`:Lr(e.palette[t.color].main,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},t.variant==="contained"&&{backgroundColor:e.vars?e.vars.palette.Button.inheritContainedHoverBg:i,boxShadow:(e.vars||e).shadows[4],"@media (hover: none)":{boxShadow:(e.vars||e).shadows[2],backgroundColor:(e.vars||e).palette.grey[300]}},t.variant==="contained"&&t.color!=="inherit"&&{backgroundColor:(e.vars||e).palette[t.color].dark,"@media (hover: none)":{backgroundColor:(e.vars||e).palette[t.color].main}}),"&:active":w({},t.variant==="contained"&&{boxShadow:(e.vars||e).shadows[8]}),[`&.${Ui.focusVisible}`]:w({},t.variant==="contained"&&{boxShadow:(e.vars||e).shadows[6]}),[`&.${Ui.disabled}`]:w({color:(e.vars||e).palette.action.disabled},t.variant==="outlined"&&{border:`1px solid ${(e.vars||e).palette.action.disabledBackground}`},t.variant==="contained"&&{color:(e.vars||e).palette.action.disabled,boxShadow:(e.vars||e).shadows[0],backgroundColor:(e.vars||e).palette.action.disabledBackground})},t.variant==="text"&&{padding:"6px 8px"},t.variant==="text"&&t.color!=="inherit"&&{color:(e.vars||e).palette[t.color].main},t.variant==="outlined"&&{padding:"5px 15px",border:"1px solid currentColor"},t.variant==="outlined"&&t.color!=="inherit"&&{color:(e.vars||e).palette[t.color].main,border:e.vars?`1px solid rgba(${e.vars.palette[t.color].mainChannel} / 0.5)`:`1px solid ${Lr(e.palette[t.color].main,.5)}`},t.variant==="contained"&&{color:e.vars?e.vars.palette.text.primary:(n=(r=e.palette).getContrastText)==null?void 0:n.call(r,e.palette.grey[300]),backgroundColor:e.vars?e.vars.palette.Button.inheritContainedBg:o,boxShadow:(e.vars||e).shadows[2]},t.variant==="contained"&&t.color!=="inherit"&&{color:(e.vars||e).palette[t.color].contrastText,backgroundColor:(e.vars||e).palette[t.color].main},t.color==="inherit"&&{color:"inherit",borderColor:"currentColor"},t.size==="small"&&t.variant==="text"&&{padding:"4px 5px",fontSize:e.typography.pxToRem(13)},t.size==="large"&&t.variant==="text"&&{padding:"8px 11px",fontSize:e.typography.pxToRem(15)},t.size==="small"&&t.variant==="outlined"&&{padding:"3px 9px",fontSize:e.typography.pxToRem(13)},t.size==="large"&&t.variant==="outlined"&&{padding:"7px 21px",fontSize:e.typography.pxToRem(15)},t.size==="small"&&t.variant==="contained"&&{padding:"4px 10px",fontSize:e.typography.pxToRem(13)},t.size==="large"&&t.variant==="contained"&&{padding:"8px 22px",fontSize:e.typography.pxToRem(15)},t.fullWidth&&{width:"100%"})},({ownerState:e})=>e.disableElevation&&{boxShadow:"none","&:hover":{boxShadow:"none"},[`&.${Ui.focusVisible}`]:{boxShadow:"none"},"&:active":{boxShadow:"none"},[`&.${Ui.disabled}`]:{boxShadow:"none"}}),vw=K("span",{name:"MuiButton",slot:"StartIcon",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.startIcon,t[`iconSize${Z(n.size)}`]]}})(({ownerState:e})=>w({display:"inherit",marginRight:8,marginLeft:-4},e.size==="small"&&{marginLeft:-2},x0(e))),yw=K("span",{name:"MuiButton",slot:"EndIcon",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.endIcon,t[`iconSize${Z(n.size)}`]]}})(({ownerState:e})=>w({display:"inherit",marginRight:-4,marginLeft:8},e.size==="small"&&{marginRight:-2},x0(e))),xw=S.forwardRef(function(t,n){const r=S.useContext(fw),o=S.useContext(pw),i=Rc(r,t),l=Te({props:i,name:"MuiButton"}),{children:s,color:a="primary",component:u="button",className:f,disabled:h=!1,disableElevation:m=!1,disableFocusRipple:x=!1,endIcon:g,focusVisibleClassName:v,fullWidth:b=!1,size:p="medium",startIcon:c,type:d,variant:y="text"}=l,k=V(l,mw),E=w({},l,{color:a,component:u,disabled:h,disableElevation:m,disableFocusRipple:x,fullWidth:b,size:p,type:d,variant:y}),C=hw(E),R=c&&_.jsx(vw,{className:C.startIcon,ownerState:E,children:c}),O=g&&_.jsx(yw,{className:C.endIcon,ownerState:E,children:g}),T=o||"";return _.jsxs(gw,w({ownerState:E,className:Y(r.className,C.root,f,T),component:u,disabled:h,focusRipple:!x,focusVisibleClassName:Y(C.focusVisible,v),ref:n,type:d},k,{classes:C,children:[R,s,O]}))});function S0(){const e=zs(Ns);return e[ki]||e}const Vf=e=>{let t;return e<1?t=5.11916*e**2:t=4.5*Math.log(e+1)+2,(t/100).toFixed(2)};function Sw(e){return _e("MuiSvgIcon",e)}Ee("MuiSvgIcon",["root","colorPrimary","colorSecondary","colorAction","colorError","colorDisabled","fontSizeInherit","fontSizeSmall","fontSizeMedium","fontSizeLarge"]);const ww=["children","className","color","component","fontSize","htmlColor","inheritViewBox","titleAccess","viewBox"],kw=e=>{const{color:t,fontSize:n,classes:r}=e,o={root:["root",t!=="inherit"&&`color${Z(t)}`,`fontSize${Z(n)}`]};return Me(o,Sw,r)},Cw=K("svg",{name:"MuiSvgIcon",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.color!=="inherit"&&t[`color${Z(n.color)}`],t[`fontSize${Z(n.fontSize)}`]]}})(({theme:e,ownerState:t})=>{var n,r,o,i,l,s,a,u,f,h,m,x,g;return{userSelect:"none",width:"1em",height:"1em",display:"inline-block",fill:t.hasSvgAsChild?void 0:"currentColor",flexShrink:0,transition:(n=e.transitions)==null||(r=n.create)==null?void 0:r.call(n,"fill",{duration:(o=e.transitions)==null||(o=o.duration)==null?void 0:o.shorter}),fontSize:{inherit:"inherit",small:((i=e.typography)==null||(l=i.pxToRem)==null?void 0:l.call(i,20))||"1.25rem",medium:((s=e.typography)==null||(a=s.pxToRem)==null?void 0:a.call(s,24))||"1.5rem",large:((u=e.typography)==null||(f=u.pxToRem)==null?void 0:f.call(u,35))||"2.1875rem"}[t.fontSize],color:(h=(m=(e.vars||e).palette)==null||(m=m[t.color])==null?void 0:m.main)!=null?h:{action:(x=(e.vars||e).palette)==null||(x=x.action)==null?void 0:x.active,disabled:(g=(e.vars||e).palette)==null||(g=g.action)==null?void 0:g.disabled,inherit:void 0}[t.color]}}),Tu=S.forwardRef(function(t,n){const r=Te({props:t,name:"MuiSvgIcon"}),{children:o,className:i,color:l="inherit",component:s="svg",fontSize:a="medium",htmlColor:u,inheritViewBox:f=!1,titleAccess:h,viewBox:m="0 0 24 24"}=r,x=V(r,ww),g=S.isValidElement(o)&&o.type==="svg",v=w({},r,{color:l,component:s,fontSize:a,instanceFontSize:t.fontSize,inheritViewBox:f,viewBox:m,hasSvgAsChild:g}),b={};f||(b.viewBox=m);const p=kw(v);return _.jsxs(Cw,w({as:s,className:Y(p.root,i),focusable:"false",color:u,"aria-hidden":h?void 0:!0,role:h?"img":void 0,ref:n},b,x,g&&o.props,{ownerState:v,children:[g?o.props.children:o,h?_.jsx("title",{children:h}):null]}))});Tu.muiName="SvgIcon";function Ew(e,t){function n(r,o){return _.jsx(Tu,w({"data-testid":`${t}Icon`,ref:o},r,{children:e}))}return n.muiName=Tu.muiName,S.memo(S.forwardRef(n))}const w0=e=>e.scrollTop;function Al(e,t){var n,r;const{timeout:o,easing:i,style:l={}}=e;return{duration:(n=l.transitionDuration)!=null?n:typeof o=="number"?o:o[t.mode]||0,easing:(r=l.transitionTimingFunction)!=null?r:typeof i=="object"?i[t.mode]:i,delay:l.transitionDelay}}function bw(e){return _e("MuiPaper",e)}Ee("MuiPaper",["root","rounded","outlined","elevation","elevation0","elevation1","elevation2","elevation3","elevation4","elevation5","elevation6","elevation7","elevation8","elevation9","elevation10","elevation11","elevation12","elevation13","elevation14","elevation15","elevation16","elevation17","elevation18","elevation19","elevation20","elevation21","elevation22","elevation23","elevation24"]);const Pw=["className","component","elevation","square","variant"],Rw=e=>{const{square:t,elevation:n,variant:r,classes:o}=e,i={root:["root",r,!t&&"rounded",r==="elevation"&&`elevation${n}`]};return Me(i,bw,o)},_w=K("div",{name:"MuiPaper",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[n.variant],!n.square&&t.rounded,n.variant==="elevation"&&t[`elevation${n.elevation}`]]}})(({theme:e,ownerState:t})=>{var n;return w({backgroundColor:(e.vars||e).palette.background.paper,color:(e.vars||e).palette.text.primary,transition:e.transitions.create("box-shadow")},!t.square&&{borderRadius:e.shape.borderRadius},t.variant==="outlined"&&{border:`1px solid ${(e.vars||e).palette.divider}`},t.variant==="elevation"&&w({boxShadow:(e.vars||e).shadows[t.elevation]},!e.vars&&e.palette.mode==="dark"&&{backgroundImage:`linear-gradient(${Lr("#fff",Vf(t.elevation))}, ${Lr("#fff",Vf(t.elevation))})`},e.vars&&{backgroundImage:(n=e.vars.overlays)==null?void 0:n[t.elevation]}))}),Tw=S.forwardRef(function(t,n){const r=Te({props:t,name:"MuiPaper"}),{className:o,component:i="div",elevation:l=1,square:s=!1,variant:a="elevation"}=r,u=V(r,Pw),f=w({},r,{component:i,elevation:l,square:s,variant:a}),h=Rw(f);return _.jsx(_w,w({as:i,ownerState:f,className:Y(h.root,o),ref:n},u))});function jl(e){return typeof e=="string"}function $w(e,t,n){return e===void 0||jl(e)?t:w({},t,{ownerState:w({},t.ownerState,n)})}function k0(e,t=[]){if(e===void 0)return{};const n={};return Object.keys(e).filter(r=>r.match(/^on[A-Z]/)&&typeof e[r]=="function"&&!t.includes(r)).forEach(r=>{n[r]=e[r]}),n}function Ow(e,t,n){return typeof e=="function"?e(t,n):e}function Kf(e){if(e===void 0)return{};const t={};return Object.keys(e).filter(n=>!(n.match(/^on[A-Z]/)&&typeof e[n]=="function")).forEach(n=>{t[n]=e[n]}),t}function Mw(e){const{getSlotProps:t,additionalProps:n,externalSlotProps:r,externalForwardedProps:o,className:i}=e;if(!t){const x=Y(n==null?void 0:n.className,i,o==null?void 0:o.className,r==null?void 0:r.className),g=w({},n==null?void 0:n.style,o==null?void 0:o.style,r==null?void 0:r.style),v=w({},n,o,r);return x.length>0&&(v.className=x),Object.keys(g).length>0&&(v.style=g),{props:v,internalRef:void 0}}const l=k0(w({},o,r)),s=Kf(r),a=Kf(o),u=t(l),f=Y(u==null?void 0:u.className,n==null?void 0:n.className,i,o==null?void 0:o.className,r==null?void 0:r.className),h=w({},u==null?void 0:u.style,n==null?void 0:n.style,o==null?void 0:o.style,r==null?void 0:r.style),m=w({},u,n,a,s);return f.length>0&&(m.className=f),Object.keys(h).length>0&&(m.style=h),{props:m,internalRef:u.ref}}const Iw=["elementType","externalSlotProps","ownerState","skipResolvingSlotProps"];function eo(e){var t;const{elementType:n,externalSlotProps:r,ownerState:o,skipResolvingSlotProps:i=!1}=e,l=V(e,Iw),s=i?{}:Ow(r,o),{props:a,internalRef:u}=Mw(w({},l,{externalSlotProps:s})),f=ft(u,s==null?void 0:s.ref,(t=e.additionalProps)==null?void 0:t.ref);return $w(n,w({},a,{ref:f}),o)}function Nw(e){return _e("MuiTypography",e)}Ee("MuiTypography",["root","h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","inherit","button","caption","overline","alignLeft","alignRight","alignCenter","alignJustify","noWrap","gutterBottom","paragraph"]);const zw=["align","className","component","gutterBottom","noWrap","paragraph","variant","variantMapping"],Lw=e=>{const{align:t,gutterBottom:n,noWrap:r,paragraph:o,variant:i,classes:l}=e,s={root:["root",i,e.align!=="inherit"&&`align${Z(t)}`,n&&"gutterBottom",r&&"noWrap",o&&"paragraph"]};return Me(s,Nw,l)},Fw=K("span",{name:"MuiTypography",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.variant&&t[n.variant],n.align!=="inherit"&&t[`align${Z(n.align)}`],n.noWrap&&t.noWrap,n.gutterBottom&&t.gutterBottom,n.paragraph&&t.paragraph]}})(({theme:e,ownerState:t})=>w({margin:0},t.variant==="inherit"&&{font:"inherit"},t.variant!=="inherit"&&e.typography[t.variant],t.align!=="inherit"&&{textAlign:t.align},t.noWrap&&{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},t.gutterBottom&&{marginBottom:"0.35em"},t.paragraph&&{marginBottom:16})),Gf={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",subtitle1:"h6",subtitle2:"h6",body1:"p",body2:"p",inherit:"p"},Aw={primary:"primary.main",textPrimary:"text.primary",secondary:"secondary.main",textSecondary:"text.secondary",error:"error.main"},jw=e=>Aw[e]||e,Dw=S.forwardRef(function(t,n){const r=Te({props:t,name:"MuiTypography"}),o=jw(r.color),i=Vc(w({},r,{color:o})),{align:l="inherit",className:s,component:a,gutterBottom:u=!1,noWrap:f=!1,paragraph:h=!1,variant:m="body1",variantMapping:x=Gf}=i,g=V(i,zw),v=w({},i,{align:l,color:o,className:s,component:a,gutterBottom:u,noWrap:f,paragraph:h,variant:m,variantMapping:x}),b=a||(h?"p":x[m]||Gf[m])||"span",p=Lw(v);return _.jsx(Fw,w({as:b,ref:n,ownerState:v,className:Y(p.root,s)},g))}),Bw=["input","select","textarea","a[href]","button","[tabindex]","audio[controls]","video[controls]",'[contenteditable]:not([contenteditable="false"])'].join(",");function Ww(e){const t=parseInt(e.getAttribute("tabindex")||"",10);return Number.isNaN(t)?e.contentEditable==="true"||(e.nodeName==="AUDIO"||e.nodeName==="VIDEO"||e.nodeName==="DETAILS")&&e.getAttribute("tabindex")===null?0:e.tabIndex:t}function Uw(e){if(e.tagName!=="INPUT"||e.type!=="radio"||!e.name)return!1;const t=r=>e.ownerDocument.querySelector(`input[type="radio"]${r}`);let n=t(`[name="${e.name}"]:checked`);return n||(n=t(`[name="${e.name}"]`)),n!==e}function Hw(e){return!(e.disabled||e.tagName==="INPUT"&&e.type==="hidden"||Uw(e))}function Vw(e){const t=[],n=[];return Array.from(e.querySelectorAll(Bw)).forEach((r,o)=>{const i=Ww(r);i===-1||!Hw(r)||(i===0?t.push(r):n.push({documentOrder:o,tabIndex:i,node:r}))}),n.sort((r,o)=>r.tabIndex===o.tabIndex?r.documentOrder-o.documentOrder:r.tabIndex-o.tabIndex).map(r=>r.node).concat(t)}function Kw(){return!0}function Gw(e){const{children:t,disableAutoFocus:n=!1,disableEnforceFocus:r=!1,disableRestoreFocus:o=!1,getTabbable:i=Vw,isEnabled:l=Kw,open:s}=e,a=S.useRef(!1),u=S.useRef(null),f=S.useRef(null),h=S.useRef(null),m=S.useRef(null),x=S.useRef(!1),g=S.useRef(null),v=ft(t.ref,g),b=S.useRef(null);S.useEffect(()=>{!s||!g.current||(x.current=!n)},[n,s]),S.useEffect(()=>{if(!s||!g.current)return;const d=St(g.current);return g.current.contains(d.activeElement)||(g.current.hasAttribute("tabIndex")||g.current.setAttribute("tabIndex","-1"),x.current&&g.current.focus()),()=>{o||(h.current&&h.current.focus&&(a.current=!0,h.current.focus()),h.current=null)}},[s]),S.useEffect(()=>{if(!s||!g.current)return;const d=St(g.current),y=C=>{b.current=C,!(r||!l()||C.key!=="Tab")&&d.activeElement===g.current&&C.shiftKey&&(a.current=!0,f.current&&f.current.focus())},k=()=>{const C=g.current;if(C===null)return;if(!d.hasFocus()||!l()||a.current){a.current=!1;return}if(C.contains(d.activeElement)||r&&d.activeElement!==u.current&&d.activeElement!==f.current)return;if(d.activeElement!==m.current)m.current=null;else if(m.current!==null)return;if(!x.current)return;let R=[];if((d.activeElement===u.current||d.activeElement===f.current)&&(R=i(g.current)),R.length>0){var O,T;const j=!!((O=b.current)!=null&&O.shiftKey&&((T=b.current)==null?void 0:T.key)==="Tab"),D=R[0],F=R[R.length-1];typeof D!="string"&&typeof F!="string"&&(j?F.focus():D.focus())}else C.focus()};d.addEventListener("focusin",k),d.addEventListener("keydown",y,!0);const E=setInterval(()=>{d.activeElement&&d.activeElement.tagName==="BODY"&&k()},50);return()=>{clearInterval(E),d.removeEventListener("focusin",k),d.removeEventListener("keydown",y,!0)}},[n,r,o,l,s,i]);const p=d=>{h.current===null&&(h.current=d.relatedTarget),x.current=!0,m.current=d.target;const y=t.props.onFocus;y&&y(d)},c=d=>{h.current===null&&(h.current=d.relatedTarget),x.current=!0};return _.jsxs(S.Fragment,{children:[_.jsx("div",{tabIndex:s?0:-1,onFocus:c,ref:u,"data-testid":"sentinelStart"}),S.cloneElement(t,{ref:v,onFocus:p}),_.jsx("div",{tabIndex:s?0:-1,onFocus:c,ref:f,"data-testid":"sentinelEnd"})]})}function Qw(e){return typeof e=="function"?e():e}const qw=S.forwardRef(function(t,n){const{children:r,container:o,disablePortal:i=!1}=t,[l,s]=S.useState(null),a=ft(S.isValidElement(r)?r.ref:null,n);if(dr(()=>{i||s(Qw(o)||document.body)},[o,i]),dr(()=>{if(l&&!i)return Eu(n,l),()=>{Eu(n,null)}},[n,l,i]),i){if(S.isValidElement(r)){const u={ref:a};return S.cloneElement(r,u)}return _.jsx(S.Fragment,{children:r})}return _.jsx(S.Fragment,{children:l&&Pc.createPortal(r,l)})});function Xw(e){const t=St(e);return t.body===e?fr(e).innerWidth>t.documentElement.clientWidth:e.scrollHeight>e.clientHeight}function Wo(e,t){t?e.setAttribute("aria-hidden","true"):e.removeAttribute("aria-hidden")}function Qf(e){return parseInt(fr(e).getComputedStyle(e).paddingRight,10)||0}function Yw(e){const n=["TEMPLATE","SCRIPT","STYLE","LINK","MAP","META","NOSCRIPT","PICTURE","COL","COLGROUP","PARAM","SLOT","SOURCE","TRACK"].indexOf(e.tagName)!==-1,r=e.tagName==="INPUT"&&e.getAttribute("type")==="hidden";return n||r}function qf(e,t,n,r,o){const i=[t,n,...r];[].forEach.call(e.children,l=>{const s=i.indexOf(l)===-1,a=!Yw(l);s&&a&&Wo(l,o)})}function wa(e,t){let n=-1;return e.some((r,o)=>t(r)?(n=o,!0):!1),n}function Zw(e,t){const n=[],r=e.container;if(!t.disableScrollLock){if(Xw(r)){const l=y0(St(r));n.push({value:r.style.paddingRight,property:"padding-right",el:r}),r.style.paddingRight=`${Qf(r)+l}px`;const s=St(r).querySelectorAll(".mui-fixed");[].forEach.call(s,a=>{n.push({value:a.style.paddingRight,property:"padding-right",el:a}),a.style.paddingRight=`${Qf(a)+l}px`})}let i;if(r.parentNode instanceof DocumentFragment)i=St(r).body;else{const l=r.parentElement,s=fr(r);i=(l==null?void 0:l.nodeName)==="HTML"&&s.getComputedStyle(l).overflowY==="scroll"?l:r}n.push({value:i.style.overflow,property:"overflow",el:i},{value:i.style.overflowX,property:"overflow-x",el:i},{value:i.style.overflowY,property:"overflow-y",el:i}),i.style.overflow="hidden"}return()=>{n.forEach(({value:i,el:l,property:s})=>{i?l.style.setProperty(s,i):l.style.removeProperty(s)})}}function Jw(e){const t=[];return[].forEach.call(e.children,n=>{n.getAttribute("aria-hidden")==="true"&&t.push(n)}),t}class ek{constructor(){this.containers=void 0,this.modals=void 0,this.modals=[],this.containers=[]}add(t,n){let r=this.modals.indexOf(t);if(r!==-1)return r;r=this.modals.length,this.modals.push(t),t.modalRef&&Wo(t.modalRef,!1);const o=Jw(n);qf(n,t.mount,t.modalRef,o,!0);const i=wa(this.containers,l=>l.container===n);return i!==-1?(this.containers[i].modals.push(t),r):(this.containers.push({modals:[t],container:n,restore:null,hiddenSiblings:o}),r)}mount(t,n){const r=wa(this.containers,i=>i.modals.indexOf(t)!==-1),o=this.containers[r];o.restore||(o.restore=Zw(o,n))}remove(t,n=!0){const r=this.modals.indexOf(t);if(r===-1)return r;const o=wa(this.containers,l=>l.modals.indexOf(t)!==-1),i=this.containers[o];if(i.modals.splice(i.modals.indexOf(t),1),this.modals.splice(r,1),i.modals.length===0)i.restore&&i.restore(),t.modalRef&&Wo(t.modalRef,n),qf(i.container,t.mount,t.modalRef,i.hiddenSiblings,!1),this.containers.splice(o,1);else{const l=i.modals[i.modals.length-1];l.modalRef&&Wo(l.modalRef,!1)}return r}isTopModal(t){return this.modals.length>0&&this.modals[this.modals.length-1]===t}}function tk(e){return typeof e=="function"?e():e}function nk(e){return e?e.props.hasOwnProperty("in"):!1}const rk=new ek;function ok(e){const{container:t,disableEscapeKeyDown:n=!1,disableScrollLock:r=!1,manager:o=rk,closeAfterTransition:i=!1,onTransitionEnter:l,onTransitionExited:s,children:a,onClose:u,open:f,rootRef:h}=e,m=S.useRef({}),x=S.useRef(null),g=S.useRef(null),v=ft(g,h),[b,p]=S.useState(!f),c=nk(a);let d=!0;(e["aria-hidden"]==="false"||e["aria-hidden"]===!1)&&(d=!1);const y=()=>St(x.current),k=()=>(m.current.modalRef=g.current,m.current.mount=x.current,m.current),E=()=>{o.mount(k(),{disableScrollLock:r}),g.current&&(g.current.scrollTop=0)},C=Fr(()=>{const z=tk(t)||y().body;o.add(k(),z),g.current&&E()}),R=S.useCallback(()=>o.isTopModal(k()),[o]),O=Fr(z=>{x.current=z,z&&(f&&R()?E():g.current&&Wo(g.current,d))}),T=S.useCallback(()=>{o.remove(k(),d)},[d,o]);S.useEffect(()=>()=>{T()},[T]),S.useEffect(()=>{f?C():(!c||!i)&&T()},[f,T,c,i,C]);const j=z=>B=>{var P;(P=z.onKeyDown)==null||P.call(z,B),!(B.key!=="Escape"||B.which===229||!R())&&(n||(B.stopPropagation(),u&&u(B,"escapeKeyDown")))},D=z=>B=>{var P;(P=z.onClick)==null||P.call(z,B),B.target===B.currentTarget&&u&&u(B,"backdropClick")};return{getRootProps:(z={})=>{const B=k0(e);delete B.onTransitionEnter,delete B.onTransitionExited;const P=w({},B,z);return w({role:"presentation"},P,{onKeyDown:j(P),ref:v})},getBackdropProps:(z={})=>{const B=z;return w({"aria-hidden":!0},B,{onClick:D(B),open:f})},getTransitionProps:()=>{const z=()=>{p(!1),l&&l()},B=()=>{p(!0),s&&s(),i&&T()};return{onEnter:Ff(z,a==null?void 0:a.props.onEnter),onExited:Ff(B,a==null?void 0:a.props.onExited)}},rootRef:v,portalRef:O,isTopModal:R,exited:b,hasTransition:c}}const ik=["onChange","maxRows","minRows","style","value"];function Hi(e){return parseInt(e,10)||0}const lk={shadow:{visibility:"hidden",position:"absolute",overflow:"hidden",height:0,top:0,left:0,transform:"translateZ(0)"}};function sk(e){return e==null||Object.keys(e).length===0||e.outerHeightStyle===0&&!e.overflowing}const ak=S.forwardRef(function(t,n){const{onChange:r,maxRows:o,minRows:i=1,style:l,value:s}=t,a=V(t,ik),{current:u}=S.useRef(s!=null),f=S.useRef(null),h=ft(n,f),m=S.useRef(null),x=S.useCallback(()=>{const b=f.current,c=fr(b).getComputedStyle(b);if(c.width==="0px")return{outerHeightStyle:0,overflowing:!1};const d=m.current;d.style.width=c.width,d.value=b.value||t.placeholder||"x",d.value.slice(-1)===` +`&&(d.value+=" ");const y=c.boxSizing,k=Hi(c.paddingBottom)+Hi(c.paddingTop),E=Hi(c.borderBottomWidth)+Hi(c.borderTopWidth),C=d.scrollHeight;d.value="x";const R=d.scrollHeight;let O=C;i&&(O=Math.max(Number(i)*R,O)),o&&(O=Math.min(Number(o)*R,O)),O=Math.max(O,R);const T=O+(y==="border-box"?k+E:0),j=Math.abs(O-C)<=1;return{outerHeightStyle:T,overflowing:j}},[o,i,t.placeholder]),g=S.useCallback(()=>{const b=x();if(sk(b))return;const p=f.current;p.style.height=`${b.outerHeightStyle}px`,p.style.overflow=b.overflowing?"hidden":""},[x]);dr(()=>{const b=()=>{g()};let p;const c=g0(b),d=f.current,y=fr(d);y.addEventListener("resize",c);let k;return typeof ResizeObserver<"u"&&(k=new ResizeObserver(b),k.observe(d)),()=>{c.clear(),cancelAnimationFrame(p),y.removeEventListener("resize",c),k&&k.disconnect()}},[x,g]),dr(()=>{g()});const v=b=>{u||g(),r&&r(b)};return _.jsxs(S.Fragment,{children:[_.jsx("textarea",w({value:s,onChange:v,ref:h,rows:i,style:l},a)),_.jsx("textarea",{"aria-hidden":!0,className:t.className,readOnly:!0,ref:m,tabIndex:-1,style:w({},lk.shadow,l,{paddingTop:0,paddingBottom:0})})]})});function ao({props:e,states:t,muiFormControl:n}){return t.reduce((r,o)=>(r[o]=e[o],n&&typeof e[o]>"u"&&(r[o]=n[o]),r),{})}const Qc=S.createContext(void 0);function uo(){return S.useContext(Qc)}function C0(e){return _.jsx(HS,w({},e,{defaultTheme:Ns,themeId:ki}))}function Xf(e){return e!=null&&!(Array.isArray(e)&&e.length===0)}function Dl(e,t=!1){return e&&(Xf(e.value)&&e.value!==""||t&&Xf(e.defaultValue)&&e.defaultValue!=="")}function uk(e){return e.startAdornment}function ck(e){return _e("MuiInputBase",e)}const to=Ee("MuiInputBase",["root","formControl","focused","disabled","adornedStart","adornedEnd","error","sizeSmall","multiline","colorSecondary","fullWidth","hiddenLabel","readOnly","input","inputSizeSmall","inputMultiline","inputTypeSearch","inputAdornedStart","inputAdornedEnd","inputHiddenLabel"]),dk=["aria-describedby","autoComplete","autoFocus","className","color","components","componentsProps","defaultValue","disabled","disableInjectingGlobalStyles","endAdornment","error","fullWidth","id","inputComponent","inputProps","inputRef","margin","maxRows","minRows","multiline","name","onBlur","onChange","onClick","onFocus","onKeyDown","onKeyUp","placeholder","readOnly","renderSuffix","rows","size","slotProps","slots","startAdornment","type","value"],js=(e,t)=>{const{ownerState:n}=e;return[t.root,n.formControl&&t.formControl,n.startAdornment&&t.adornedStart,n.endAdornment&&t.adornedEnd,n.error&&t.error,n.size==="small"&&t.sizeSmall,n.multiline&&t.multiline,n.color&&t[`color${Z(n.color)}`],n.fullWidth&&t.fullWidth,n.hiddenLabel&&t.hiddenLabel]},Ds=(e,t)=>{const{ownerState:n}=e;return[t.input,n.size==="small"&&t.inputSizeSmall,n.multiline&&t.inputMultiline,n.type==="search"&&t.inputTypeSearch,n.startAdornment&&t.inputAdornedStart,n.endAdornment&&t.inputAdornedEnd,n.hiddenLabel&&t.inputHiddenLabel]},fk=e=>{const{classes:t,color:n,disabled:r,error:o,endAdornment:i,focused:l,formControl:s,fullWidth:a,hiddenLabel:u,multiline:f,readOnly:h,size:m,startAdornment:x,type:g}=e,v={root:["root",`color${Z(n)}`,r&&"disabled",o&&"error",a&&"fullWidth",l&&"focused",s&&"formControl",m&&m!=="medium"&&`size${Z(m)}`,f&&"multiline",x&&"adornedStart",i&&"adornedEnd",u&&"hiddenLabel",h&&"readOnly"],input:["input",r&&"disabled",g==="search"&&"inputTypeSearch",f&&"inputMultiline",m==="small"&&"inputSizeSmall",u&&"inputHiddenLabel",x&&"inputAdornedStart",i&&"inputAdornedEnd",h&&"readOnly"]};return Me(v,ck,t)},Bs=K("div",{name:"MuiInputBase",slot:"Root",overridesResolver:js})(({theme:e,ownerState:t})=>w({},e.typography.body1,{color:(e.vars||e).palette.text.primary,lineHeight:"1.4375em",boxSizing:"border-box",position:"relative",cursor:"text",display:"inline-flex",alignItems:"center",[`&.${to.disabled}`]:{color:(e.vars||e).palette.text.disabled,cursor:"default"}},t.multiline&&w({padding:"4px 0 5px"},t.size==="small"&&{paddingTop:1}),t.fullWidth&&{width:"100%"})),Ws=K("input",{name:"MuiInputBase",slot:"Input",overridesResolver:Ds})(({theme:e,ownerState:t})=>{const n=e.palette.mode==="light",r=w({color:"currentColor"},e.vars?{opacity:e.vars.opacity.inputPlaceholder}:{opacity:n?.42:.5},{transition:e.transitions.create("opacity",{duration:e.transitions.duration.shorter})}),o={opacity:"0 !important"},i=e.vars?{opacity:e.vars.opacity.inputPlaceholder}:{opacity:n?.42:.5};return w({font:"inherit",letterSpacing:"inherit",color:"currentColor",padding:"4px 0 5px",border:0,boxSizing:"content-box",background:"none",height:"1.4375em",margin:0,WebkitTapHighlightColor:"transparent",display:"block",minWidth:0,width:"100%",animationName:"mui-auto-fill-cancel",animationDuration:"10ms","&::-webkit-input-placeholder":r,"&::-moz-placeholder":r,"&:-ms-input-placeholder":r,"&::-ms-input-placeholder":r,"&:focus":{outline:0},"&:invalid":{boxShadow:"none"},"&::-webkit-search-decoration":{WebkitAppearance:"none"},[`label[data-shrink=false] + .${to.formControl} &`]:{"&::-webkit-input-placeholder":o,"&::-moz-placeholder":o,"&:-ms-input-placeholder":o,"&::-ms-input-placeholder":o,"&:focus::-webkit-input-placeholder":i,"&:focus::-moz-placeholder":i,"&:focus:-ms-input-placeholder":i,"&:focus::-ms-input-placeholder":i},[`&.${to.disabled}`]:{opacity:1,WebkitTextFillColor:(e.vars||e).palette.text.disabled},"&:-webkit-autofill":{animationDuration:"5000s",animationName:"mui-auto-fill"}},t.size==="small"&&{paddingTop:1},t.multiline&&{height:"auto",resize:"none",padding:0,paddingTop:0},t.type==="search"&&{MozAppearance:"textfield"})}),pk=_.jsx(C0,{styles:{"@keyframes mui-auto-fill":{from:{display:"block"}},"@keyframes mui-auto-fill-cancel":{from:{display:"block"}}}}),mk=S.forwardRef(function(t,n){var r;const o=Te({props:t,name:"MuiInputBase"}),{"aria-describedby":i,autoComplete:l,autoFocus:s,className:a,components:u={},componentsProps:f={},defaultValue:h,disabled:m,disableInjectingGlobalStyles:x,endAdornment:g,fullWidth:v=!1,id:b,inputComponent:p="input",inputProps:c={},inputRef:d,maxRows:y,minRows:k,multiline:E=!1,name:C,onBlur:R,onChange:O,onClick:T,onFocus:j,onKeyDown:D,onKeyUp:F,placeholder:I,readOnly:N,renderSuffix:z,rows:B,slotProps:P={},slots:M={},startAdornment:A,type:q="text",value:G}=o,ue=V(o,dk),H=c.value!=null?c.value:G,{current:se}=S.useRef(H!=null),ee=S.useRef(),Fe=S.useCallback(ce=>{},[]),Je=ft(ee,d,c.ref,Fe),[$e,ot]=S.useState(!1),re=uo(),xe=ao({props:o,muiFormControl:re,states:["color","disabled","error","hiddenLabel","size","required","filled"]});xe.focused=re?re.focused:$e,S.useEffect(()=>{!re&&m&&$e&&(ot(!1),R&&R())},[re,m,$e,R]);const X=re&&re.onFilled,ae=re&&re.onEmpty,he=S.useCallback(ce=>{Dl(ce)?X&&X():ae&&ae()},[X,ae]);dr(()=>{se&&he({value:H})},[H,he,se]);const wn=ce=>{if(xe.disabled){ce.stopPropagation();return}j&&j(ce),c.onFocus&&c.onFocus(ce),re&&re.onFocus?re.onFocus(ce):ot(!0)},bt=ce=>{R&&R(ce),c.onBlur&&c.onBlur(ce),re&&re.onBlur?re.onBlur(ce):ot(!1)},Pt=(ce,...U)=>{if(!se){const un=ce.target||ee.current;if(un==null)throw new Error(cr(1));he({value:un.value})}c.onChange&&c.onChange(ce,...U),O&&O(ce,...U)};S.useEffect(()=>{he(ee.current)},[]);const Dt=ce=>{ee.current&&ce.currentTarget===ce.target&&ee.current.focus(),T&&T(ce)};let Rt=p,Se=c;E&&Rt==="input"&&(B?Se=w({type:void 0,minRows:B,maxRows:B},Se):Se=w({type:void 0,maxRows:y,minRows:k},Se),Rt=ak);const sn=ce=>{he(ce.animationName==="mui-auto-fill-cancel"?ee.current:{value:"x"})};S.useEffect(()=>{re&&re.setAdornedStart(!!A)},[re,A]);const it=w({},o,{color:xe.color||"primary",disabled:xe.disabled,endAdornment:g,error:xe.error,focused:xe.focused,formControl:re,fullWidth:v,hiddenLabel:xe.hiddenLabel,multiline:E,size:xe.size,startAdornment:A,type:q}),ge=fk(it),Xt=M.root||u.Root||Bs,kn=P.root||f.root||{},an=M.input||u.Input||Ws;return Se=w({},Se,(r=P.input)!=null?r:f.input),_.jsxs(S.Fragment,{children:[!x&&pk,_.jsxs(Xt,w({},kn,!jl(Xt)&&{ownerState:w({},it,kn.ownerState)},{ref:n,onClick:Dt},ue,{className:Y(ge.root,kn.className,a,N&&"MuiInputBase-readOnly"),children:[A,_.jsx(Qc.Provider,{value:null,children:_.jsx(an,w({ownerState:it,"aria-invalid":xe.error,"aria-describedby":i,autoComplete:l,autoFocus:s,defaultValue:h,disabled:xe.disabled,id:b,onAnimationStart:sn,name:C,placeholder:I,readOnly:N,required:xe.required,rows:B,value:H,onKeyDown:D,onKeyUp:F,type:q},Se,!jl(an)&&{as:Rt,ownerState:w({},it,Se.ownerState)},{ref:Je,className:Y(ge.input,Se.className,N&&"MuiInputBase-readOnly"),onBlur:bt,onChange:Pt,onFocus:wn}))}),g,z?z(w({},xe,{startAdornment:A})):null]}))]})}),qc=mk;function hk(e){return _e("MuiInput",e)}const Co=w({},to,Ee("MuiInput",["root","underline","input"]));function gk(e){return _e("MuiOutlinedInput",e)}const En=w({},to,Ee("MuiOutlinedInput",["root","notchedOutline","input"]));function vk(e){return _e("MuiFilledInput",e)}const Kn=w({},to,Ee("MuiFilledInput",["root","underline","input"])),yk=Ew(_.jsx("path",{d:"M7 10l5 5 5-5z"}),"ArrowDropDown"),xk=["addEndListener","appear","children","easing","in","onEnter","onEntered","onEntering","onExit","onExited","onExiting","style","timeout","TransitionComponent"],Sk={entering:{opacity:1},entered:{opacity:1}},wk=S.forwardRef(function(t,n){const r=S0(),o={enter:r.transitions.duration.enteringScreen,exit:r.transitions.duration.leavingScreen},{addEndListener:i,appear:l=!0,children:s,easing:a,in:u,onEnter:f,onEntered:h,onEntering:m,onExit:x,onExited:g,onExiting:v,style:b,timeout:p=o,TransitionComponent:c=ln}=t,d=V(t,xk),y=S.useRef(null),k=ft(y,s.ref,n),E=I=>N=>{if(I){const z=y.current;N===void 0?I(z):I(z,N)}},C=E(m),R=E((I,N)=>{w0(I);const z=Al({style:b,timeout:p,easing:a},{mode:"enter"});I.style.webkitTransition=r.transitions.create("opacity",z),I.style.transition=r.transitions.create("opacity",z),f&&f(I,N)}),O=E(h),T=E(v),j=E(I=>{const N=Al({style:b,timeout:p,easing:a},{mode:"exit"});I.style.webkitTransition=r.transitions.create("opacity",N),I.style.transition=r.transitions.create("opacity",N),x&&x(I)}),D=E(g),F=I=>{i&&i(y.current,I)};return _.jsx(c,w({appear:l,in:u,nodeRef:y,onEnter:R,onEntered:O,onEntering:C,onExit:j,onExited:D,onExiting:T,addEndListener:F,timeout:p},d,{children:(I,N)=>S.cloneElement(s,w({style:w({opacity:0,visibility:I==="exited"&&!u?"hidden":void 0},Sk[I],b,s.props.style),ref:k},N))}))});function kk(e){return _e("MuiBackdrop",e)}Ee("MuiBackdrop",["root","invisible"]);const Ck=["children","className","component","components","componentsProps","invisible","open","slotProps","slots","TransitionComponent","transitionDuration"],Ek=e=>{const{classes:t,invisible:n}=e;return Me({root:["root",n&&"invisible"]},kk,t)},bk=K("div",{name:"MuiBackdrop",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.invisible&&t.invisible]}})(({ownerState:e})=>w({position:"fixed",display:"flex",alignItems:"center",justifyContent:"center",right:0,bottom:0,top:0,left:0,backgroundColor:"rgba(0, 0, 0, 0.5)",WebkitTapHighlightColor:"transparent"},e.invisible&&{backgroundColor:"transparent"})),Pk=S.forwardRef(function(t,n){var r,o,i;const l=Te({props:t,name:"MuiBackdrop"}),{children:s,className:a,component:u="div",components:f={},componentsProps:h={},invisible:m=!1,open:x,slotProps:g={},slots:v={},TransitionComponent:b=wk,transitionDuration:p}=l,c=V(l,Ck),d=w({},l,{component:u,invisible:m}),y=Ek(d),k=(r=g.root)!=null?r:h.root;return _.jsx(b,w({in:x,timeout:p},c,{children:_.jsx(bk,w({"aria-hidden":!0},k,{as:(o=(i=v.root)!=null?i:f.Root)!=null?o:u,className:Y(y.root,a,k==null?void 0:k.className),ownerState:w({},d,k==null?void 0:k.ownerState),classes:y,ref:n,children:s}))}))}),Rk=Ee("MuiBox",["root"]),_k=f0(),Gn=KS({themeId:ki,defaultTheme:_k,defaultClassName:Rk.root,generateClassName:d0.generate}),Tk=(e,t)=>w({WebkitFontSmoothing:"antialiased",MozOsxFontSmoothing:"grayscale",boxSizing:"border-box",WebkitTextSizeAdjust:"100%"},t&&!e.vars&&{colorScheme:e.palette.mode}),$k=e=>w({color:(e.vars||e).palette.text.primary},e.typography.body1,{backgroundColor:(e.vars||e).palette.background.default,"@media print":{backgroundColor:(e.vars||e).palette.common.white}}),Ok=(e,t=!1)=>{var n;const r={};t&&e.colorSchemes&&Object.entries(e.colorSchemes).forEach(([l,s])=>{var a;r[e.getColorSchemeSelector(l).replace(/\s*&/,"")]={colorScheme:(a=s.palette)==null?void 0:a.mode}});let o=w({html:Tk(e,t),"*, *::before, *::after":{boxSizing:"inherit"},"strong, b":{fontWeight:e.typography.fontWeightBold},body:w({margin:0},$k(e),{"&::backdrop":{backgroundColor:(e.vars||e).palette.background.default}})},r);const i=(n=e.components)==null||(n=n.MuiCssBaseline)==null?void 0:n.styleOverrides;return i&&(o=[o,i]),o};function Mk(e){const t=Te({props:e,name:"MuiCssBaseline"}),{children:n,enableColorScheme:r=!1}=t;return _.jsxs(S.Fragment,{children:[_.jsx(C0,{styles:o=>Ok(o,r)}),n]})}function Ik(e){return _e("MuiModal",e)}Ee("MuiModal",["root","hidden","backdrop"]);const Nk=["BackdropComponent","BackdropProps","classes","className","closeAfterTransition","children","container","component","components","componentsProps","disableAutoFocus","disableEnforceFocus","disableEscapeKeyDown","disablePortal","disableRestoreFocus","disableScrollLock","hideBackdrop","keepMounted","onBackdropClick","onClose","onTransitionEnter","onTransitionExited","open","slotProps","slots","theme"],zk=e=>{const{open:t,exited:n,classes:r}=e;return Me({root:["root",!t&&n&&"hidden"],backdrop:["backdrop"]},Ik,r)},Lk=K("div",{name:"MuiModal",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,!n.open&&n.exited&&t.hidden]}})(({theme:e,ownerState:t})=>w({position:"fixed",zIndex:(e.vars||e).zIndex.modal,right:0,bottom:0,top:0,left:0},!t.open&&t.exited&&{visibility:"hidden"})),Fk=K(Pk,{name:"MuiModal",slot:"Backdrop",overridesResolver:(e,t)=>t.backdrop})({zIndex:-1}),Ak=S.forwardRef(function(t,n){var r,o,i,l,s,a;const u=Te({name:"MuiModal",props:t}),{BackdropComponent:f=Fk,BackdropProps:h,className:m,closeAfterTransition:x=!1,children:g,container:v,component:b,components:p={},componentsProps:c={},disableAutoFocus:d=!1,disableEnforceFocus:y=!1,disableEscapeKeyDown:k=!1,disablePortal:E=!1,disableRestoreFocus:C=!1,disableScrollLock:R=!1,hideBackdrop:O=!1,keepMounted:T=!1,onBackdropClick:j,open:D,slotProps:F,slots:I}=u,N=V(u,Nk),z=w({},u,{closeAfterTransition:x,disableAutoFocus:d,disableEnforceFocus:y,disableEscapeKeyDown:k,disablePortal:E,disableRestoreFocus:C,disableScrollLock:R,hideBackdrop:O,keepMounted:T}),{getRootProps:B,getBackdropProps:P,getTransitionProps:M,portalRef:A,isTopModal:q,exited:G,hasTransition:ue}=ok(w({},z,{rootRef:n})),H=w({},z,{exited:G}),se=zk(H),ee={};if(g.props.tabIndex===void 0&&(ee.tabIndex="-1"),ue){const{onEnter:X,onExited:ae}=M();ee.onEnter=X,ee.onExited=ae}const Fe=(r=(o=I==null?void 0:I.root)!=null?o:p.Root)!=null?r:Lk,Je=(i=(l=I==null?void 0:I.backdrop)!=null?l:p.Backdrop)!=null?i:f,$e=(s=F==null?void 0:F.root)!=null?s:c.root,ot=(a=F==null?void 0:F.backdrop)!=null?a:c.backdrop,re=eo({elementType:Fe,externalSlotProps:$e,externalForwardedProps:N,getSlotProps:B,additionalProps:{ref:n,as:b},ownerState:H,className:Y(m,$e==null?void 0:$e.className,se==null?void 0:se.root,!H.open&&H.exited&&(se==null?void 0:se.hidden))}),xe=eo({elementType:Je,externalSlotProps:ot,additionalProps:h,getSlotProps:X=>P(w({},X,{onClick:ae=>{j&&j(ae),X!=null&&X.onClick&&X.onClick(ae)}})),className:Y(ot==null?void 0:ot.className,h==null?void 0:h.className,se==null?void 0:se.backdrop),ownerState:H});return!T&&!D&&(!ue||G)?null:_.jsx(qw,{ref:A,container:v,disablePortal:E,children:_.jsxs(Fe,w({},re,{children:[!O&&f?_.jsx(Je,w({},xe)):null,_.jsx(Gw,{disableEnforceFocus:y,disableAutoFocus:d,disableRestoreFocus:C,isEnabled:q,open:D,children:S.cloneElement(g,ee)})]}))})}),jk=["disableUnderline","components","componentsProps","fullWidth","hiddenLabel","inputComponent","multiline","slotProps","slots","type"],Dk=e=>{const{classes:t,disableUnderline:n}=e,o=Me({root:["root",!n&&"underline"],input:["input"]},vk,t);return w({},t,o)},Bk=K(Bs,{shouldForwardProp:e=>qt(e)||e==="classes",name:"MuiFilledInput",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[...js(e,t),!n.disableUnderline&&t.underline]}})(({theme:e,ownerState:t})=>{var n;const r=e.palette.mode==="light",o=r?"rgba(0, 0, 0, 0.42)":"rgba(255, 255, 255, 0.7)",i=r?"rgba(0, 0, 0, 0.06)":"rgba(255, 255, 255, 0.09)",l=r?"rgba(0, 0, 0, 0.09)":"rgba(255, 255, 255, 0.13)",s=r?"rgba(0, 0, 0, 0.12)":"rgba(255, 255, 255, 0.12)";return w({position:"relative",backgroundColor:e.vars?e.vars.palette.FilledInput.bg:i,borderTopLeftRadius:(e.vars||e).shape.borderRadius,borderTopRightRadius:(e.vars||e).shape.borderRadius,transition:e.transitions.create("background-color",{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),"&:hover":{backgroundColor:e.vars?e.vars.palette.FilledInput.hoverBg:l,"@media (hover: none)":{backgroundColor:e.vars?e.vars.palette.FilledInput.bg:i}},[`&.${Kn.focused}`]:{backgroundColor:e.vars?e.vars.palette.FilledInput.bg:i},[`&.${Kn.disabled}`]:{backgroundColor:e.vars?e.vars.palette.FilledInput.disabledBg:s}},!t.disableUnderline&&{"&::after":{borderBottom:`2px solid ${(n=(e.vars||e).palette[t.color||"primary"])==null?void 0:n.main}`,left:0,bottom:0,content:'""',position:"absolute",right:0,transform:"scaleX(0)",transition:e.transitions.create("transform",{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),pointerEvents:"none"},[`&.${Kn.focused}:after`]:{transform:"scaleX(1) translateX(0)"},[`&.${Kn.error}`]:{"&::before, &::after":{borderBottomColor:(e.vars||e).palette.error.main}},"&::before":{borderBottom:`1px solid ${e.vars?`rgba(${e.vars.palette.common.onBackgroundChannel} / ${e.vars.opacity.inputUnderline})`:o}`,left:0,bottom:0,content:'"\\00a0"',position:"absolute",right:0,transition:e.transitions.create("border-bottom-color",{duration:e.transitions.duration.shorter}),pointerEvents:"none"},[`&:hover:not(.${Kn.disabled}, .${Kn.error}):before`]:{borderBottom:`1px solid ${(e.vars||e).palette.text.primary}`},[`&.${Kn.disabled}:before`]:{borderBottomStyle:"dotted"}},t.startAdornment&&{paddingLeft:12},t.endAdornment&&{paddingRight:12},t.multiline&&w({padding:"25px 12px 8px"},t.size==="small"&&{paddingTop:21,paddingBottom:4},t.hiddenLabel&&{paddingTop:16,paddingBottom:17},t.hiddenLabel&&t.size==="small"&&{paddingTop:8,paddingBottom:9}))}),Wk=K(Ws,{name:"MuiFilledInput",slot:"Input",overridesResolver:Ds})(({theme:e,ownerState:t})=>w({paddingTop:25,paddingRight:12,paddingBottom:8,paddingLeft:12},!e.vars&&{"&:-webkit-autofill":{WebkitBoxShadow:e.palette.mode==="light"?null:"0 0 0 100px #266798 inset",WebkitTextFillColor:e.palette.mode==="light"?null:"#fff",caretColor:e.palette.mode==="light"?null:"#fff",borderTopLeftRadius:"inherit",borderTopRightRadius:"inherit"}},e.vars&&{"&:-webkit-autofill":{borderTopLeftRadius:"inherit",borderTopRightRadius:"inherit"},[e.getColorSchemeSelector("dark")]:{"&:-webkit-autofill":{WebkitBoxShadow:"0 0 0 100px #266798 inset",WebkitTextFillColor:"#fff",caretColor:"#fff"}}},t.size==="small"&&{paddingTop:21,paddingBottom:4},t.hiddenLabel&&{paddingTop:16,paddingBottom:17},t.startAdornment&&{paddingLeft:0},t.endAdornment&&{paddingRight:0},t.hiddenLabel&&t.size==="small"&&{paddingTop:8,paddingBottom:9},t.multiline&&{paddingTop:0,paddingBottom:0,paddingLeft:0,paddingRight:0})),Xc=S.forwardRef(function(t,n){var r,o,i,l;const s=Te({props:t,name:"MuiFilledInput"}),{components:a={},componentsProps:u,fullWidth:f=!1,inputComponent:h="input",multiline:m=!1,slotProps:x,slots:g={},type:v="text"}=s,b=V(s,jk),p=w({},s,{fullWidth:f,inputComponent:h,multiline:m,type:v}),c=Dk(s),d={root:{ownerState:p},input:{ownerState:p}},y=x??u?xt(d,x??u):d,k=(r=(o=g.root)!=null?o:a.Root)!=null?r:Bk,E=(i=(l=g.input)!=null?l:a.Input)!=null?i:Wk;return _.jsx(qc,w({slots:{root:k,input:E},componentsProps:y,fullWidth:f,inputComponent:h,multiline:m,ref:n,type:v},b,{classes:c}))});Xc.muiName="Input";function Uk(e){return _e("MuiFormControl",e)}Ee("MuiFormControl",["root","marginNone","marginNormal","marginDense","fullWidth","disabled"]);const Hk=["children","className","color","component","disabled","error","focused","fullWidth","hiddenLabel","margin","required","size","variant"],Vk=e=>{const{classes:t,margin:n,fullWidth:r}=e,o={root:["root",n!=="none"&&`margin${Z(n)}`,r&&"fullWidth"]};return Me(o,Uk,t)},Kk=K("div",{name:"MuiFormControl",slot:"Root",overridesResolver:({ownerState:e},t)=>w({},t.root,t[`margin${Z(e.margin)}`],e.fullWidth&&t.fullWidth)})(({ownerState:e})=>w({display:"inline-flex",flexDirection:"column",position:"relative",minWidth:0,padding:0,margin:0,border:0,verticalAlign:"top"},e.margin==="normal"&&{marginTop:16,marginBottom:8},e.margin==="dense"&&{marginTop:8,marginBottom:4},e.fullWidth&&{width:"100%"})),Gk=S.forwardRef(function(t,n){const r=Te({props:t,name:"MuiFormControl"}),{children:o,className:i,color:l="primary",component:s="div",disabled:a=!1,error:u=!1,focused:f,fullWidth:h=!1,hiddenLabel:m=!1,margin:x="none",required:g=!1,size:v="medium",variant:b="outlined"}=r,p=V(r,Hk),c=w({},r,{color:l,component:s,disabled:a,error:u,fullWidth:h,hiddenLabel:m,margin:x,required:g,size:v,variant:b}),d=Vk(c),[y,k]=S.useState(()=>{let F=!1;return o&&S.Children.forEach(o,I=>{if(!Sa(I,["Input","Select"]))return;const N=Sa(I,["Select"])?I.props.input:I;N&&uk(N.props)&&(F=!0)}),F}),[E,C]=S.useState(()=>{let F=!1;return o&&S.Children.forEach(o,I=>{Sa(I,["Input","Select"])&&(Dl(I.props,!0)||Dl(I.props.inputProps,!0))&&(F=!0)}),F}),[R,O]=S.useState(!1);a&&R&&O(!1);const T=f!==void 0&&!a?f:R;let j;const D=S.useMemo(()=>({adornedStart:y,setAdornedStart:k,color:l,disabled:a,error:u,filled:E,focused:T,fullWidth:h,hiddenLabel:m,size:v,onBlur:()=>{O(!1)},onEmpty:()=>{C(!1)},onFilled:()=>{C(!0)},onFocus:()=>{O(!0)},registerEffect:j,required:g,variant:b}),[y,l,a,u,E,T,h,m,j,g,v,b]);return _.jsx(Qc.Provider,{value:D,children:_.jsx(Kk,w({as:s,ownerState:c,className:Y(d.root,i),ref:n},p,{children:o}))})});function Qk(e){return _e("MuiFormHelperText",e)}const Yf=Ee("MuiFormHelperText",["root","error","disabled","sizeSmall","sizeMedium","contained","focused","filled","required"]);var Zf;const qk=["children","className","component","disabled","error","filled","focused","margin","required","variant"],Xk=e=>{const{classes:t,contained:n,size:r,disabled:o,error:i,filled:l,focused:s,required:a}=e,u={root:["root",o&&"disabled",i&&"error",r&&`size${Z(r)}`,n&&"contained",s&&"focused",l&&"filled",a&&"required"]};return Me(u,Qk,t)},Yk=K("p",{name:"MuiFormHelperText",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.size&&t[`size${Z(n.size)}`],n.contained&&t.contained,n.filled&&t.filled]}})(({theme:e,ownerState:t})=>w({color:(e.vars||e).palette.text.secondary},e.typography.caption,{textAlign:"left",marginTop:3,marginRight:0,marginBottom:0,marginLeft:0,[`&.${Yf.disabled}`]:{color:(e.vars||e).palette.text.disabled},[`&.${Yf.error}`]:{color:(e.vars||e).palette.error.main}},t.size==="small"&&{marginTop:4},t.contained&&{marginLeft:14,marginRight:14})),Zk=S.forwardRef(function(t,n){const r=Te({props:t,name:"MuiFormHelperText"}),{children:o,className:i,component:l="p"}=r,s=V(r,qk),a=uo(),u=ao({props:r,muiFormControl:a,states:["variant","size","disabled","error","filled","focused","required"]}),f=w({},r,{component:l,contained:u.variant==="filled"||u.variant==="outlined",variant:u.variant,size:u.size,disabled:u.disabled,error:u.error,filled:u.filled,focused:u.focused,required:u.required}),h=Xk(f);return _.jsx(Yk,w({as:l,ownerState:f,className:Y(h.root,i),ref:n},s,{children:o===" "?Zf||(Zf=_.jsx("span",{className:"notranslate",children:"​"})):o}))});function Jk(e){return _e("MuiFormLabel",e)}const Uo=Ee("MuiFormLabel",["root","colorSecondary","focused","disabled","error","filled","required","asterisk"]),eC=["children","className","color","component","disabled","error","filled","focused","required"],tC=e=>{const{classes:t,color:n,focused:r,disabled:o,error:i,filled:l,required:s}=e,a={root:["root",`color${Z(n)}`,o&&"disabled",i&&"error",l&&"filled",r&&"focused",s&&"required"],asterisk:["asterisk",i&&"error"]};return Me(a,Jk,t)},nC=K("label",{name:"MuiFormLabel",slot:"Root",overridesResolver:({ownerState:e},t)=>w({},t.root,e.color==="secondary"&&t.colorSecondary,e.filled&&t.filled)})(({theme:e,ownerState:t})=>w({color:(e.vars||e).palette.text.secondary},e.typography.body1,{lineHeight:"1.4375em",padding:0,position:"relative",[`&.${Uo.focused}`]:{color:(e.vars||e).palette[t.color].main},[`&.${Uo.disabled}`]:{color:(e.vars||e).palette.text.disabled},[`&.${Uo.error}`]:{color:(e.vars||e).palette.error.main}})),rC=K("span",{name:"MuiFormLabel",slot:"Asterisk",overridesResolver:(e,t)=>t.asterisk})(({theme:e})=>({[`&.${Uo.error}`]:{color:(e.vars||e).palette.error.main}})),oC=S.forwardRef(function(t,n){const r=Te({props:t,name:"MuiFormLabel"}),{children:o,className:i,component:l="label"}=r,s=V(r,eC),a=uo(),u=ao({props:r,muiFormControl:a,states:["color","required","focused","disabled","error","filled"]}),f=w({},r,{color:u.color||"primary",component:l,disabled:u.disabled,error:u.error,filled:u.filled,focused:u.focused,required:u.required}),h=tC(f);return _.jsxs(nC,w({as:l,ownerState:f,className:Y(h.root,i),ref:n},s,{children:[o,u.required&&_.jsxs(rC,{ownerState:f,"aria-hidden":!0,className:h.asterisk,children:[" ","*"]})]}))}),iC=["addEndListener","appear","children","easing","in","onEnter","onEntered","onEntering","onExit","onExited","onExiting","style","timeout","TransitionComponent"];function $u(e){return`scale(${e}, ${e**2})`}const lC={entering:{opacity:1,transform:$u(1)},entered:{opacity:1,transform:"none"}},ka=typeof navigator<"u"&&/^((?!chrome|android).)*(safari|mobile)/i.test(navigator.userAgent)&&/(os |version\/)15(.|_)4/i.test(navigator.userAgent),E0=S.forwardRef(function(t,n){const{addEndListener:r,appear:o=!0,children:i,easing:l,in:s,onEnter:a,onEntered:u,onEntering:f,onExit:h,onExited:m,onExiting:x,style:g,timeout:v="auto",TransitionComponent:b=ln}=t,p=V(t,iC),c=m0(),d=S.useRef(),y=S0(),k=S.useRef(null),E=ft(k,i.ref,n),C=N=>z=>{if(N){const B=k.current;z===void 0?N(B):N(B,z)}},R=C(f),O=C((N,z)=>{w0(N);const{duration:B,delay:P,easing:M}=Al({style:g,timeout:v,easing:l},{mode:"enter"});let A;v==="auto"?(A=y.transitions.getAutoHeightDuration(N.clientHeight),d.current=A):A=B,N.style.transition=[y.transitions.create("opacity",{duration:A,delay:P}),y.transitions.create("transform",{duration:ka?A:A*.666,delay:P,easing:M})].join(","),a&&a(N,z)}),T=C(u),j=C(x),D=C(N=>{const{duration:z,delay:B,easing:P}=Al({style:g,timeout:v,easing:l},{mode:"exit"});let M;v==="auto"?(M=y.transitions.getAutoHeightDuration(N.clientHeight),d.current=M):M=z,N.style.transition=[y.transitions.create("opacity",{duration:M,delay:B}),y.transitions.create("transform",{duration:ka?M:M*.666,delay:ka?B:B||M*.333,easing:P})].join(","),N.style.opacity=0,N.style.transform=$u(.75),h&&h(N)}),F=C(m),I=N=>{v==="auto"&&c.start(d.current||0,N),r&&r(k.current,N)};return _.jsx(b,w({appear:o,in:s,nodeRef:k,onEnter:O,onEntered:T,onEntering:R,onExit:D,onExited:F,onExiting:j,addEndListener:I,timeout:v==="auto"?null:v},p,{children:(N,z)=>S.cloneElement(i,w({style:w({opacity:0,transform:$u(.75),visibility:N==="exited"&&!s?"hidden":void 0},lC[N],g,i.props.style),ref:E},z))}))});E0.muiSupportAuto=!0;const sC=["disableUnderline","components","componentsProps","fullWidth","inputComponent","multiline","slotProps","slots","type"],aC=e=>{const{classes:t,disableUnderline:n}=e,o=Me({root:["root",!n&&"underline"],input:["input"]},hk,t);return w({},t,o)},uC=K(Bs,{shouldForwardProp:e=>qt(e)||e==="classes",name:"MuiInput",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[...js(e,t),!n.disableUnderline&&t.underline]}})(({theme:e,ownerState:t})=>{let r=e.palette.mode==="light"?"rgba(0, 0, 0, 0.42)":"rgba(255, 255, 255, 0.7)";return e.vars&&(r=`rgba(${e.vars.palette.common.onBackgroundChannel} / ${e.vars.opacity.inputUnderline})`),w({position:"relative"},t.formControl&&{"label + &":{marginTop:16}},!t.disableUnderline&&{"&::after":{borderBottom:`2px solid ${(e.vars||e).palette[t.color].main}`,left:0,bottom:0,content:'""',position:"absolute",right:0,transform:"scaleX(0)",transition:e.transitions.create("transform",{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),pointerEvents:"none"},[`&.${Co.focused}:after`]:{transform:"scaleX(1) translateX(0)"},[`&.${Co.error}`]:{"&::before, &::after":{borderBottomColor:(e.vars||e).palette.error.main}},"&::before":{borderBottom:`1px solid ${r}`,left:0,bottom:0,content:'"\\00a0"',position:"absolute",right:0,transition:e.transitions.create("border-bottom-color",{duration:e.transitions.duration.shorter}),pointerEvents:"none"},[`&:hover:not(.${Co.disabled}, .${Co.error}):before`]:{borderBottom:`2px solid ${(e.vars||e).palette.text.primary}`,"@media (hover: none)":{borderBottom:`1px solid ${r}`}},[`&.${Co.disabled}:before`]:{borderBottomStyle:"dotted"}})}),cC=K(Ws,{name:"MuiInput",slot:"Input",overridesResolver:Ds})({}),Yc=S.forwardRef(function(t,n){var r,o,i,l;const s=Te({props:t,name:"MuiInput"}),{disableUnderline:a,components:u={},componentsProps:f,fullWidth:h=!1,inputComponent:m="input",multiline:x=!1,slotProps:g,slots:v={},type:b="text"}=s,p=V(s,sC),c=aC(s),y={root:{ownerState:{disableUnderline:a}}},k=g??f?xt(g??f,y):y,E=(r=(o=v.root)!=null?o:u.Root)!=null?r:uC,C=(i=(l=v.input)!=null?l:u.Input)!=null?i:cC;return _.jsx(qc,w({slots:{root:E,input:C},slotProps:k,fullWidth:h,inputComponent:m,multiline:x,ref:n,type:b},p,{classes:c}))});Yc.muiName="Input";function dC(e){return _e("MuiInputLabel",e)}Ee("MuiInputLabel",["root","focused","disabled","error","required","asterisk","formControl","sizeSmall","shrink","animated","standard","filled","outlined"]);const fC=["disableAnimation","margin","shrink","variant","className"],pC=e=>{const{classes:t,formControl:n,size:r,shrink:o,disableAnimation:i,variant:l,required:s}=e,a={root:["root",n&&"formControl",!i&&"animated",o&&"shrink",r&&r!=="normal"&&`size${Z(r)}`,l],asterisk:[s&&"asterisk"]},u=Me(a,dC,t);return w({},t,u)},mC=K(oC,{shouldForwardProp:e=>qt(e)||e==="classes",name:"MuiInputLabel",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[{[`& .${Uo.asterisk}`]:t.asterisk},t.root,n.formControl&&t.formControl,n.size==="small"&&t.sizeSmall,n.shrink&&t.shrink,!n.disableAnimation&&t.animated,n.focused&&t.focused,t[n.variant]]}})(({theme:e,ownerState:t})=>w({display:"block",transformOrigin:"top left",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",maxWidth:"100%"},t.formControl&&{position:"absolute",left:0,top:0,transform:"translate(0, 20px) scale(1)"},t.size==="small"&&{transform:"translate(0, 17px) scale(1)"},t.shrink&&{transform:"translate(0, -1.5px) scale(0.75)",transformOrigin:"top left",maxWidth:"133%"},!t.disableAnimation&&{transition:e.transitions.create(["color","transform","max-width"],{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut})},t.variant==="filled"&&w({zIndex:1,pointerEvents:"none",transform:"translate(12px, 16px) scale(1)",maxWidth:"calc(100% - 24px)"},t.size==="small"&&{transform:"translate(12px, 13px) scale(1)"},t.shrink&&w({userSelect:"none",pointerEvents:"auto",transform:"translate(12px, 7px) scale(0.75)",maxWidth:"calc(133% - 24px)"},t.size==="small"&&{transform:"translate(12px, 4px) scale(0.75)"})),t.variant==="outlined"&&w({zIndex:1,pointerEvents:"none",transform:"translate(14px, 16px) scale(1)",maxWidth:"calc(100% - 24px)"},t.size==="small"&&{transform:"translate(14px, 9px) scale(1)"},t.shrink&&{userSelect:"none",pointerEvents:"auto",maxWidth:"calc(133% - 32px)",transform:"translate(14px, -9px) scale(0.75)"}))),hC=S.forwardRef(function(t,n){const r=Te({name:"MuiInputLabel",props:t}),{disableAnimation:o=!1,shrink:i,className:l}=r,s=V(r,fC),a=uo();let u=i;typeof u>"u"&&a&&(u=a.filled||a.focused||a.adornedStart);const f=ao({props:r,muiFormControl:a,states:["size","variant","required","focused"]}),h=w({},r,{disableAnimation:o,formControl:a,shrink:u,size:f.size,variant:f.variant,required:f.required,focused:f.focused}),m=pC(h);return _.jsx(mC,w({"data-shrink":u,ownerState:h,ref:n,className:Y(m.root,l)},s,{classes:m}))}),gC=S.createContext({});function vC(e){return _e("MuiList",e)}Ee("MuiList",["root","padding","dense","subheader"]);const yC=["children","className","component","dense","disablePadding","subheader"],xC=e=>{const{classes:t,disablePadding:n,dense:r,subheader:o}=e;return Me({root:["root",!n&&"padding",r&&"dense",o&&"subheader"]},vC,t)},SC=K("ul",{name:"MuiList",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,!n.disablePadding&&t.padding,n.dense&&t.dense,n.subheader&&t.subheader]}})(({ownerState:e})=>w({listStyle:"none",margin:0,padding:0,position:"relative"},!e.disablePadding&&{paddingTop:8,paddingBottom:8},e.subheader&&{paddingTop:0})),wC=S.forwardRef(function(t,n){const r=Te({props:t,name:"MuiList"}),{children:o,className:i,component:l="ul",dense:s=!1,disablePadding:a=!1,subheader:u}=r,f=V(r,yC),h=S.useMemo(()=>({dense:s}),[s]),m=w({},r,{component:l,dense:s,disablePadding:a}),x=xC(m);return _.jsx(gC.Provider,{value:h,children:_.jsxs(SC,w({as:l,className:Y(x.root,i),ref:n,ownerState:m},f,{children:[u,o]}))})}),kC=["actions","autoFocus","autoFocusItem","children","className","disabledItemsFocusable","disableListWrap","onKeyDown","variant"];function Ca(e,t,n){return e===t?e.firstChild:t&&t.nextElementSibling?t.nextElementSibling:n?null:e.firstChild}function Jf(e,t,n){return e===t?n?e.firstChild:e.lastChild:t&&t.previousElementSibling?t.previousElementSibling:n?null:e.lastChild}function b0(e,t){if(t===void 0)return!0;let n=e.innerText;return n===void 0&&(n=e.textContent),n=n.trim().toLowerCase(),n.length===0?!1:t.repeating?n[0]===t.keys[0]:n.indexOf(t.keys.join(""))===0}function Eo(e,t,n,r,o,i){let l=!1,s=o(e,t,t?n:!1);for(;s;){if(s===e.firstChild){if(l)return!1;l=!0}const a=r?!1:s.disabled||s.getAttribute("aria-disabled")==="true";if(!s.hasAttribute("tabindex")||!b0(s,i)||a)s=o(e,s,n);else return s.focus(),!0}return!1}const CC=S.forwardRef(function(t,n){const{actions:r,autoFocus:o=!1,autoFocusItem:i=!1,children:l,className:s,disabledItemsFocusable:a=!1,disableListWrap:u=!1,onKeyDown:f,variant:h="selectedMenu"}=t,m=V(t,kC),x=S.useRef(null),g=S.useRef({keys:[],repeating:!0,previousKeyMatched:!0,lastTime:null});dr(()=>{o&&x.current.focus()},[o]),S.useImperativeHandle(r,()=>({adjustStyleForScrollbar:(d,{direction:y})=>{const k=!x.current.style.width;if(d.clientHeight{const y=x.current,k=d.key,E=St(y).activeElement;if(k==="ArrowDown")d.preventDefault(),Eo(y,E,u,a,Ca);else if(k==="ArrowUp")d.preventDefault(),Eo(y,E,u,a,Jf);else if(k==="Home")d.preventDefault(),Eo(y,null,u,a,Ca);else if(k==="End")d.preventDefault(),Eo(y,null,u,a,Jf);else if(k.length===1){const C=g.current,R=k.toLowerCase(),O=performance.now();C.keys.length>0&&(O-C.lastTime>500?(C.keys=[],C.repeating=!0,C.previousKeyMatched=!0):C.repeating&&R!==C.keys[0]&&(C.repeating=!1)),C.lastTime=O,C.keys.push(R);const T=E&&!C.repeating&&b0(E,C);C.previousKeyMatched&&(T||Eo(y,E,!1,a,Ca,C))?d.preventDefault():C.previousKeyMatched=!1}f&&f(d)},b=ft(x,n);let p=-1;S.Children.forEach(l,(d,y)=>{if(!S.isValidElement(d)){p===y&&(p+=1,p>=l.length&&(p=-1));return}d.props.disabled||(h==="selectedMenu"&&d.props.selected||p===-1)&&(p=y),p===y&&(d.props.disabled||d.props.muiSkipListHighlight||d.type.muiSkipListHighlight)&&(p+=1,p>=l.length&&(p=-1))});const c=S.Children.map(l,(d,y)=>{if(y===p){const k={};return i&&(k.autoFocus=!0),d.props.tabIndex===void 0&&h==="selectedMenu"&&(k.tabIndex=0),S.cloneElement(d,k)}return d});return _.jsx(wC,w({role:"menu",ref:b,className:s,onKeyDown:v,tabIndex:o?0:-1},m,{children:c}))});function EC(e){return _e("MuiPopover",e)}Ee("MuiPopover",["root","paper"]);const bC=["onEntering"],PC=["action","anchorEl","anchorOrigin","anchorPosition","anchorReference","children","className","container","elevation","marginThreshold","open","PaperProps","slots","slotProps","transformOrigin","TransitionComponent","transitionDuration","TransitionProps","disableScrollLock"],RC=["slotProps"];function ep(e,t){let n=0;return typeof t=="number"?n=t:t==="center"?n=e.height/2:t==="bottom"&&(n=e.height),n}function tp(e,t){let n=0;return typeof t=="number"?n=t:t==="center"?n=e.width/2:t==="right"&&(n=e.width),n}function np(e){return[e.horizontal,e.vertical].map(t=>typeof t=="number"?`${t}px`:t).join(" ")}function Ea(e){return typeof e=="function"?e():e}const _C=e=>{const{classes:t}=e;return Me({root:["root"],paper:["paper"]},EC,t)},TC=K(Ak,{name:"MuiPopover",slot:"Root",overridesResolver:(e,t)=>t.root})({}),P0=K(Tw,{name:"MuiPopover",slot:"Paper",overridesResolver:(e,t)=>t.paper})({position:"absolute",overflowY:"auto",overflowX:"hidden",minWidth:16,minHeight:16,maxWidth:"calc(100% - 32px)",maxHeight:"calc(100% - 32px)",outline:0}),$C=S.forwardRef(function(t,n){var r,o,i;const l=Te({props:t,name:"MuiPopover"}),{action:s,anchorEl:a,anchorOrigin:u={vertical:"top",horizontal:"left"},anchorPosition:f,anchorReference:h="anchorEl",children:m,className:x,container:g,elevation:v=8,marginThreshold:b=16,open:p,PaperProps:c={},slots:d,slotProps:y,transformOrigin:k={vertical:"top",horizontal:"left"},TransitionComponent:E=E0,transitionDuration:C="auto",TransitionProps:{onEntering:R}={},disableScrollLock:O=!1}=l,T=V(l.TransitionProps,bC),j=V(l,PC),D=(r=y==null?void 0:y.paper)!=null?r:c,F=S.useRef(),I=ft(F,D.ref),N=w({},l,{anchorOrigin:u,anchorReference:h,elevation:v,marginThreshold:b,externalPaperSlotProps:D,transformOrigin:k,TransitionComponent:E,transitionDuration:C,TransitionProps:T}),z=_C(N),B=S.useCallback(()=>{if(h==="anchorPosition")return f;const X=Ea(a),he=(X&&X.nodeType===1?X:St(F.current).body).getBoundingClientRect();return{top:he.top+ep(he,u.vertical),left:he.left+tp(he,u.horizontal)}},[a,u.horizontal,u.vertical,f,h]),P=S.useCallback(X=>({vertical:ep(X,k.vertical),horizontal:tp(X,k.horizontal)}),[k.horizontal,k.vertical]),M=S.useCallback(X=>{const ae={width:X.offsetWidth,height:X.offsetHeight},he=P(ae);if(h==="none")return{top:null,left:null,transformOrigin:np(he)};const wn=B();let bt=wn.top-he.vertical,Pt=wn.left-he.horizontal;const Dt=bt+ae.height,Rt=Pt+ae.width,Se=fr(Ea(a)),sn=Se.innerHeight-b,it=Se.innerWidth-b;if(b!==null&&btsn){const ge=Dt-sn;bt-=ge,he.vertical+=ge}if(b!==null&&Ptit){const ge=Rt-it;Pt-=ge,he.horizontal+=ge}return{top:`${Math.round(bt)}px`,left:`${Math.round(Pt)}px`,transformOrigin:np(he)}},[a,h,B,P,b]),[A,q]=S.useState(p),G=S.useCallback(()=>{const X=F.current;if(!X)return;const ae=M(X);ae.top!==null&&(X.style.top=ae.top),ae.left!==null&&(X.style.left=ae.left),X.style.transformOrigin=ae.transformOrigin,q(!0)},[M]);S.useEffect(()=>(O&&window.addEventListener("scroll",G),()=>window.removeEventListener("scroll",G)),[a,O,G]);const ue=(X,ae)=>{R&&R(X,ae),G()},H=()=>{q(!1)};S.useEffect(()=>{p&&G()}),S.useImperativeHandle(s,()=>p?{updatePosition:()=>{G()}}:null,[p,G]),S.useEffect(()=>{if(!p)return;const X=g0(()=>{G()}),ae=fr(a);return ae.addEventListener("resize",X),()=>{X.clear(),ae.removeEventListener("resize",X)}},[a,p,G]);let se=C;C==="auto"&&!E.muiSupportAuto&&(se=void 0);const ee=g||(a?St(Ea(a)).body:void 0),Fe=(o=d==null?void 0:d.root)!=null?o:TC,Je=(i=d==null?void 0:d.paper)!=null?i:P0,$e=eo({elementType:Je,externalSlotProps:w({},D,{style:A?D.style:w({},D.style,{opacity:0})}),additionalProps:{elevation:v,ref:I},ownerState:N,className:Y(z.paper,D==null?void 0:D.className)}),ot=eo({elementType:Fe,externalSlotProps:(y==null?void 0:y.root)||{},externalForwardedProps:j,additionalProps:{ref:n,slotProps:{backdrop:{invisible:!0}},container:ee,open:p},ownerState:N,className:Y(z.root,x)}),{slotProps:re}=ot,xe=V(ot,RC);return _.jsx(Fe,w({},xe,!jl(Fe)&&{slotProps:re,disableScrollLock:O},{children:_.jsx(E,w({appear:!0,in:p,onEntering:ue,onExited:H,timeout:se},T,{children:_.jsx(Je,w({},$e,{children:m}))}))}))});function OC(e){return _e("MuiMenu",e)}Ee("MuiMenu",["root","paper","list"]);const MC=["onEntering"],IC=["autoFocus","children","className","disableAutoFocusItem","MenuListProps","onClose","open","PaperProps","PopoverClasses","transitionDuration","TransitionProps","variant","slots","slotProps"],NC={vertical:"top",horizontal:"right"},zC={vertical:"top",horizontal:"left"},LC=e=>{const{classes:t}=e;return Me({root:["root"],paper:["paper"],list:["list"]},OC,t)},FC=K($C,{shouldForwardProp:e=>qt(e)||e==="classes",name:"MuiMenu",slot:"Root",overridesResolver:(e,t)=>t.root})({}),AC=K(P0,{name:"MuiMenu",slot:"Paper",overridesResolver:(e,t)=>t.paper})({maxHeight:"calc(100% - 96px)",WebkitOverflowScrolling:"touch"}),jC=K(CC,{name:"MuiMenu",slot:"List",overridesResolver:(e,t)=>t.list})({outline:0}),DC=S.forwardRef(function(t,n){var r,o;const i=Te({props:t,name:"MuiMenu"}),{autoFocus:l=!0,children:s,className:a,disableAutoFocusItem:u=!1,MenuListProps:f={},onClose:h,open:m,PaperProps:x={},PopoverClasses:g,transitionDuration:v="auto",TransitionProps:{onEntering:b}={},variant:p="selectedMenu",slots:c={},slotProps:d={}}=i,y=V(i.TransitionProps,MC),k=V(i,IC),E=qS(),C=w({},i,{autoFocus:l,disableAutoFocusItem:u,MenuListProps:f,onEntering:b,PaperProps:x,transitionDuration:v,TransitionProps:y,variant:p}),R=LC(C),O=l&&!u&&m,T=S.useRef(null),j=(P,M)=>{T.current&&T.current.adjustStyleForScrollbar(P,{direction:E?"rtl":"ltr"}),b&&b(P,M)},D=P=>{P.key==="Tab"&&(P.preventDefault(),h&&h(P,"tabKeyDown"))};let F=-1;S.Children.map(s,(P,M)=>{S.isValidElement(P)&&(P.props.disabled||(p==="selectedMenu"&&P.props.selected||F===-1)&&(F=M))});const I=(r=c.paper)!=null?r:AC,N=(o=d.paper)!=null?o:x,z=eo({elementType:c.root,externalSlotProps:d.root,ownerState:C,className:[R.root,a]}),B=eo({elementType:I,externalSlotProps:N,ownerState:C,className:R.paper});return _.jsx(FC,w({onClose:h,anchorOrigin:{vertical:"bottom",horizontal:E?"right":"left"},transformOrigin:E?NC:zC,slots:{paper:I,root:c.root},slotProps:{root:z,paper:B},open:m,ref:n,transitionDuration:v,TransitionProps:w({onEntering:j},y),ownerState:C},k,{classes:g,children:_.jsx(jC,w({onKeyDown:D,actions:T,autoFocus:l&&(F===-1||u),autoFocusItem:O,variant:p},f,{className:Y(R.list,f.className),children:s}))}))});function BC(e){return _e("MuiNativeSelect",e)}const Zc=Ee("MuiNativeSelect",["root","select","multiple","filled","outlined","standard","disabled","icon","iconOpen","iconFilled","iconOutlined","iconStandard","nativeInput","error"]),WC=["className","disabled","error","IconComponent","inputRef","variant"],UC=e=>{const{classes:t,variant:n,disabled:r,multiple:o,open:i,error:l}=e,s={select:["select",n,r&&"disabled",o&&"multiple",l&&"error"],icon:["icon",`icon${Z(n)}`,i&&"iconOpen",r&&"disabled"]};return Me(s,BC,t)},R0=({ownerState:e,theme:t})=>w({MozAppearance:"none",WebkitAppearance:"none",userSelect:"none",borderRadius:0,cursor:"pointer","&:focus":w({},t.vars?{backgroundColor:`rgba(${t.vars.palette.common.onBackgroundChannel} / 0.05)`}:{backgroundColor:t.palette.mode==="light"?"rgba(0, 0, 0, 0.05)":"rgba(255, 255, 255, 0.05)"},{borderRadius:0}),"&::-ms-expand":{display:"none"},[`&.${Zc.disabled}`]:{cursor:"default"},"&[multiple]":{height:"auto"},"&:not([multiple]) option, &:not([multiple]) optgroup":{backgroundColor:(t.vars||t).palette.background.paper},"&&&":{paddingRight:24,minWidth:16}},e.variant==="filled"&&{"&&&":{paddingRight:32}},e.variant==="outlined"&&{borderRadius:(t.vars||t).shape.borderRadius,"&:focus":{borderRadius:(t.vars||t).shape.borderRadius},"&&&":{paddingRight:32}}),HC=K("select",{name:"MuiNativeSelect",slot:"Select",shouldForwardProp:qt,overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.select,t[n.variant],n.error&&t.error,{[`&.${Zc.multiple}`]:t.multiple}]}})(R0),_0=({ownerState:e,theme:t})=>w({position:"absolute",right:0,top:"calc(50% - .5em)",pointerEvents:"none",color:(t.vars||t).palette.action.active,[`&.${Zc.disabled}`]:{color:(t.vars||t).palette.action.disabled}},e.open&&{transform:"rotate(180deg)"},e.variant==="filled"&&{right:7},e.variant==="outlined"&&{right:7}),VC=K("svg",{name:"MuiNativeSelect",slot:"Icon",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.icon,n.variant&&t[`icon${Z(n.variant)}`],n.open&&t.iconOpen]}})(_0),KC=S.forwardRef(function(t,n){const{className:r,disabled:o,error:i,IconComponent:l,inputRef:s,variant:a="standard"}=t,u=V(t,WC),f=w({},t,{disabled:o,variant:a,error:i}),h=UC(f);return _.jsxs(S.Fragment,{children:[_.jsx(HC,w({ownerState:f,className:Y(h.select,r),disabled:o,ref:s||n},u)),t.multiple?null:_.jsx(VC,{as:l,ownerState:f,className:h.icon})]})});var rp;const GC=["children","classes","className","label","notched"],QC=K("fieldset",{shouldForwardProp:qt})({textAlign:"left",position:"absolute",bottom:0,right:0,top:-5,left:0,margin:0,padding:"0 8px",pointerEvents:"none",borderRadius:"inherit",borderStyle:"solid",borderWidth:1,overflow:"hidden",minWidth:"0%"}),qC=K("legend",{shouldForwardProp:qt})(({ownerState:e,theme:t})=>w({float:"unset",width:"auto",overflow:"hidden"},!e.withLabel&&{padding:0,lineHeight:"11px",transition:t.transitions.create("width",{duration:150,easing:t.transitions.easing.easeOut})},e.withLabel&&w({display:"block",padding:0,height:11,fontSize:"0.75em",visibility:"hidden",maxWidth:.01,transition:t.transitions.create("max-width",{duration:50,easing:t.transitions.easing.easeOut}),whiteSpace:"nowrap","& > span":{paddingLeft:5,paddingRight:5,display:"inline-block",opacity:0,visibility:"visible"}},e.notched&&{maxWidth:"100%",transition:t.transitions.create("max-width",{duration:100,easing:t.transitions.easing.easeOut,delay:50})})));function XC(e){const{className:t,label:n,notched:r}=e,o=V(e,GC),i=n!=null&&n!=="",l=w({},e,{notched:r,withLabel:i});return _.jsx(QC,w({"aria-hidden":!0,className:t,ownerState:l},o,{children:_.jsx(qC,{ownerState:l,children:i?_.jsx("span",{children:n}):rp||(rp=_.jsx("span",{className:"notranslate",children:"​"}))})}))}const YC=["components","fullWidth","inputComponent","label","multiline","notched","slots","type"],ZC=e=>{const{classes:t}=e,r=Me({root:["root"],notchedOutline:["notchedOutline"],input:["input"]},gk,t);return w({},t,r)},JC=K(Bs,{shouldForwardProp:e=>qt(e)||e==="classes",name:"MuiOutlinedInput",slot:"Root",overridesResolver:js})(({theme:e,ownerState:t})=>{const n=e.palette.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return w({position:"relative",borderRadius:(e.vars||e).shape.borderRadius,[`&:hover .${En.notchedOutline}`]:{borderColor:(e.vars||e).palette.text.primary},"@media (hover: none)":{[`&:hover .${En.notchedOutline}`]:{borderColor:e.vars?`rgba(${e.vars.palette.common.onBackgroundChannel} / 0.23)`:n}},[`&.${En.focused} .${En.notchedOutline}`]:{borderColor:(e.vars||e).palette[t.color].main,borderWidth:2},[`&.${En.error} .${En.notchedOutline}`]:{borderColor:(e.vars||e).palette.error.main},[`&.${En.disabled} .${En.notchedOutline}`]:{borderColor:(e.vars||e).palette.action.disabled}},t.startAdornment&&{paddingLeft:14},t.endAdornment&&{paddingRight:14},t.multiline&&w({padding:"16.5px 14px"},t.size==="small"&&{padding:"8.5px 14px"}))}),e2=K(XC,{name:"MuiOutlinedInput",slot:"NotchedOutline",overridesResolver:(e,t)=>t.notchedOutline})(({theme:e})=>{const t=e.palette.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return{borderColor:e.vars?`rgba(${e.vars.palette.common.onBackgroundChannel} / 0.23)`:t}}),t2=K(Ws,{name:"MuiOutlinedInput",slot:"Input",overridesResolver:Ds})(({theme:e,ownerState:t})=>w({padding:"16.5px 14px"},!e.vars&&{"&:-webkit-autofill":{WebkitBoxShadow:e.palette.mode==="light"?null:"0 0 0 100px #266798 inset",WebkitTextFillColor:e.palette.mode==="light"?null:"#fff",caretColor:e.palette.mode==="light"?null:"#fff",borderRadius:"inherit"}},e.vars&&{"&:-webkit-autofill":{borderRadius:"inherit"},[e.getColorSchemeSelector("dark")]:{"&:-webkit-autofill":{WebkitBoxShadow:"0 0 0 100px #266798 inset",WebkitTextFillColor:"#fff",caretColor:"#fff"}}},t.size==="small"&&{padding:"8.5px 14px"},t.multiline&&{padding:0},t.startAdornment&&{paddingLeft:0},t.endAdornment&&{paddingRight:0})),Jc=S.forwardRef(function(t,n){var r,o,i,l,s;const a=Te({props:t,name:"MuiOutlinedInput"}),{components:u={},fullWidth:f=!1,inputComponent:h="input",label:m,multiline:x=!1,notched:g,slots:v={},type:b="text"}=a,p=V(a,YC),c=ZC(a),d=uo(),y=ao({props:a,muiFormControl:d,states:["color","disabled","error","focused","hiddenLabel","size","required"]}),k=w({},a,{color:y.color||"primary",disabled:y.disabled,error:y.error,focused:y.focused,formControl:d,fullWidth:f,hiddenLabel:y.hiddenLabel,multiline:x,size:y.size,type:b}),E=(r=(o=v.root)!=null?o:u.Root)!=null?r:JC,C=(i=(l=v.input)!=null?l:u.Input)!=null?i:t2;return _.jsx(qc,w({slots:{root:E,input:C},renderSuffix:R=>_.jsx(e2,{ownerState:k,className:c.notchedOutline,label:m!=null&&m!==""&&y.required?s||(s=_.jsxs(S.Fragment,{children:[m," ","*"]})):m,notched:typeof g<"u"?g:!!(R.startAdornment||R.filled||R.focused)}),fullWidth:f,inputComponent:h,multiline:x,ref:n,type:b},p,{classes:w({},c,{notchedOutline:null})}))});Jc.muiName="Input";function n2(e){return _e("MuiSelect",e)}const bo=Ee("MuiSelect",["root","select","multiple","filled","outlined","standard","disabled","focused","icon","iconOpen","iconFilled","iconOutlined","iconStandard","nativeInput","error"]);var op;const r2=["aria-describedby","aria-label","autoFocus","autoWidth","children","className","defaultOpen","defaultValue","disabled","displayEmpty","error","IconComponent","inputRef","labelId","MenuProps","multiple","name","onBlur","onChange","onClose","onFocus","onOpen","open","readOnly","renderValue","SelectDisplayProps","tabIndex","type","value","variant"],o2=K("div",{name:"MuiSelect",slot:"Select",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[{[`&.${bo.select}`]:t.select},{[`&.${bo.select}`]:t[n.variant]},{[`&.${bo.error}`]:t.error},{[`&.${bo.multiple}`]:t.multiple}]}})(R0,{[`&.${bo.select}`]:{height:"auto",minHeight:"1.4375em",textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden"}}),i2=K("svg",{name:"MuiSelect",slot:"Icon",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.icon,n.variant&&t[`icon${Z(n.variant)}`],n.open&&t.iconOpen]}})(_0),l2=K("input",{shouldForwardProp:e=>p0(e)&&e!=="classes",name:"MuiSelect",slot:"NativeInput",overridesResolver:(e,t)=>t.nativeInput})({bottom:0,left:0,position:"absolute",opacity:0,pointerEvents:"none",width:"100%",boxSizing:"border-box"});function ip(e,t){return typeof t=="object"&&t!==null?e===t:String(e)===String(t)}function s2(e){return e==null||typeof e=="string"&&!e.trim()}const a2=e=>{const{classes:t,variant:n,disabled:r,multiple:o,open:i,error:l}=e,s={select:["select",n,r&&"disabled",o&&"multiple",l&&"error"],icon:["icon",`icon${Z(n)}`,i&&"iconOpen",r&&"disabled"],nativeInput:["nativeInput"]};return Me(s,n2,t)},u2=S.forwardRef(function(t,n){var r;const{"aria-describedby":o,"aria-label":i,autoFocus:l,autoWidth:s,children:a,className:u,defaultOpen:f,defaultValue:h,disabled:m,displayEmpty:x,error:g=!1,IconComponent:v,inputRef:b,labelId:p,MenuProps:c={},multiple:d,name:y,onBlur:k,onChange:E,onClose:C,onFocus:R,onOpen:O,open:T,readOnly:j,renderValue:D,SelectDisplayProps:F={},tabIndex:I,value:N,variant:z="standard"}=t,B=V(t,r2),[P,M]=Df({controlled:N,default:h,name:"Select"}),[A,q]=Df({controlled:T,default:f,name:"Select"}),G=S.useRef(null),ue=S.useRef(null),[H,se]=S.useState(null),{current:ee}=S.useRef(T!=null),[Fe,Je]=S.useState(),$e=ft(n,b),ot=S.useCallback(W=>{ue.current=W,W&&se(W)},[]),re=H==null?void 0:H.parentNode;S.useImperativeHandle($e,()=>({focus:()=>{ue.current.focus()},node:G.current,value:P}),[P]),S.useEffect(()=>{f&&A&&H&&!ee&&(Je(s?null:re.clientWidth),ue.current.focus())},[H,s]),S.useEffect(()=>{l&&ue.current.focus()},[l]),S.useEffect(()=>{if(!p)return;const W=St(ue.current).getElementById(p);if(W){const fe=()=>{getSelection().isCollapsed&&ue.current.focus()};return W.addEventListener("click",fe),()=>{W.removeEventListener("click",fe)}}},[p]);const xe=(W,fe)=>{W?O&&O(fe):C&&C(fe),ee||(Je(s?null:re.clientWidth),q(W))},X=W=>{W.button===0&&(W.preventDefault(),ue.current.focus(),xe(!0,W))},ae=W=>{xe(!1,W)},he=S.Children.toArray(a),wn=W=>{const fe=he.find(Ue=>Ue.props.value===W.target.value);fe!==void 0&&(M(fe.props.value),E&&E(W,fe))},bt=W=>fe=>{let Ue;if(fe.currentTarget.hasAttribute("tabindex")){if(d){Ue=Array.isArray(P)?P.slice():[];const hr=P.indexOf(W.props.value);hr===-1?Ue.push(W.props.value):Ue.splice(hr,1)}else Ue=W.props.value;if(W.props.onClick&&W.props.onClick(fe),P!==Ue&&(M(Ue),E)){const hr=fe.nativeEvent||fe,td=new hr.constructor(hr.type,hr);Object.defineProperty(td,"target",{writable:!0,value:{value:Ue,name:y}}),E(td,W)}d||xe(!1,fe)}},Pt=W=>{j||[" ","ArrowUp","ArrowDown","Enter"].indexOf(W.key)!==-1&&(W.preventDefault(),xe(!0,W))},Dt=H!==null&&A,Rt=W=>{!Dt&&k&&(Object.defineProperty(W,"target",{writable:!0,value:{value:P,name:y}}),k(W))};delete B["aria-invalid"];let Se,sn;const it=[];let ge=!1;(Dl({value:P})||x)&&(D?Se=D(P):ge=!0);const Xt=he.map(W=>{if(!S.isValidElement(W))return null;let fe;if(d){if(!Array.isArray(P))throw new Error(cr(2));fe=P.some(Ue=>ip(Ue,W.props.value)),fe&&ge&&it.push(W.props.children)}else fe=ip(P,W.props.value),fe&&ge&&(sn=W.props.children);return S.cloneElement(W,{"aria-selected":fe?"true":"false",onClick:bt(W),onKeyUp:Ue=>{Ue.key===" "&&Ue.preventDefault(),W.props.onKeyUp&&W.props.onKeyUp(Ue)},role:"option",selected:fe,value:void 0,"data-value":W.props.value})});ge&&(d?it.length===0?Se=null:Se=it.reduce((W,fe,Ue)=>(W.push(fe),Ue{const{classes:t}=e;return t},ed={name:"MuiSelect",overridesResolver:(e,t)=>t.root,shouldForwardProp:e=>qt(e)&&e!=="variant",slot:"Root"},p2=K(Yc,ed)(""),m2=K(Jc,ed)(""),h2=K(Xc,ed)(""),T0=S.forwardRef(function(t,n){const r=Te({name:"MuiSelect",props:t}),{autoWidth:o=!1,children:i,classes:l={},className:s,defaultOpen:a=!1,displayEmpty:u=!1,IconComponent:f=yk,id:h,input:m,inputProps:x,label:g,labelId:v,MenuProps:b,multiple:p=!1,native:c=!1,onClose:d,onOpen:y,open:k,renderValue:E,SelectDisplayProps:C,variant:R="outlined"}=r,O=V(r,c2),T=c?KC:u2,j=uo(),D=ao({props:r,muiFormControl:j,states:["variant","error"]}),F=D.variant||R,I=w({},r,{variant:F,classes:l}),N=f2(I),z=V(N,d2),B=m||{standard:_.jsx(p2,{ownerState:I}),outlined:_.jsx(m2,{label:g,ownerState:I}),filled:_.jsx(h2,{ownerState:I})}[F],P=ft(n,B.ref);return _.jsx(S.Fragment,{children:S.cloneElement(B,w({inputComponent:T,inputProps:w({children:i,error:D.error,IconComponent:f,variant:F,type:void 0,multiple:p},c?{id:h}:{autoWidth:o,defaultOpen:a,displayEmpty:u,labelId:v,MenuProps:b,onClose:d,onOpen:y,open:k,renderValue:E,SelectDisplayProps:w({id:h},C)},x,{classes:x?xt(z,x.classes):z},m?m.props.inputProps:{})},(p&&c||u)&&F==="outlined"?{notched:!0}:{},{ref:P,className:Y(B.props.className,s,N.root)},!m&&{variant:F},O))})});T0.muiName="Select";function g2(e){return _e("MuiTextField",e)}Ee("MuiTextField",["root"]);const v2=["autoComplete","autoFocus","children","className","color","defaultValue","disabled","error","FormHelperTextProps","fullWidth","helperText","id","InputLabelProps","inputProps","InputProps","inputRef","label","maxRows","minRows","multiline","name","onBlur","onChange","onFocus","placeholder","required","rows","select","SelectProps","type","value","variant"],y2={standard:Yc,filled:Xc,outlined:Jc},x2=e=>{const{classes:t}=e;return Me({root:["root"]},g2,t)},S2=K(Gk,{name:"MuiTextField",slot:"Root",overridesResolver:(e,t)=>t.root})({}),lp=S.forwardRef(function(t,n){const r=Te({props:t,name:"MuiTextField"}),{autoComplete:o,autoFocus:i=!1,children:l,className:s,color:a="primary",defaultValue:u,disabled:f=!1,error:h=!1,FormHelperTextProps:m,fullWidth:x=!1,helperText:g,id:v,InputLabelProps:b,inputProps:p,InputProps:c,inputRef:d,label:y,maxRows:k,minRows:E,multiline:C=!1,name:R,onBlur:O,onChange:T,onFocus:j,placeholder:D,required:F=!1,rows:I,select:N=!1,SelectProps:z,type:B,value:P,variant:M="outlined"}=r,A=V(r,v2),q=w({},r,{autoFocus:i,color:a,disabled:f,error:h,fullWidth:x,multiline:C,required:F,select:N,variant:M}),G=x2(q),ue={};M==="outlined"&&(b&&typeof b.shrink<"u"&&(ue.notched=b.shrink),ue.label=y),N&&((!z||!z.native)&&(ue.id=void 0),ue["aria-describedby"]=void 0);const H=v0(v),se=g&&H?`${H}-helper-text`:void 0,ee=y&&H?`${H}-label`:void 0,Fe=y2[M],Je=_.jsx(Fe,w({"aria-describedby":se,autoComplete:o,autoFocus:i,defaultValue:u,fullWidth:x,multiline:C,name:R,rows:I,maxRows:k,minRows:E,type:B,value:P,id:H,inputRef:d,onBlur:O,onChange:T,onFocus:j,placeholder:D,inputProps:p},ue,c));return _.jsxs(S2,w({className:Y(G.root,s),disabled:f,error:h,fullWidth:x,ref:n,required:F,color:a,variant:M,ownerState:q},A,{children:[y!=null&&y!==""&&_.jsx(hC,w({htmlFor:H,id:ee},b,{children:y})),N?_.jsx(T0,w({"aria-describedby":se,id:H,labelId:ee,value:P,input:Je},z,{children:l})):Je,g&&_.jsx(Zk,w({id:se},m,{children:g}))]}))});let mt,Ou=0,Oo=null;function al(){return(Oo===null||Oo.byteLength===0)&&(Oo=new Uint8Array(mt.memory.buffer)),Oo}const ul=typeof TextEncoder<"u"?new TextEncoder("utf-8"):{encode:()=>{throw Error("TextEncoder not available")}},w2=typeof ul.encodeInto=="function"?function(e,t){return ul.encodeInto(e,t)}:function(e,t){const n=ul.encode(e);return t.set(n),{read:e.length,written:n.length}};function k2(e,t,n){if(n===void 0){const s=ul.encode(e),a=t(s.length,1)>>>0;return al().subarray(a,a+s.length).set(s),Ou=s.length,a}let r=e.length,o=t(r,1)>>>0;const i=al();let l=0;for(;l127)break;i[o+l]=s}if(l!==r){l!==0&&(e=e.slice(l)),o=n(o,r,r=l+e.length*3,1)>>>0;const s=al().subarray(o+l,o+r),a=w2(e,s);l+=a.written,o=n(o,r,l,1)>>>0}return Ou=l,o}let Zn=null;function sp(){return(Zn===null||Zn.buffer.detached===!0||Zn.buffer.detached===void 0&&Zn.buffer!==mt.memory.buffer)&&(Zn=new DataView(mt.memory.buffer)),Zn}const $0=typeof TextDecoder<"u"?new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}):{decode:()=>{throw Error("TextDecoder not available")}};typeof TextDecoder<"u"&&$0.decode();function C2(e,t){return e=e>>>0,$0.decode(al().subarray(e,e+t))}function ap(e){let t,n;try{const i=mt.__wbindgen_add_to_stack_pointer(-16),l=k2(e,mt.__wbindgen_malloc,mt.__wbindgen_realloc),s=Ou;mt.parse_sql(i,l,s);var r=sp().getInt32(i+4*0,!0),o=sp().getInt32(i+4*1,!0);return t=r,n=o,C2(r,o)}finally{mt.__wbindgen_add_to_stack_pointer(16),mt.__wbindgen_free(t,n,1)}}async function E2(e,t){if(typeof Response=="function"&&e instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(e,t)}catch(r){if(e.headers.get("Content-Type")!="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",r);else throw r}const n=await e.arrayBuffer();return await WebAssembly.instantiate(n,t)}else{const n=await WebAssembly.instantiate(e,t);return n instanceof WebAssembly.Instance?{instance:n,module:e}:n}}function b2(){const e={};return e.wbg={},e}function P2(e,t){return mt=e.exports,O0.__wbindgen_wasm_module=t,Zn=null,Oo=null,mt}async function O0(e){if(mt!==void 0)return mt;typeof e<"u"&&Object.getPrototypeOf(e)===Object.prototype?{module_or_path:e}=e:console.warn("using deprecated parameters for the initialization function; pass a single object instead"),typeof e>"u"&&(e=new URL("/postgresql-cst-parser/assets/postgresql_cst_parser_wasm_bg-Ey8V7r8u.wasm",import.meta.url));const t=b2();(typeof e=="string"||typeof Request=="function"&&e instanceof Request||typeof URL=="function"&&e instanceof URL)&&(e=fetch(e));const{instance:n,module:r}=await E2(await e,t);return P2(n,r)}function R2(){const[e,t]=S.useState(`SELECT tbl.a as a from TBL tbl`),[n,r]=S.useState("");return S.useEffect(()=>{(async()=>(await O0(),r(ap(e))))()},[]),_.jsxs(_.Fragment,{children:[_.jsx(Mk,{}),_.jsxs(Gn,{sx:{display:"flex",flexDirection:"column",padding:"16px",height:"100vh"},children:[_.jsx(Gn,{sx:{mb:1},children:_.jsx(Dw,{component:"h1",variant:"h6",sx:{p:1,flexGrow:1},align:"left",children:"PostgreSQL CST Parser"})}),_.jsx(Gn,{sx:{mb:3,display:"flex",flexDirection:"row",alignContent:"flex-start"},children:_.jsx(xw,{variant:"contained",color:"primary",onClick:()=>r(ap(e)),children:"Parse"})}),_.jsxs(Gn,{sx:{display:"flex",flexDirection:"row",justifyContent:"space-between",flexGrow:1},children:[_.jsx(Gn,{sx:{display:"flex",flexDirection:"column",flex:1},children:_.jsx(lp,{multiline:!0,fullWidth:!0,variant:"outlined",label:"SQL",defaultValue:e,onChange:o=>t(o.target.value),sx:{flex:1},InputProps:{style:{flex:1,alignItems:"flex-start"}}})}),_.jsx(Gn,{sx:{width:"16px"}}),_.jsx(Gn,{sx:{display:"flex",flexDirection:"column",flex:1},children:_.jsx(lp,{multiline:!0,fullWidth:!0,variant:"outlined",label:"Parse Result",sx:{flex:1,"& .MuiInputBase-inputMultiline":{height:"100%"}},InputProps:{inputComponent:"textarea",style:{flex:1,alignItems:"flex-start"}},value:n})})]})]})]})}Pa.createRoot(document.getElementById("root")).render(_.jsx(Vt.StrictMode,{children:_.jsx(R2,{})})); diff --git a/docs/assets/postgresql_cst_parser_wasm_bg-DmDZPLZN.wasm b/docs/assets/postgresql_cst_parser_wasm_bg-DmDZPLZN.wasm deleted file mode 100644 index a15024d..0000000 Binary files a/docs/assets/postgresql_cst_parser_wasm_bg-DmDZPLZN.wasm and /dev/null differ diff --git a/docs/assets/postgresql_cst_parser_wasm_bg-Ey8V7r8u.wasm b/docs/assets/postgresql_cst_parser_wasm_bg-Ey8V7r8u.wasm new file mode 100644 index 0000000..c7bce04 Binary files /dev/null and b/docs/assets/postgresql_cst_parser_wasm_bg-Ey8V7r8u.wasm differ diff --git a/docs/index.html b/docs/index.html index 52b25d9..fb4fd2e 100644 --- a/docs/index.html +++ b/docs/index.html @@ -6,7 +6,7 @@ PostgreSQL CST Parser - + diff --git a/patches/patch_scan.patch b/patches/patch_scan.patch new file mode 100644 index 0000000..d775931 --- /dev/null +++ b/patches/patch_scan.patch @@ -0,0 +1,1583 @@ +--- ./tmp/libpg_query/tmp/postgres/src/backend/parser/scan.l 2025-03-17 08:53:57.058425153 +0900 ++++ ./crates/lexer-generator/resources/scan.l 2025-03-17 03:08:27.795419496 +0900 +@@ -296,8 +296,8 @@ + * {dolqfailed} is an error rule to avoid scanner backup when {dolqdelim} + * fails to match its trailing "$". + */ +-dolq_start [A-Za-z\200-\377_] +-dolq_cont [A-Za-z\200-\377_0-9] ++dolq_start [A-Za-z\x80-\xFF_] ++dolq_cont [A-Za-z\x80-\xFF_0-9] + dolqdelim \$({dolq_start}{dolq_cont}*)?\$ + dolqfailed \${dolq_start}{dolq_cont}* + dolqinside [^$]+ +@@ -343,8 +343,8 @@ + xcstop \*+\/ + xcinside [^*/]+ + +-ident_start [A-Za-z\200-\377_] +-ident_cont [A-Za-z\200-\377_0-9\$] ++ident_start [A-Za-z\x80-\xFF_] ++ident_cont [A-Za-z\x80-\xFF_0-9\$] + + identifier {ident_start}{ident_cont}* + +@@ -377,8 +377,8 @@ + * If you change either set, adjust the character lists appearing in the + * rule for "operator"! + */ +-self [,()\[\].;\:\+\-\*\/\%\^\<\>\=] +-op_chars [\~\!\@\#\^\&\|\`\?\+\-\*\/\%\<\>\=] ++self [,()\[\].;\:\+\-\*\/\%\^<>\=] ++op_chars [\~\!\@\#\^\&\|\`\?\+\-\*\/\%<>\=] + operator {op_chars}+ + + /* +@@ -458,35 +458,59 @@ + } + + {comment} { +- SET_YYLLOC(); +- return SQL_COMMENT; ++ // SET_YYLLOC(); ++ // return SQL_COMMENT; ++ ++ self.set_yylloc(); ++ return Ok(Some(TokenKind::SQL_COMMENT)); + } + + {xcstart} { ++ // /* Set location in case of syntax error in comment */ ++ // SET_YYLLOC(); ++ // yyextra->xcdepth = 0; ++ // BEGIN(xc); ++ // /* Put back any characters past slash-star; see above */ ++ // yyless(2); ++ + /* Set location in case of syntax error in comment */ +- SET_YYLLOC(); +- yyextra->xcdepth = 0; +- BEGIN(xc); ++ self.set_yylloc(); ++ self.xcdepth = 0; ++ self.begin(State::xc); + /* Put back any characters past slash-star; see above */ +- yyless(2); ++ self.yyless(2); + } + + { + {xcstart} { +- (yyextra->xcdepth)++; ++ // (yyextra->xcdepth)++; ++ // /* Put back any characters past slash-star; see above */ ++ // yyless(2); ++ ++ self.xcdepth += 1; + /* Put back any characters past slash-star; see above */ +- yyless(2); ++ self.yyless(2); + } + + {xcstop} { +- if (yyextra->xcdepth <= 0) ++ // if (yyextra->xcdepth <= 0) ++ // { ++ // BEGIN(INITIAL); ++ // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ++ // return C_COMMENT; ++ // } ++ // else ++ // (yyextra->xcdepth)--; ++ ++ if self.xcdepth <= 0 + { +- BEGIN(INITIAL); +- yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; +- return C_COMMENT; ++ self.begin(State::INITIAL); ++ self.set_yyllocend(); ++ return Ok(Some(TokenKind::C_COMMENT)); ++ } ++ else { ++ self.xcdepth -= 1; + } +- else +- (yyextra->xcdepth)--; + } + + {xcinside} { +@@ -502,99 +526,174 @@ + } + + <> { +- yyerror("unterminated /* comment"); ++ yyerror!("unterminated /* comment"); + } + } /* */ + + {xbstart} { ++ // /* Binary bit type. ++ // * At some point we should simply pass the string ++ // * forward to the parser and label it there. ++ // * In the meantime, place a leading "b" on the string ++ // * to mark it for the input routine as a binary string. ++ // */ ++ // SET_YYLLOC(); ++ // BEGIN(xb); ++ // startlit(); ++ // addlitchar('b', yyscanner); ++ + /* Binary bit type. + * At some point we should simply pass the string + * forward to the parser and label it there. + * In the meantime, place a leading "b" on the string + * to mark it for the input routine as a binary string. + */ +- SET_YYLLOC(); +- BEGIN(xb); +- startlit(); +- addlitchar('b', yyscanner); ++ self.set_yylloc(); ++ self.begin(State::xb); ++ self.literal.clear(); ++ self.addlitchar('b'); + } + {xhinside} | + {xbinside} { +- addlit(yytext, yyleng, yyscanner); ++ // addlit(yytext, yyleng, yyscanner); ++ ++ self.addlit(self.yyleng); + } +-<> { yyerror("unterminated bit string literal"); } ++<> { yyerror!("unterminated bit string literal"); } + + {xhstart} { ++ // /* Hexadecimal bit type. ++ // * At some point we should simply pass the string ++ // * forward to the parser and label it there. ++ // * In the meantime, place a leading "x" on the string ++ // * to mark it for the input routine as a hex string. ++ // */ ++ // SET_YYLLOC(); ++ // BEGIN(xh); ++ // startlit(); ++ // addlitchar('x', yyscanner); ++ + /* Hexadecimal bit type. + * At some point we should simply pass the string + * forward to the parser and label it there. + * In the meantime, place a leading "x" on the string + * to mark it for the input routine as a hex string. + */ +- SET_YYLLOC(); +- BEGIN(xh); +- startlit(); +- addlitchar('x', yyscanner); ++ self.set_yylloc(); ++ self.begin(State::xh); ++ self.literal.clear(); ++ self.addlitchar('x'); + } +-<> { yyerror("unterminated hexadecimal string literal"); } ++<> { yyerror!("unterminated hexadecimal string literal"); } + + {xnstart} { +- /* National character. +- * We will pass this along as a normal character string, +- * but preceded with an internally-generated "NCHAR". +- */ +- int kwnum; +- +- SET_YYLLOC(); +- yyless(1); /* eat only 'n' this time */ +- +- kwnum = ScanKeywordLookup("nchar", +- yyextra->keywordlist); +- if (kwnum >= 0) +- { +- yylval->keyword = GetScanKeyword(kwnum, +- yyextra->keywordlist); +- return yyextra->keyword_tokens[kwnum]; +- } +- else +- { ++ // /* National character. ++ // * We will pass this along as a normal character string, ++ // * but preceded with an internally-generated "NCHAR". ++ // */ ++ // int kwnum; ++ // ++ // SET_YYLLOC(); ++ // yyless(1); /* eat only 'n' this time */ ++ // ++ // kwnum = ScanKeywordLookup("nchar", ++ // yyextra->keywordlist); ++ // if (kwnum >= 0) ++ // { ++ // yylval->keyword = GetScanKeyword(kwnum, ++ // yyextra->keywordlist); ++ // return yyextra->keyword_tokens[kwnum]; ++ // } ++ // else ++ // { ++ // /* If NCHAR isn't a keyword, just return "n" */ ++ // yylval->str = pstrdup("n"); ++ // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ++ // return IDENT; ++ // } ++ ++ self.set_yylloc(); ++ self.yyless(1); /* eat only 'n' this time */ ++ ++ if let Some((kw, kw_token)) = self.get_keyword("nchar") { ++ self.yylval = Yylval::Keyword(kw); ++ return Ok(Some(TokenKind::KEYWORD(kw_token))); ++ } else { + /* If NCHAR isn't a keyword, just return "n" */ +- yylval->str = pstrdup("n"); +- yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; +- return IDENT; ++ self.yylval = Yylval::Str("n".to_string()); ++ self.set_yyllocend(); ++ return Ok(Some(TokenKind::IDENT)); + } + } + + {xqstart} { +- yyextra->warn_on_first_escape = true; +- yyextra->saw_non_ascii = false; +- SET_YYLLOC(); +- if (yyextra->standard_conforming_strings) +- BEGIN(xq); +- else +- BEGIN(xe); +- startlit(); ++ // yyextra->warn_on_first_escape = true; ++ // yyextra->saw_non_ascii = false; ++ // SET_YYLLOC(); ++ // if (yyextra->standard_conforming_strings) ++ // BEGIN(xq); ++ // else ++ // BEGIN(xe); ++ // startlit(); ++ ++ self.warn_on_first_escape = true; ++ self.saw_non_ascii = false; ++ self.set_yylloc(); ++ if STANDARD_CONFORMING_STRINGS { ++ self.begin(State::xq); ++ } else { ++ self.begin(State::xe); ++ } ++ self.literal.clear(); + } + {xestart} { +- yyextra->warn_on_first_escape = false; +- yyextra->saw_non_ascii = false; +- SET_YYLLOC(); +- BEGIN(xe); +- startlit(); ++ // yyextra->warn_on_first_escape = false; ++ // yyextra->saw_non_ascii = false; ++ // SET_YYLLOC(); ++ // BEGIN(xe); ++ // startlit(); ++ ++ self.warn_on_first_escape = false; ++ self.saw_non_ascii = false; ++ self.set_yylloc(); ++ self.begin(State::xe); ++ self.literal.clear(); + } + {xusstart} { +- SET_YYLLOC(); +- if (!yyextra->standard_conforming_strings) +- ereport(ERROR, ++ // SET_YYLLOC(); ++ // if (!yyextra->standard_conforming_strings) ++ // ereport(ERROR, ++ // (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), ++ // errmsg("unsafe use of string constant with Unicode escapes"), ++ // errdetail("String constants with Unicode escapes cannot be used when \"standard_conforming_strings\" is off."), ++ // lexer_errposition())); ++ // BEGIN(xus); ++ // startlit(); ++ ++ self.set_yylloc(); ++ if !STANDARD_CONFORMING_STRINGS { ++ ereport!(self, ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("unsafe use of string constant with Unicode escapes"), +- errdetail("String constants with Unicode escapes cannot be used when \"standard_conforming_strings\" is off."), +- lexer_errposition())); +- BEGIN(xus); +- startlit(); ++ errdetail("String constants with Unicode escapes cannot be used when standard_conforming_strings is off."), ++ self.lexer_errposition())); ++ } ++ self.begin(State::xus); ++ self.literal.clear(); + } + + {quote} { ++ // /* ++ // * When we are scanning a quoted string and see an end ++ // * quote, we must look ahead for a possible continuation. ++ // * If we don't see one, we know the end quote was in fact ++ // * the end of the string. To reduce the lexer table size, ++ // * we use a single "xqs" state to do the lookahead for all ++ // * types of strings. ++ // */ ++ // yyextra->state_before_str_stop = YYSTATE; ++ // BEGIN(xqs); ++ + /* + * When we are scanning a quoted string and see an end + * quote, we must look ahead for a possible continuation. +@@ -603,193 +702,366 @@ + * we use a single "xqs" state to do the lookahead for all + * types of strings. + */ +- yyextra->state_before_str_stop = YYSTATE; +- BEGIN(xqs); ++ self.state_before_str_stop = self.state; ++ self.begin(State::xqs); + } + {quotecontinue} { ++ // /* ++ // * Found a quote continuation, so return to the in-quote ++ // * state and continue scanning the literal. Nothing is ++ // * added to the literal's contents. ++ // */ ++ // BEGIN(yyextra->state_before_str_stop); ++ + /* + * Found a quote continuation, so return to the in-quote + * state and continue scanning the literal. Nothing is + * added to the literal's contents. + */ +- BEGIN(yyextra->state_before_str_stop); ++ self.begin(self.state_before_str_stop); + } + {quotecontinuefail} | + {other} | + <> { ++ // /* ++ // * Failed to see a quote continuation. Throw back ++ // * everything after the end quote, and handle the string ++ // * according to the state we were in previously. ++ // */ ++ // yyless(0); ++ // BEGIN(INITIAL); ++ // ++ // switch (yyextra->state_before_str_stop) ++ // { ++ // case xb: ++ // yylval->str = litbufdup(yyscanner); ++ // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ++ // return BCONST; ++ // case xh: ++ // yylval->str = litbufdup(yyscanner); ++ // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ++ // return XCONST; ++ // case xq: ++ // case xe: ++ // /* ++ // * Check that the data remains valid, if it might ++ // * have been made invalid by unescaping any chars. ++ // */ ++ // if (yyextra->saw_non_ascii) ++ // pg_verifymbstr(yyextra->literalbuf, ++ // yyextra->literallen, ++ // false); ++ // yylval->str = litbufdup(yyscanner); ++ // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ++ // return SCONST; ++ // case xus: ++ // yylval->str = litbufdup(yyscanner); ++ // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ++ // return USCONST; ++ // default: ++ // yyerror("unhandled previous state in xqs"); ++ // } ++ + /* + * Failed to see a quote continuation. Throw back + * everything after the end quote, and handle the string + * according to the state we were in previously. + */ +- yyless(0); +- BEGIN(INITIAL); ++ self.yyless(0); ++ self.begin(State::INITIAL); + +- switch (yyextra->state_before_str_stop) +- { +- case xb: +- yylval->str = litbufdup(yyscanner); +- yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; +- return BCONST; +- case xh: +- yylval->str = litbufdup(yyscanner); +- yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; +- return XCONST; +- case xq: +- case xe: ++ match self.state_before_str_stop { ++ State::xb => { ++ self.yylval = Yylval::Str(self.literal.clone()); ++ self.set_yyllocend(); ++ return Ok(Some(TokenKind::BCONST)); ++ } ++ State::xh => { ++ self.yylval = Yylval::Str(self.literal.clone()); ++ self.set_yyllocend(); ++ return Ok(Some(TokenKind::XCONST)); ++ } ++ State::xq | State::xe => { + /* + * Check that the data remains valid, if it might + * have been made invalid by unescaping any chars. + */ +- if (yyextra->saw_non_ascii) +- pg_verifymbstr(yyextra->literalbuf, +- yyextra->literallen, +- false); +- yylval->str = litbufdup(yyscanner); +- yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; +- return SCONST; +- case xus: +- yylval->str = litbufdup(yyscanner); +- yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; +- return USCONST; +- default: +- yyerror("unhandled previous state in xqs"); ++ // TODO verify ++ // if (yyextra->saw_non_ascii) ++ // pg_verifymbstr(yyextra->literalbuf, ++ // yyextra->literallen, ++ // false); ++ self.yylval = Yylval::Str(self.literal.clone()); ++ self.set_yyllocend(); ++ return Ok(Some(TokenKind::SCONST)); ++ } ++ State::xus => { ++ self.yylval = Yylval::Str(self.literal.clone()); ++ self.set_yyllocend(); ++ return Ok(Some(TokenKind::USCONST)); ++ } ++ _ => yyerror!("unhandled previous state in xqs"), + } + } + + {xqdouble} { +- addlitchar('\'', yyscanner); ++ // self.literal += '\''; ++ ++ self.addlitchar('\''); + } + {xqinside} { +- addlit(yytext, yyleng, yyscanner); ++ // addlit(yytext, yyleng, yyscanner); ++ ++ self.addlit(self.yyleng); + } + {xeinside} { +- addlit(yytext, yyleng, yyscanner); ++ // addlit(yytext, yyleng, yyscanner); ++ ++ self.addlit(self.yyleng); + } + {xeunicode} { +- pg_wchar c = strtoul(yytext + 2, NULL, 16); +- +- /* +- * For consistency with other productions, issue any +- * escape warning with cursor pointing to start of string. +- * We might want to change that, someday. +- */ +- check_escape_warning(yyscanner); +- +- /* Remember start of overall string token ... */ +- PUSH_YYLLOC(); +- /* ... and set the error cursor to point at this esc seq */ +- SET_YYLLOC(); +- +- if (is_utf16_surrogate_first(c)) +- { +- yyextra->utf16_first_part = c; +- BEGIN(xeu); ++ // pg_wchar c = strtoul(yytext + 2, NULL, 16); ++ // ++ // /* ++ // * For consistency with other productions, issue any ++ // * escape warning with cursor pointing to start of string. ++ // * We might want to change that, someday. ++ // */ ++ // check_escape_warning(yyscanner); ++ // ++ // /* Remember start of overall string token ... */ ++ // PUSH_YYLLOC(); ++ // /* ... and set the error cursor to point at this esc seq */ ++ // SET_YYLLOC(); ++ // ++ // if (is_utf16_surrogate_first(c)) ++ // { ++ // yyextra->utf16_first_part = c; ++ // BEGIN(xeu); ++ // } ++ // else if (is_utf16_surrogate_second(c)) ++ // yyerror("invalid Unicode surrogate pair"); ++ // else ++ // addunicode(c, yyscanner); ++ // ++ // /* Restore yylloc to be start of string token */ ++ // POP_YYLLOC(); ++ ++ let c = u32::from_str_radix( ++ &self.input[self.index_bytes + 2..self.index_bytes + self.yyleng], ++ 16, ++ ) ++ .unwrap(); ++ ++ self.push_yylloc(); ++ self.set_yylloc(); ++ ++ if is_utf16_surrogate_first(c) { ++ self.utf16_first_part = c; ++ self.begin(State::xeu); ++ } else if is_utf16_surrogate_second(c) { ++ yyerror!("invalid Unicode surrogate pair"); ++ } else { ++ self.addunicode(char::from_u32(c as u32).unwrap())?; + } +- else if (is_utf16_surrogate_second(c)) +- yyerror("invalid Unicode surrogate pair"); +- else +- addunicode(c, yyscanner); + +- /* Restore yylloc to be start of string token */ +- POP_YYLLOC(); ++ self.pop_yylloc(); + } + {xeunicode} { +- pg_wchar c = strtoul(yytext + 2, NULL, 16); +- +- /* Remember start of overall string token ... */ +- PUSH_YYLLOC(); +- /* ... and set the error cursor to point at this esc seq */ +- SET_YYLLOC(); +- +- if (!is_utf16_surrogate_second(c)) +- yyerror("invalid Unicode surrogate pair"); ++ // pg_wchar c = strtoul(yytext + 2, NULL, 16); ++ // ++ // /* Remember start of overall string token ... */ ++ // PUSH_YYLLOC(); ++ // /* ... and set the error cursor to point at this esc seq */ ++ // SET_YYLLOC(); ++ // ++ // if (!is_utf16_surrogate_second(c)) ++ // yyerror("invalid Unicode surrogate pair"); ++ // ++ // c = surrogate_pair_to_codepoint(yyextra->utf16_first_part, c); ++ // ++ // addunicode(c, yyscanner); ++ // ++ // /* Restore yylloc to be start of string token */ ++ // POP_YYLLOC(); ++ // ++ // BEGIN(xe); ++ ++ let c = u32::from_str_radix( ++ &self.input[self.index_bytes + 2..self.index_bytes + self.yyleng], ++ 16, ++ ) ++ .unwrap(); + +- c = surrogate_pair_to_codepoint(yyextra->utf16_first_part, c); ++ self.push_yylloc(); ++ self.set_yylloc(); + +- addunicode(c, yyscanner); ++ if !is_utf16_surrogate_second(c) { ++ yyerror!("invalid Unicode surrogate pair"); ++ } + +- /* Restore yylloc to be start of string token */ +- POP_YYLLOC(); ++ let c = surrogate_pair_to_codepoint(self.utf16_first_part, c); ++ self.addunicode(c)?; + +- BEGIN(xe); ++ self.pop_yylloc(); ++ self.begin(State::xe); + } + . | + \n | + <> { ++ // /* Set the error cursor to point at missing esc seq */ ++ // SET_YYLLOC(); ++ // yyerror("invalid Unicode surrogate pair"); ++ + /* Set the error cursor to point at missing esc seq */ +- SET_YYLLOC(); +- yyerror("invalid Unicode surrogate pair"); ++ self.set_yylloc(); ++ yyerror!("invalid Unicode surrogate pair"); + } + {xeunicodefail} { +- /* Set the error cursor to point at malformed esc seq */ +- SET_YYLLOC(); +- ereport(ERROR, ++ // /* Set the error cursor to point at malformed esc seq */ ++ // SET_YYLLOC(); ++ // ereport(ERROR, ++ // (errcode(ERRCODE_INVALID_ESCAPE_SEQUENCE), ++ // errmsg("invalid Unicode escape"), ++ // errhint("Unicode escapes must be \\uXXXX or \\UXXXXXXXX."), ++ // lexer_errposition())); ++ ++ self.set_yylloc(); ++ ereport!(self, ERROR, + (errcode(ERRCODE_INVALID_ESCAPE_SEQUENCE), + errmsg("invalid Unicode escape"), + errhint("Unicode escapes must be \\uXXXX or \\UXXXXXXXX."), +- lexer_errposition())); ++ self.lexer_errposition())); + } + {xeescape} { +- if (yytext[1] == '\'') +- { +- if (yyextra->backslash_quote == BACKSLASH_QUOTE_OFF || +- (yyextra->backslash_quote == BACKSLASH_QUOTE_SAFE_ENCODING && +- PG_ENCODING_IS_CLIENT_ONLY(pg_get_client_encoding()))) +- ereport(ERROR, +- (errcode(ERRCODE_NONSTANDARD_USE_OF_ESCAPE_CHARACTER), +- errmsg("unsafe use of \\' in a string literal"), +- errhint("Use '' to write quotes in strings. \\' is insecure in client-only encodings."), +- lexer_errposition())); +- } +- check_string_escape_warning(yytext[1], yyscanner); +- addlitchar(unescape_single_char(yytext[1], yyscanner), +- yyscanner); ++ // if (yytext[1] == '\'') ++ // { ++ // if (yyextra->backslash_quote == BACKSLASH_QUOTE_OFF || ++ // (yyextra->backslash_quote == BACKSLASH_QUOTE_SAFE_ENCODING && ++ // PG_ENCODING_IS_CLIENT_ONLY(pg_get_client_encoding()))) ++ // ereport(ERROR, ++ // (errcode(ERRCODE_NONSTANDARD_USE_OF_ESCAPE_CHARACTER), ++ // errmsg("unsafe use of \\' in a string literal"), ++ // errhint("Use '' to write quotes in strings. \\' is insecure in client-only encodings."), ++ // lexer_errposition())); ++ // } ++ // check_string_escape_warning(yytext[1], yyscanner); ++ // addlitchar(unescape_single_char(yytext[1], yyscanner), ++ // yyscanner); ++ ++ let c = self.yytext().chars().nth(1).unwrap(); ++ // if c == '\'' { ++ // if self.backslash_quote == BACKSLASH_QUOTE_OFF || ++ // (self.backslash_quote == BACKSLASH_QUOTE_SAFE_ENCODING && ++ // PG_ENCODING_IS_CLIENT_ONLY(pg_get_client_encoding())) { ++ // ereport!(self, ERROR, ++ // (errcode(ERRCODE_NONSTANDARD_USE_OF_ESCAPE_CHARACTER), ++ // errmsg("unsafe use of \\' in a string literal"), ++ // errhint("Use '' to write quotes in strings. \\' is insecure in client-only encodings."), ++ // self.lexer_errposition())); ++ // } ++ // } ++ ++ // self.check_string_escape_warning(c); ++ let c = self.unescape_single_char(c); ++ self.addlitchar(c); + } + {xeoctesc} { +- unsigned char c = strtoul(yytext + 1, NULL, 8); +- +- check_escape_warning(yyscanner); +- addlitchar(c, yyscanner); +- if (c == '\0' || IS_HIGHBIT_SET(c)) +- yyextra->saw_non_ascii = true; ++ // unsigned char c = strtoul(yytext + 1, NULL, 8); ++ // ++ // check_escape_warning(yyscanner); ++ // addlitchar(c, yyscanner); ++ // if (c == '\0' || IS_HIGHBIT_SET(c)) ++ // yyextra->saw_non_ascii = true; ++ ++ let c = u32::from_str_radix(&self.input[self.index_bytes+1..self.index_bytes + self.yyleng], 8).unwrap(); ++ let c = char::from_u32(c).unwrap(); ++ ++ // self.check_escape_warning(); ++ self.addlitchar(c); ++ if c == '\0' || is_highbit_set(c) != 0 { ++ self.saw_non_ascii = true; ++ } + } + {xehexesc} { +- unsigned char c = strtoul(yytext + 2, NULL, 16); +- +- check_escape_warning(yyscanner); +- addlitchar(c, yyscanner); +- if (c == '\0' || IS_HIGHBIT_SET(c)) +- yyextra->saw_non_ascii = true; ++ // unsigned char c = strtoul(yytext + 2, NULL, 16); ++ // ++ // check_escape_warning(yyscanner); ++ // addlitchar(c, yyscanner); ++ // if (c == '\0' || IS_HIGHBIT_SET(c)) ++ // yyextra->saw_non_ascii = true; ++ ++ let c = u32::from_str_radix(&self.input[self.index_bytes+1..self.index_bytes + self.yyleng], 16).unwrap(); ++ let c = char::from_u32(c).unwrap(); ++ ++ // self.check_escape_warning(); ++ self.addlitchar(c); ++ if c == '\0' || is_highbit_set(c) != 0 { ++ self.saw_non_ascii = true; ++ } + } + . { ++ // /* This is only needed for \ just before EOF */ ++ // addlitchar(yytext[0], yyscanner); ++ + /* This is only needed for \ just before EOF */ +- addlitchar(yytext[0], yyscanner); ++ let c = self.input[self.index_bytes..].chars().next().unwrap(); ++ self.addlitchar(c); ++ + } +-<> { yyerror("unterminated quoted string"); } ++<> { yyerror!("unterminated quoted string"); } + + {dolqdelim} { +- SET_YYLLOC(); +- yyextra->dolqstart = pstrdup(yytext); +- BEGIN(xdolq); +- startlit(); ++ // SET_YYLLOC(); ++ // yyextra->dolqstart = pstrdup(yytext); ++ // BEGIN(xdolq); ++ // startlit(); ++ ++ self.set_yylloc(); ++ self.dolqstart = self.yytext(); ++ self.begin(State::xdolq); ++ self.literal.clear(); + } + {dolqfailed} { +- SET_YYLLOC(); ++ // SET_YYLLOC(); ++ // /* throw back all but the initial "$" */ ++ // yyless(1); ++ // /* and treat it as {other} */ ++ // return yytext[0]; ++ ++ self.set_yylloc(); + /* throw back all but the initial "$" */ +- yyless(1); ++ self.yyless(1); + /* and treat it as {other} */ +- return yytext[0]; ++ return Ok(Some(TokenKind::RAW(self.yytext()))); + } + {dolqdelim} { +- if (strcmp(yytext, yyextra->dolqstart) == 0) +- { +- pfree(yyextra->dolqstart); +- yyextra->dolqstart = NULL; +- BEGIN(INITIAL); +- yylval->str = litbufdup(yyscanner); +- yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; +- return SCONST; ++ // if (strcmp(yytext, yyextra->dolqstart) == 0) ++ // { ++ // pfree(yyextra->dolqstart); ++ // yyextra->dolqstart = NULL; ++ // BEGIN(INITIAL); ++ // yylval->str = litbufdup(yyscanner); ++ // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ++ // return SCONST; ++ // } ++ // else ++ // { ++ // /* ++ // * When we fail to match $...$ to dolqstart, transfer ++ // * the $... part to the output, but put back the final ++ // * $ for rescanning. Consider $delim$...$junk$delim$ ++ // */ ++ // addlit(yytext, yyleng - 1, yyscanner); ++ // yyless(yyleng - 1); ++ // } ++ ++ if self.yytext() == self.dolqstart { ++ self.dolqstart = "".to_string(); ++ self.begin(State::INITIAL); ++ self.yylval = Yylval::Str(self.literal.clone()); ++ self.set_yyllocend(); ++ return Ok(Some(TokenKind::SCONST)); + } + else + { +@@ -798,143 +1070,332 @@ + * the $... part to the output, but put back the final + * $ for rescanning. Consider $delim$...$junk$delim$ + */ +- addlit(yytext, yyleng - 1, yyscanner); +- yyless(yyleng - 1); ++ self.addlit(self.yyleng - 1); ++ self.yyless(self.yyleng - 1); + } + } + {dolqinside} { +- addlit(yytext, yyleng, yyscanner); ++ // addlit(yytext, yyleng, yyscanner); ++ ++ self.addlit(self.yyleng); + } + {dolqfailed} { +- addlit(yytext, yyleng, yyscanner); ++ // addlit(yytext, yyleng, yyscanner); ++ ++ self.addlit(self.yyleng); + } + . { +- /* This is only needed for $ inside the quoted text */ +- addlitchar(yytext[0], yyscanner); ++ // /* This is only needed for $ inside the quoted text */ ++ // addlitchar(yytext[0], yyscanner); ++ ++ let c = self.yytext().chars().next().unwrap(); ++ self.addlitchar(c); + } +-<> { yyerror("unterminated dollar-quoted string"); } ++<> { yyerror!("unterminated dollar-quoted string"); } + + {xdstart} { +- SET_YYLLOC(); +- BEGIN(xd); +- startlit(); ++ // SET_YYLLOC(); ++ // BEGIN(xd); ++ // startlit(); ++ ++ self.set_yylloc(); ++ self.begin(State::xd); ++ self.literal.clear(); + } + {xuistart} { +- SET_YYLLOC(); +- BEGIN(xui); +- startlit(); ++ // SET_YYLLOC(); ++ // BEGIN(xui); ++ // startlit(); ++ ++ self.set_yylloc(); ++ self.begin(State::xui); ++ self.literal.clear(); + } + {xdstop} { +- char *ident; +- +- BEGIN(INITIAL); +- if (yyextra->literallen == 0) +- yyerror("zero-length delimited identifier"); +- ident = litbufdup(yyscanner); +- if (yyextra->literallen >= NAMEDATALEN) +- truncate_identifier(ident, yyextra->literallen, true); +- yylval->str = ident; +- yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; +- return IDENT; ++ // char *ident; ++ // ++ // BEGIN(INITIAL); ++ // if (yyextra->literallen == 0) ++ // yyerror("zero-length delimited identifier"); ++ // ident = litbufdup(yyscanner); ++ // if (yyextra->literallen >= NAMEDATALEN) ++ // truncate_identifier(ident, yyextra->literallen, true); ++ // yylval->str = ident; ++ // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ++ // return IDENT; ++ ++ self.begin(State::INITIAL); ++ if self.literal.len() == 0 { ++ yyerror!("zero-length delimited identifier"); ++ } ++ let ident = self.literal.clone(); ++ if self.literal.len() >= NAMEDATALEN { ++ // TODO ++ // panic!(); ++ } ++ self.yylval = Yylval::Str(ident); ++ self.set_yyllocend(); ++ return Ok(Some(TokenKind::IDENT)); + } + {dquote} { +- BEGIN(INITIAL); +- if (yyextra->literallen == 0) +- yyerror("zero-length delimited identifier"); ++ // BEGIN(INITIAL); ++ // if (yyextra->literallen == 0) ++ // yyerror("zero-length delimited identifier"); ++ // /* can't truncate till after we de-escape the ident */ ++ // yylval->str = litbufdup(yyscanner); ++ // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ++ // return UIDENT; ++ ++ self.begin(State::INITIAL); ++ if self.literal.len() == 0 { ++ yyerror!("zero-length delimited identifier"); ++ } + /* can't truncate till after we de-escape the ident */ +- yylval->str = litbufdup(yyscanner); +- yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; +- return UIDENT; ++ self.yylval = Yylval::Str(self.yytext()); ++ self.set_yyllocend(); ++ return Ok(Some(TokenKind::UIDENT)); + } + {xddouble} { +- addlitchar('"', yyscanner); ++ // addlitchar('"', yyscanner); ++ ++ self.addlitchar('"'); + } + {xdinside} { +- addlit(yytext, yyleng, yyscanner); ++ // addlit(yytext, yyleng, yyscanner); ++ ++ self.addlit(self.yyleng); + } +-<> { yyerror("unterminated quoted identifier"); } ++<> { yyerror!("unterminated quoted identifier"); } + + {xufailed} { +- char *ident; +- +- SET_YYLLOC(); +- /* throw back all but the initial u/U */ +- yyless(1); +- /* and treat it as {identifier} */ +- ident = downcase_truncate_identifier(yytext, yyleng, true); +- yylval->str = ident; +- yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; +- return IDENT; ++ // char *ident; ++ // ++ // SET_YYLLOC(); ++ // /* throw back all but the initial u/U */ ++ // yyless(1); ++ // /* and treat it as {identifier} */ ++ // ident = downcase_truncate_identifier(yytext, yyleng, true); ++ // yylval->str = ident; ++ // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ++ // return IDENT; ++ ++ self.set_yylloc(); ++ self.yyless(1); ++ // FIXME ++ // let ident = downcase_truncate_identifier(yytext, yyleng, true); ++ let ident = self.yytext(); ++ self.yylval = Yylval::Str(ident); ++ self.set_yyllocend(); ++ return Ok(Some(TokenKind::IDENT)); + } + + {typecast} { +- SET_YYLLOC(); +- return TYPECAST; ++ // SET_YYLLOC(); ++ // return TYPECAST; ++ ++ self.set_yylloc(); ++ return Ok(Some(TokenKind::TYPECAST)); + } + + {dot_dot} { +- SET_YYLLOC(); +- return DOT_DOT; ++ // SET_YYLLOC(); ++ // return DOT_DOT; ++ ++ self.set_yylloc(); ++ return Ok(Some(TokenKind::DOT_DOT)); + } + + {colon_equals} { +- SET_YYLLOC(); +- return COLON_EQUALS; ++ // SET_YYLLOC(); ++ // return COLON_EQUALS; ++ ++ self.set_yylloc(); ++ return Ok(Some(TokenKind::COLON_EQUALS)); + } + + {equals_greater} { +- SET_YYLLOC(); +- return EQUALS_GREATER; ++ // SET_YYLLOC(); ++ // return EQUALS_GREATER; ++ ++ self.set_yylloc(); ++ return Ok(Some(TokenKind::EQUALS_GREATER)); + } + + {less_equals} { +- SET_YYLLOC(); +- return LESS_EQUALS; ++ // SET_YYLLOC(); ++ // return LESS_EQUALS; ++ ++ self.set_yylloc(); ++ return Ok(Some(TokenKind::LESS_EQUALS)); + } + + {greater_equals} { +- SET_YYLLOC(); +- return GREATER_EQUALS; ++ // SET_YYLLOC(); ++ // return GREATER_EQUALS; ++ ++ self.set_yylloc(); ++ return Ok(Some(TokenKind::GREATER_EQUALS)); + } + + {less_greater} { ++ // /* We accept both "<>" and "!=" as meaning NOT_EQUALS */ ++ // SET_YYLLOC(); ++ // return NOT_EQUALS; ++ + /* We accept both "<>" and "!=" as meaning NOT_EQUALS */ +- SET_YYLLOC(); +- return NOT_EQUALS; ++ self.set_yylloc(); ++ return Ok(Some(TokenKind::NOT_EQUALS)); + } + + {not_equals} { ++ // /* We accept both "<>" and "!=" as meaning NOT_EQUALS */ ++ // SET_YYLLOC(); ++ // return NOT_EQUALS; ++ + /* We accept both "<>" and "!=" as meaning NOT_EQUALS */ +- SET_YYLLOC(); +- return NOT_EQUALS; ++ self.set_yylloc(); ++ return Ok(Some(TokenKind::NOT_EQUALS)); + } + + {self} { +- SET_YYLLOC(); +- return yytext[0]; ++ // SET_YYLLOC(); ++ // return yytext[0]; ++ ++ self.set_yylloc(); ++ return Ok(Some(TokenKind::RAW(self.yytext()[0..1].to_string()))); + } + + {operator} { ++ // /* ++ // * Check for embedded slash-star or dash-dash; those ++ // * are comment starts, so operator must stop there. ++ // * Note that slash-star or dash-dash at the first ++ // * character will match a prior rule, not this one. ++ // */ ++ // int nchars = yyleng; ++ // char *slashstar = strstr(yytext, "/*"); ++ // char *dashdash = strstr(yytext, "--"); ++ // ++ // if (slashstar && dashdash) ++ // { ++ // /* if both appear, take the first one */ ++ // if (slashstar > dashdash) ++ // slashstar = dashdash; ++ // } ++ // else if (!slashstar) ++ // slashstar = dashdash; ++ // if (slashstar) ++ // nchars = slashstar - yytext; ++ // ++ // /* ++ // * For SQL compatibility, '+' and '-' cannot be the ++ // * last char of a multi-char operator unless the operator ++ // * contains chars that are not in SQL operators. ++ // * The idea is to lex '=-' as two operators, but not ++ // * to forbid operator names like '?-' that could not be ++ // * sequences of SQL operators. ++ // */ ++ // if (nchars > 1 && ++ // (yytext[nchars - 1] == '+' || ++ // yytext[nchars - 1] == '-')) ++ // { ++ // int ic; ++ // ++ // for (ic = nchars - 2; ic >= 0; ic--) ++ // { ++ // char c = yytext[ic]; ++ // if (c == '~' || c == '!' || c == '@' || ++ // c == '#' || c == '^' || c == '&' || ++ // c == '|' || c == '`' || c == '?' || ++ // c == '%') ++ // break; ++ // } ++ // if (ic < 0) ++ // { ++ // /* ++ // * didn't find a qualifying character, so remove ++ // * all trailing [+-] ++ // */ ++ // do { ++ // nchars--; ++ // } while (nchars > 1 && ++ // (yytext[nchars - 1] == '+' || ++ // yytext[nchars - 1] == '-')); ++ // } ++ // } ++ // ++ // SET_YYLLOC(); ++ // ++ // if (nchars < yyleng) ++ // { ++ // /* Strip the unwanted chars from the token */ ++ // yyless(nchars); ++ // /* ++ // * If what we have left is only one char, and it's ++ // * one of the characters matching "self", then ++ // * return it as a character token the same way ++ // * that the "self" rule would have. ++ // */ ++ // if (nchars == 1 && ++ // strchr(",()[].;:+-*/%^<>=", yytext[0])) ++ // return yytext[0]; ++ // /* ++ // * Likewise, if what we have left is two chars, and ++ // * those match the tokens ">=", "<=", "=>", "<>" or ++ // * "!=", then we must return the appropriate token ++ // * rather than the generic Op. ++ // */ ++ // if (nchars == 2) ++ // { ++ // if (yytext[0] == '=' && yytext[1] == '>') ++ // return EQUALS_GREATER; ++ // if (yytext[0] == '>' && yytext[1] == '=') ++ // return GREATER_EQUALS; ++ // if (yytext[0] == '<' && yytext[1] == '=') ++ // return LESS_EQUALS; ++ // if (yytext[0] == '<' && yytext[1] == '>') ++ // return NOT_EQUALS; ++ // if (yytext[0] == '!' && yytext[1] == '=') ++ // return NOT_EQUALS; ++ // } ++ // } ++ // ++ // /* ++ // * Complain if operator is too long. Unlike the case ++ // * for identifiers, we make this an error not a notice- ++ // * and-truncate, because the odds are we are looking at ++ // * a syntactic mistake anyway. ++ // */ ++ // if (nchars >= NAMEDATALEN) ++ // yyerror("operator too long"); ++ // ++ // yylval->str = pstrdup(yytext); ++ // return Op; ++ + /* + * Check for embedded slash-star or dash-dash; those + * are comment starts, so operator must stop there. + * Note that slash-star or dash-dash at the first + * character will match a prior rule, not this one. + */ +- int nchars = yyleng; +- char *slashstar = strstr(yytext, "/*"); +- char *dashdash = strstr(yytext, "--"); ++ let mut nchars = self.yyleng; ++ let yytext = self.yytext(); ++ let mut slashstar = yytext.find("/*"); ++ let dashdash = yytext.find("--"); ++ ++ let dashdash_first = match (&slashstar, &dashdash) { ++ (Some(slashstar_index), Some(dashdash_index)) if slashstar_index > dashdash_index => true, ++ (None, Some(_)) => true, ++ _ => false, ++ }; + +- if (slashstar && dashdash) +- { +- /* if both appear, take the first one */ +- if (slashstar > dashdash) +- slashstar = dashdash; +- } +- else if (!slashstar) ++ if dashdash_first { + slashstar = dashdash; +- if (slashstar) +- nchars = slashstar - yytext; ++ } ++ ++ if let Some(i) = slashstar { ++ nchars = i; ++ } + + /* + * For SQL compatibility, '+' and '-' cannot be the +@@ -944,68 +1405,61 @@ + * to forbid operator names like '?-' that could not be + * sequences of SQL operators. + */ +- if (nchars > 1 && +- (yytext[nchars - 1] == '+' || +- yytext[nchars - 1] == '-')) ++ if nchars > 1 && ++ (get_char_by_byte_pos(&yytext, nchars - 1) == '+' || ++ get_char_by_byte_pos(&yytext, nchars - 1) == '-') + { +- int ic; +- +- for (ic = nchars - 2; ic >= 0; ic--) +- { +- char c = yytext[ic]; +- if (c == '~' || c == '!' || c == '@' || +- c == '#' || c == '^' || c == '&' || +- c == '|' || c == '`' || c == '?' || +- c == '%') +- break; +- } +- if (ic < 0) ++ let b = (0..nchars-1).any(|ic| matches!(get_char_by_byte_pos(&yytext, ic), '~' | '!' | '@' | '#' | '^' | '&' | '|' | '`' | '?' | '%')); ++ if !b + { +- /* +- * didn't find a qualifying character, so remove +- * all trailing [+-] +- */ +- do { +- nchars--; +- } while (nchars > 1 && +- (yytext[nchars - 1] == '+' || +- yytext[nchars - 1] == '-')); ++ loop { ++ nchars -= 1; ++ ++ if !(nchars > 1 && ++ (get_char_by_byte_pos(&yytext, nchars - 1) == '+' || ++ get_char_by_byte_pos(&yytext, nchars - 1) == '-')) { ++ break; ++ } ++ } + } + } + +- SET_YYLLOC(); ++ self.set_yylloc(); + +- if (nchars < yyleng) +- { ++ if nchars < self.yyleng { + /* Strip the unwanted chars from the token */ +- yyless(nchars); ++ self.yyless(nchars); + /* + * If what we have left is only one char, and it's + * one of the characters matching "self", then + * return it as a character token the same way + * that the "self" rule would have. + */ +- if (nchars == 1 && +- strchr(",()[].;:+-*/%^<>=", yytext[0])) +- return yytext[0]; ++ if nchars == 1 && ",()[].;:+-*/%^<>=".find(get_char_by_byte_pos(&yytext, 0)).is_some() { ++ return Ok(Some(TokenKind::RAW(yytext[0..1].to_string()))); ++ } + /* + * Likewise, if what we have left is two chars, and + * those match the tokens ">=", "<=", "=>", "<>" or + * "!=", then we must return the appropriate token + * rather than the generic Op. + */ +- if (nchars == 2) +- { +- if (yytext[0] == '=' && yytext[1] == '>') +- return EQUALS_GREATER; +- if (yytext[0] == '>' && yytext[1] == '=') +- return GREATER_EQUALS; +- if (yytext[0] == '<' && yytext[1] == '=') +- return LESS_EQUALS; +- if (yytext[0] == '<' && yytext[1] == '>') +- return NOT_EQUALS; +- if (yytext[0] == '!' && yytext[1] == '=') +- return NOT_EQUALS; ++ if nchars == 2 { ++ if &yytext[0..2] == "=>" { ++ return Ok(Some(TokenKind::EQUALS_GREATER)); ++ } ++ if &yytext[0..2] == ">=" { ++ return Ok(Some(TokenKind::GREATER_EQUALS)); ++ } ++ if &yytext[0..2] == "<=" { ++ return Ok(Some(TokenKind::LESS_EQUALS)); ++ } ++ if &yytext[0..2] == "<>" { ++ return Ok(Some(TokenKind::NOT_EQUALS)); ++ } ++ if &yytext[0..2] == "!=" { ++ return Ok(Some(TokenKind::NOT_EQUALS)); ++ } + } + } + +@@ -1015,115 +1469,190 @@ + * and-truncate, because the odds are we are looking at + * a syntactic mistake anyway. + */ +- if (nchars >= NAMEDATALEN) +- yyerror("operator too long"); ++ if nchars >= NAMEDATALEN { ++ yyerror!("operator too long"); ++ } + +- yylval->str = pstrdup(yytext); +- return Op; ++ self.yylval = Yylval::Str(yytext); ++ return Ok(Some(TokenKind::Op)); + } + + {param} { +- SET_YYLLOC(); +- yylval->ival = atol(yytext + 1); +- return PARAM; ++ // SET_YYLLOC(); ++ // yylval->ival = atol(yytext + 1); ++ // return PARAM; ++ ++ self.set_yylloc(); ++ self.yylval = Yylval::I(i32::from_str_radix(&self.yytext()[1..], 10).unwrap()); ++ return Ok(Some(TokenKind::PARAM)); + } + + {decinteger} { +- SET_YYLLOC(); +- return process_integer_literal(yytext, yylval, 10); ++ // SET_YYLLOC(); ++ // return process_integer_literal(yytext, yylval, 10); ++ ++ self.set_yylloc(); ++ return Ok(self.process_integer_literal(10)); + } + {hexinteger} { +- SET_YYLLOC(); +- return process_integer_literal(yytext, yylval, 16); ++ // SET_YYLLOC(); ++ // return process_integer_literal(yytext, yylval, 16); ++ ++ self.set_yylloc(); ++ return Ok(self.process_integer_literal(16)); + } + {octinteger} { +- SET_YYLLOC(); +- return process_integer_literal(yytext, yylval, 8); ++ // SET_YYLLOC(); ++ // return process_integer_literal(yytext, yylval, 8); ++ ++ self.set_yylloc(); ++ return Ok(self.process_integer_literal(8)); + } + {bininteger} { +- SET_YYLLOC(); +- return process_integer_literal(yytext, yylval, 2); ++ // SET_YYLLOC(); ++ // return process_integer_literal(yytext, yylval, 2); ++ ++ self.set_yylloc(); ++ return Ok(self.process_integer_literal(2)); + } + {hexfail} { +- SET_YYLLOC(); +- yyerror("invalid hexadecimal integer"); ++ // SET_YYLLOC(); ++ // yyerror("invalid hexadecimal integer"); ++ ++ self.set_yylloc(); ++ yyerror!("invalid hexadecimal integer"); + } + {octfail} { +- SET_YYLLOC(); +- yyerror("invalid octal integer"); ++ // SET_YYLLOC(); ++ // yyerror("invalid octal integer"); ++ ++ self.set_yylloc(); ++ yyerror!("invalid octal integer"); + } + {binfail} { +- SET_YYLLOC(); +- yyerror("invalid binary integer"); ++ // SET_YYLLOC(); ++ // yyerror("invalid binary integer"); ++ ++ self.set_yylloc(); ++ yyerror!("invalid binary integer"); + } + {numeric} { +- SET_YYLLOC(); +- yylval->str = pstrdup(yytext); +- return FCONST; ++ // SET_YYLLOC(); ++ // yylval->str = pstrdup(yytext); ++ // return FCONST; ++ ++ self.set_yylloc(); ++ self.yylval = Yylval::Str(self.yytext()); ++ return Ok(Some(TokenKind::FCONST)); + } + {numericfail} { ++ // /* throw back the .., and treat as integer */ ++ // yyless(yyleng - 2); ++ // SET_YYLLOC(); ++ // return process_integer_literal(yytext, yylval, 10); ++ + /* throw back the .., and treat as integer */ +- yyless(yyleng - 2); +- SET_YYLLOC(); +- return process_integer_literal(yytext, yylval, 10); ++ self.yyless(self.yyleng - 2); ++ self.set_yylloc(); ++ return Ok(self.process_integer_literal(10)); + } + {real} { +- SET_YYLLOC(); +- yylval->str = pstrdup(yytext); +- return FCONST; ++ // SET_YYLLOC(); ++ // yylval->str = pstrdup(yytext); ++ // return FCONST; ++ ++ self.set_yylloc(); ++ self.yylval = Yylval::Str(self.yytext()); ++ return Ok(Some(TokenKind::FCONST)); + } + {realfail} { +- SET_YYLLOC(); +- yyerror("trailing junk after numeric literal"); ++ // SET_YYLLOC(); ++ // yyerror("trailing junk after numeric literal"); ++ ++ self.set_yylloc(); ++ yyerror!("trailing junk after numeric literal"); + } + {integer_junk} { +- SET_YYLLOC(); +- yyerror("trailing junk after numeric literal"); ++ // SET_YYLLOC(); ++ // yyerror("trailing junk after numeric literal"); ++ ++ self.set_yylloc(); ++ yyerror!("trailing junk after numeric literal"); + } + {numeric_junk} { +- SET_YYLLOC(); +- yyerror("trailing junk after numeric literal"); ++ // SET_YYLLOC(); ++ // yyerror("trailing junk after numeric literal"); ++ ++ self.set_yylloc(); ++ yyerror!("trailing junk after numeric literal"); + } + {real_junk} { +- SET_YYLLOC(); +- yyerror("trailing junk after numeric literal"); ++ // SET_YYLLOC(); ++ // yyerror("trailing junk after numeric literal"); ++ ++ self.set_yylloc(); ++ yyerror!("trailing junk after numeric literal"); + } + + + {identifier} { +- int kwnum; +- char *ident; ++ // int kwnum; ++ // char *ident; ++ // ++ // SET_YYLLOC(); ++ // ++ // /* Is it a keyword? */ ++ // kwnum = ScanKeywordLookup(yytext, ++ // yyextra->keywordlist); ++ // if (kwnum >= 0) ++ // { ++ // yylval->keyword = GetScanKeyword(kwnum, ++ // yyextra->keywordlist); ++ // return yyextra->keyword_tokens[kwnum]; ++ // } ++ // ++ // /* ++ // * No. Convert the identifier to lower case, and truncate ++ // * if necessary. ++ // */ ++ // ident = downcase_truncate_identifier(yytext, yyleng, true); ++ // yylval->str = ident; ++ // yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; ++ // return IDENT; + +- SET_YYLLOC(); ++ self.set_yylloc(); + + /* Is it a keyword? */ +- kwnum = ScanKeywordLookup(yytext, +- yyextra->keywordlist); +- if (kwnum >= 0) +- { +- yylval->keyword = GetScanKeyword(kwnum, +- yyextra->keywordlist); +- return yyextra->keyword_tokens[kwnum]; ++ let yytext = self.yytext(); ++ if let Some((kw, kw_token)) = self.get_keyword(&yytext) { ++ self.yylval = Yylval::Keyword(kw); ++ return Ok(Some(TokenKind::KEYWORD(kw_token))); + } + + /* + * No. Convert the identifier to lower case, and truncate + * if necessary. + */ +- ident = downcase_truncate_identifier(yytext, yyleng, true); +- yylval->str = ident; +- yyextra->yyllocend = yytext - yyextra->scanbuf + yyleng; +- return IDENT; ++ let ident = self.downcase_truncate_identifier(self.yyleng, true); ++ self.yylval = Yylval::Str(ident); ++ self.set_yyllocend(); ++ return Ok(Some(TokenKind::IDENT)); + } + + {other} { +- SET_YYLLOC(); +- return yytext[0]; ++ // SET_YYLLOC(); ++ // return yytext[0]; ++ ++ self.set_yylloc(); ++ return Ok(Some(TokenKind::RAW(yytext[0..1].to_string()))); + } + + <> { +- SET_YYLLOC(); +- yyterminate(); ++ // SET_YYLLOC(); ++ // yyterminate(); ++ ++ self.set_yylloc(); ++ yyterminate!(); + } + + %% diff --git a/update-gh-page.sh b/update-gh-page.sh new file mode 100755 index 0000000..d0b5bd0 --- /dev/null +++ b/update-gh-page.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +set -eux + +cd demo +npm ci +npm run copy-wasm +npm run update-gh-page